写点什么

云原生探秘

用户头像
dinstone
关注
发布于: 1 小时前
云原生探秘

随着云计算概念的普及,企业应用开始在私有云和公有云的感召下冲上云端,但滚滚浪潮中鲜有成功案例。历史的车辆轰轰向前,人们兴趣盎然的创造着各种概念并且孜孜不倦的实践着,什么持续交付、DEVOPS、微服务、服务网格、容器、编排等等概念,直到最近几年火得一塌糊涂的云原生概念,大家好像看到了应用成功上云的一点曙光。

云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生是一个组合词:Cloud+Native。Cloud 表示应用程序位于云中,而不是传统的数据中心;Native 表示应用程序设计要考虑到云环境,原生为云而设计,应用要能充分利用和发挥云平台的弹性和分布式优势。

云原生很火,无论是企业内部,还是技术论坛,大家言必称云原生。可是云原生到底是什么,却鲜有人能说的清楚,即使你找来资料看,读完也大多会云里雾里,感到概念混乱不清虚得很,意志不坚定的甚至会怀疑自己的智商。为什么会出现这样的情况呢?答案就是云原生这个概念还在不断的发展中,业内大牛也在不断的完善着定义。

本文试图用最简单的逻辑带你理解一下云原生概念,如果还是不能明白,那一定是我没有写清楚,不要怀疑自己的智商,也不要有负面情绪,直接留言告诉我就好。

1.云原生定义

首先让我们看看云原生概念都有哪些定义:

  • 2010 年,WSO2 技术总监 PaulFremantle 首次提出 Cloud Native,他一直想用一个词表达一个架构,这种架构能够描述应用程序和中间件能够在云环境中有良好的运行。云原生有以下特性: 分布式、弹性、多租户,子服务,按需计量和计费,增量部署和测试。

  • 2013 年,Netflix 云架构师 Adrian Cockcroft 分享了他们如何基于云解决稳定性问题,扩容问题,业务快速发展问题。Netflix 在 AWS 上有上万个实例,基于 AWS 云平台成功落地了微服务。

  • 2014 年,ThoughtWorkers 的 Martin Fowler 与 James Lewis 提出微服务架构概念,微服务架构风格是一种使用一组微服务来持续交付的应用开发方法,能充分利用和发挥云平台的弹性和分布式优势。

  • 2015 年,Pivotal 的 Matt Stine 在他的电子书《迁移到云原生应用架构》认为单体架构在向云原生架构的演进过程中,需要流程、文化、技术共同变革。该书把 Cloud Native 描述为一组最佳实践,具体包含:十二因子,微服务,敏捷基础设施,基于 API 的协作,反脆弱性。

  • 2015 年,云原生计算基金会(CNCF)成立,CNCF 掺和进来后把云原生定义为包括:容器化封装、自动化管理和面向微服务。

  • 2017 年,Matt Stine 在接受媒体采访时又改了口风,将云原生架构归纳为模块化、可观察、可部署、可测试、可替换、可处理 6 特质;

  • 2018 年,CNCF 又更新了云原生的定义,把服务网格(Service Mesh)和声明式 API 给加了进来。

  • 2021 年,Pivotal 最新官网对云原生概括为 4 个要点:DevOps、持续交付、微服务、容器。


由上可见,不同的人和组织对云原生有不同的定义,相同的人和组织在不同时间点对云原生也有不同的认识,正好也说明了云原生这个概念还在不断的发展中。那该接受那个呢?答案是谁都不信。我们可以自己搞一个容易记住和理解的定义。

云平台技术发展

应用架构发展

仔细阅读云原生概念发展过程就会发现,云原生概念其实就是微服务云平台上不断应用、云平台技术不断发展,实践和总结出来的。为什么这么说呢?先看微服务,微服务架构的核心是通过应用的持续交付解决业务敏捷问题,而微服务的模块化、松耦合特性所带来的开发自治能充分利用和发挥云平台的弹性和分布式优势,从而加速持续交付。

再看云平台,在 docker、kubernets、ServiceMesh 等技术的加持下,构建在云基础设施上的各种云服务(CaaS、BaaS、FaaS)有了持续交付和自动化运维的能力,也使得上云的应用能充分利用云服务的弹性伸缩、动态调度、优化资源利用率。


如上,我们对云原生的定义呼之欲出:云原生 = 微服务架构 + 云平台,云原生就是微服务架构在云平台( IaaS:资源托管,CaaS、BaaS、FaaS:应用托管 )上的落地。

2.云原生价值

在互联网大潮下,无论是互联网企业还是传统企业,都存在业务变化快的情况,传统的商业模式被飞速的打破,新的商业模式和玩法只有想不到,没有做不到。业务创新要求业务敏捷,业务敏捷要求技术敏捷,技术敏捷要求技术创新,技术创新从云原生技术成长而来。所以,云原生的价值就是保证了业务创新。


3.云原生落地

如上就是一个典型的云原生落地方案。企业应用按照微服务架构开发,仅需关注业务逻辑和服务边界,持续交付交由统一发布平台来管理,运行在 K8s 编排容器上的应用,充分利用和发挥云平台的弹性和分布式优势,跨语言的服务治理和全链路监控保证了服务的稳定。


4.参考

https://mp.weixin.qq.com/s/csY8T02Ck8bnE3vVcZxVjQ

https://zhuanlan.zhihu.com/p/408647670

https://zhuanlan.zhihu.com/p/150190166

用户头像

dinstone

关注

还未添加个人签名 2008.11.12 加入

一个热爱编程的架构师,在网络编程方面有一些惨痛经验。

评论

发布
暂无评论
云原生探秘