伴随着云计算的滚滚浪潮,云原生的概念应用而生,那么云原生是什么?不同的人都有不同的见解和解读,那么笔者结合自身的经验为大家解读下什么是云原生及云原生的由来。

云原生历史发展

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

2013年,Netflix云架构师,Adrian Cockcroft介绍了NetflixAWS上基于Cloud Native的成功应用,NetflixAWS上有上万个实例,每天都有数以万计的实例被创建或者删除。Adrian Cockcroft在介绍netflixAWS上成功经验时,从目标、原则和措施三个方面进行了讲述。

目标:可扩展性、高可用、敏捷、效率。 

原则:不变性,服务一旦创建,不能修改,只能重建;关注点分离,通过微服务架构实现关注点分离,避免决策瓶颈反脆弱性;默认所有的依赖的都会失效,在设计阶段考虑这些失效问题;高信任的组织,相信自己的员工可以做出正确的决策,倡导底层员工的自主决策权 共享,透明的管理,共享能够促进技术人员的成长。

措施:利用AWS实现可扩展、高可用和共享;利用非标准化数据实现关注点分离;利用猴子工程师实现反脆弱性;利用默认开源实现敏捷和共享; 利用持续部署实现敏捷、不变性;利用devops实现高度信任和共享;利用运行自己写的代码实现反脆弱性开发演进。

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

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

Pivotal最新官网对云原生概括为4个要点:DevOps+持续交付+微服务+容器

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

2018年,由开源基础设施领域翘楚,Google、Redhat等共同牵头共同组建了一个云原生基金会CNCF,其目标也非常明确,就是为了对抗在容器圈一家独大的Docker公司,后来CNCF通过Kubernetes在开源容器编排领域一骑绝尘,成为了容器编排领域事实上的标准,它对原生的定义如下所示:云原生有利于各组织在公有云、私有云、混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、微服务、服务网格、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化升级手段、云原生技术使工程师能够轻松的做出频繁和可预测的重大变更。

我心目中的云原生

可以看出云原生在不同的时间,同一个组织都有不同的定义,刚开始更倾向于技术架构,后来演变为一种理念,其中Matt Stine观点偏向于管理层面,而CNCF更偏向于技术实现,让我说呢?我更倾向于把Matt StineCNCF两者的观点结合起来,前期的技术框架的研究离不开CNCF的技术实现,但后期的云原生落地少不了管理流程和团队文化。

看到这里,可能仍然云里雾里,云原生到底是什么样的一种存在?一千个人眼中有一千个哈姆雷特。让我说呢,云原生是在云计算的应用场景下应运而生,所以要谈云原生,必须搞清楚云计算,那么云计算又是怎么一回事呢?

web1.0时代,主要网络到人的单向信息流动,管理员会定期在站点发布信息,网民登录站点查看信息,数据只有站点管理员产生,不会产生太多数据,这个时候服务的存在形式大多是单节点。到了web2.0更多的是人与人的互动,网民可以通过聊天工具进行互动,甚至通过贴吧进行发帖、博客、论坛等等, 在这样一个网络发展趋势下,数据量剧增,后来到了web3.0时代演变成了人-网络-人,网络需要理解人的行为,比如常见的智能推荐、精准投放等。这个时候单节点服务器已经无法满足业务需要,就出现了数据中心,说白了就是从一台服务器变成多台,通过多台服务器共同进行数据处理,满足网民基本需求。

于是各组织纷纷建立自己的机房,可以想象这样一个场景,每家都开始购买发电机,自己发电自己使用,而对于一些没有能力购买发电机的家庭出现了问题。这个时候谷歌、微软、亚马逊、国内的阿里、百度等公司看到了商机,扮演了发电厂的角色建立了机房-数据中心,通过运营商搭建的互联网,把跟电力一样的计算资源输送到千家万户,个人以及组织不再需要购买计算力强大的电脑。在数据处理速度要求的推动下,出现了网格计算、并行计算、分布式计算等算法,现在物理资源、算法、运营商网络都有了,用户以及组织只需要一个账号就可以随时随地的进行数据存储和计算,这就是云计算。云计算对企业的数字化转型发挥着不可估量的作用,所以一直有云计算就像发电站一样改变世界的说法。

云的部署方式分为公有云、私有云、混合云,具体服务类型包括IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)

云计算提供了一个战略平台,早期的话,用户及组织通过虚拟机部署和运行服务,对于传统软件部署方式没有什么问题。但对于互联网高速发展的今天,用户量激增,业务变化速度极快,传统的瀑布式开发转变为敏捷开发,交付和运维方式都发生了巨大变化。云原生随之而来,云原生本身是一种理念,通过这种理念能够更大程度上去榨取云计算的价值、发挥云的能力,常见的技术实现方式有容器、Serverless、微服务、不可变基础设施;管理理念有DevOps、康威定律等,两者粘合起来才能最大程度发挥云原生的技术价值。

推荐阅读


云原生时代Java面临的不适与挑战

从IaaS到FaaS—— Serverless架构的前世今生

云计算交付模型知多少 - IaaS、PaaS、SaaS


原创不易,随手关注和”三连“,诚挚感谢!

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐