云原⽣时代(⼀):云原⽣及CNCF基⾦会
作者:信天创投合伙⼈蒋宇捷
专注于企业服务、⾦融科技等投资领域,已投资多家知名公司,包括美味不⽤等、法⼤⼤、缔联科技、链上科技、知藏科技、飞榴科技、⼼知科技、司库⽴⽅等。创新⼯场早期代表性明星项⽬“百度魔图”联合创始⼈、CTO,公司于2011年被百度成功收购。
今天我们不讲⾏业和商业,讲讲2019年最热的概念-云原⽣(Cloud Native)。
我认为云原⽣是未来10年IT发展最重要的趋势,但是它涵盖的概念⾮常多,需要花很多时间研究,同时浩如烟海的资料分散在⽹络上各个地⽅,缺乏系统性的梳理。今年2⽉我在基⾦内部做过⼀个分享,今⽇成⽂,希望让更多的⼈有所了解。
本⽂试图解答:
• 为什么云原⽣概念具有⾰命性?
• 什么是微服务?
• 微服务和中台的关系
• 容器和微服务为什么是最佳搭档?
• 容器化与虚拟化的区别
• API管理与API集成的区别
• Kubernetes是做什么⽤的?
• 开源软件商业化遇到的典型问题是什么?
• 等等
涉及到的概念包括云原⽣、DevOps、持续集成、持续交付、持续部署、微服务、API管理、iPaaS、Service Mesh、Serverless、容器、Docker、Kubernetes等等,我争取⽤⽐较形象和通俗的⽅式把这些技术概念讲清楚。
本⽂内容较多,共分为六个章节。
第⼀部分云原⽣及CNCF基⾦会
第⼆部分 DevOps与CI/CD
第三部分微服务、API管理与集成
第四部分容器与Docker
第五部分 Kubernetes与容器编排之战
第六部分思考与机会
今天开启⽂章的第⼀部分——云原⽣及CNCF基⾦会,欢迎持续关注信天创投,接下来将为⼤家陆续讲解云原⽣
今天开启⽂章的第⼀部分——云原⽣及CNCF基⾦会,欢迎持续关注信天创投,接下来将为⼤家陆续讲解云原⽣时代其他五部分内容。
从集装箱⾰命说起
有⼀本⾮常有名的书,叫《集装箱改变世界》,说的是看起来平淡⽆奇的铁箱⼦,如何从⼆⼗世纪起永久性的改变了这个世界,并促进了全球化和全球分⼯。集装箱的出现和发展是实体货物包装、运输、交付⽅式的⼀次⾰命。
《经济学家》杂志曾经评价说“没有集装箱,不可能有全球化”。集装箱为什么具有⾰命性?
经济全球化的基础就是现代运输体系,⽽⼀个⾼度⾃动化、低成本和低复杂性的货物运输系统的核⼼就是集装箱。集装箱最⼤的成功在于其产品的标准化及由此建⽴的⼀整套运输体系。
能够让⼀个载重⼏⼗吨的庞然⼤物实现标准化,并且以此为基础逐步实现全球范围内的船舶、港⼝、航线、公路、中转站、桥梁、隧道、多试联运相配套的物流系统,这的确堪称⼈类有史以来创造的伟⼤奇迹之⼀,⽽撬动这个系统的理念就是标准化和系统化。
改变世界的不仅仅是集装箱本⾝,还有⼀整套货物处理的新⽅法,包括港⼝、货船、起重机、卡车,还有发货⼈的⾃⾝操作⽅式等。
云原⽣在IT领域的意义⾮常类似于集装箱,只是⾥⾯装载的不再是实体货物,⽽是虚拟世界的⼆进制代码和软件。我们将在介绍完众多概念之后再来对应解释。
云原⽣的诞⽣
随着虚拟化技术的成熟和分布式框架的普及,在容器技术、可持续交付、编排系统等开源社区的推动下,以及微服务等开发理念的带动下,应⽤上云已经是不可逆转的趋势。
云原⽣的发展史,来⾃CNCF基⾦会执⾏董事Dan Kohn
云计算的3层划分,即基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)为云原⽣提供了技术基础和⽅向指引,真正的云化不仅仅是基础设施和平台的变化,应⽤也需要做出改变,摈弃传统的⼟⽅法,在架构设计、开发⽅式、部署维护等各个阶段和⽅⾯都基于云的特点,重新设计,从⽽建设全新的云化的应⽤,即云原⽣应⽤。
云原⽣(Cloud Native)这个概念,是由Pivotal的Matt Stine于2013年⾸次提出,他还在2015年出版了《Migrating to Cloud-Native Application Architectures(迁移到云原⽣架构)》⼀书。
Gartner提到云原⽣的定义尚不明确,但含义丰富。云原⽣对于不同的⼈和组织来讲,有着不同的理解。
“Cloud native is an approach to building and running applications that fully exploit the advantages of the cloud computing model.”--云原⽣是⼀种构建和运⾏充分利⽤云计算模型优势的应⽤程序的⽅法。
“云原⽣技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运⾏可弹性扩展的应⽤。
云原⽣的代表技术包括容器、服务⽹格(Service Mesh)、微服务、不可变基础设施和声明式API。
这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的⾃动化⼿段,云原⽣技
术使⼯程师能够轻松地对系统作出频繁和可预测的重⼤变更。”
其中服务⽹格和声明式API是新加⼊的内容,⽽不可变基础设施指的是应⽤的基础设施应是不可变的,是⼀个⾃包含、⾃描述可以完全在不同环境中迁移的东西,容器技术正是这⼀理念实现的基⽯。
⾃描述可以完全在不同环境中迁移的东西,容器技术正是这⼀理念实现的基⽯。
⽽CNCF同时把云原⽣计算定义为:
“Cloud native computing uses an open source software stack to be:
Containerized. Each part (applications, processes, etc) is packaged in its own container. This facilitates reproducibility, transparency, and resource isolation.
Dynamically orchestrated. Containers are actively scheduled and managed to optimize resource utilization. Microservices-oriented. Applications are segmented into microservices. This significantly increases the overall agility and maintainability of applications.”
——云原⽣计算使⽤的开源技术栈包括:
容器化。每个部分(应⽤、流程等等)都打包在⾃⼰的容器中,这有助于提升复⽤性、透明度以及改善资源隔离。
动态编排。容器受到有效的调度和管理,以便优化资源利⽤。
以微服务为导向。应⽤被分割到不同的微服务中,这种分割可以显著的提⾼应⽤的整体敏捷性和可维护性。
我个⼈理解,云原⽣是指从云的原⽣应⽤⾓度出发,⼀整套设计、开发、部署、运⾏、维护的流程、技术栈以及背后⽂化理念的统称。
下表列举了云原⽣应⽤和传统应⽤的有哪些主要区别。
要转向云原⽣应⽤需要以新的云原⽣⽅法开展⼯作,云原⽣有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运⾏可弹性扩展的应⽤。
云原⽣的发展脉络
云原⽣背后的价值主张有哪些?
• 隔离性:把应⽤程序打包在容器中加快了代码和组件的重⽤,并且简化了操作;
分布式和微服务的关系
• ⽆锁定:开源软件栈⽀持在任何公共或私有云上或以组合⽅式进⾏部署;
• ⽆限扩展:为能够扩展到数万个⾃修复多租户节点的现代分布式系统环境⽽优化;
• 灵活性和可维护性:将应⽤程序拆分为具有明确描述的依赖关系的微服务;
• 提⾼效率和资源利⽤率:动态管理和调度微服务的中央编排流程降低了与维护和操作相关的成本;
• 应⽤的弹性:以应对单个容器甚⾄数据中⼼的故障,以及不同级别的需求
2019年,Gartner曾经发布报告表⽰云原⽣时代已经到来,在未来三年中将有75%的全球化企业将在⽣产中使⽤容器化的应⽤。
请注意,云原⽣相关技术不仅仅能⽤于云计算,即便是和云计算即对⽴⼜协同的边缘计算,微服务、容器、Kubernetes 依然是事实上的杀⼿应⽤和标准。
如由著名的Kubernetes管理平台创业公司Rancher所贡献的K3s项⽬,就是Kubernetes(K8s)的最轻量级版本,以满
如由著名的Kubernetes管理平台创业公司Rancher所贡献的K3s项⽬,就是Kubernetes(K8s)的最轻
量级版本,以满⾜边缘计算和IOT环境中,在x86、ARM64和ARMv7处理器上运⾏⼩型、易于管理的Kubernetes集⽇益增长的需求。
云原⽣计算基⾦会CNCF
CNCF于2015 年7⽉由Google 牵头成⽴,⾪属于 Linux 基⾦会,初衷是围绕云原⽣服务云计算,致⼒于培育和维护⼀个⼚商中⽴的开源⽣态系统,维护和集成开源技术,⽀持编排容器化微服务架构应⽤,通过将最前沿的模式民主化,让这些创新为⼤众所⽤。
CNCF的使命包括以下三点:
• 容器化包装
• 通过中⼼编排系统的动态资源管理
• ⾯向微服务
全球主流的科技企业和云计算⼚商绝⼤部分都是CNCF会员,其中不乏多家来⾃中国的科技巨头。
CNCF黄⾦、⽩⾦会员
截⽌2020年4⽉,CNCF 基⾦会共托管49个云原⽣项⽬,每个CNCF项⽬都对应⼀个成熟度等级,申请成为CNCF项⽬的时候需要确定项⽬的成熟度级别,Kubernetes和 Envoy等项⽬基于⽣产可⽤和⾼稳定性⾸先成为毕业项⽬(9个),其他项⽬则根据其成熟度分别位于孵化(17个)和沙箱(23个)阶段。CNCF⽬前托管的项⽬共同构成了云原⽣⽣态的基⽯。
值得注意的是其中有三个来⾃中国的项⽬:VMware中国团队为企业⽤户设计的 Registry Server开源项⽬
Harbor,PingCap贡献的分布式事务键值数据库TiKV以及阿⾥⾃研的P2P⽂件分发系统Dragonfly。
CNCF项⽬成熟度等级划分
对于企业在复杂的基础架构之上如何推动云原⽣应⽤的更好落地,从⽽更好地适应环境与业务的发展,CNCF给出了路线图(Trail Map)⽤于对⽤户在整体上给出指导建议,共分成⼗个步骤(容器化;CI/CD;应⽤定义及编排;监控及分析;服务代理、发现和⽹格;⽹络、策略及安全;分布式数据库及存储;流与消息;镜像库与运⾏时;软件分发)进⾏实施,⽽在不同的步骤都可以结合CNCF全景图(Landscape)中列出的产品或服务进⾏选择。
从CNCF的理念及野⼼来看,基于云原⽣的基础设施正在壮⼤和蚕⾷⾮云的市场,未来极有可能成为整个IT⽣态事实上的意见领袖和领导者。
云原⽣涵盖的主要概念
上⾯提到云原⽣的代表技术包括容器、服务⽹格(Service Mesh)、微服务、不可变基础设施和声明式API。
另外⼀种⽐较主流的说法是云原⽣=微服务+DevOps+持续交付+容器化,⼴泛的见诸于各种⽂章和资料。
在接下来的《云原⽣时代》系列报告中,我们将依照这些概念,分成DevOps与CI/CD;微服务、API管理与集成;容器与Docker;Kubernetes与容器编排之战四个部分全⾯介绍云原⽣各个组成部分。
参考⽂档:
本⽂的部分内容参考或者引⽤以下⽂章,在此表⽰感谢,如果有涉及知识产权的问题,请联系我及时修改。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。