序
Preface
随着基础设施虚拟化技术的不断成熟,云计算迅速成为IT行业的焦点,“未来的软件一定生长在云上”的理念逐渐深入人心。云提供了一种面向企业应用实现资源按需分配的模型并在云上进行应用的部署和托管。各大技术厂商和企业纷纷开启云化转型,公有云、私有云和混合云逐渐成为企业的核心基础设施。
在经历从Cloud Foundry PaaS引爆“平台即服务“的热潮,到Docker横空出世对传统PaaS形成降维打击再到Kubernetes以更具前瞻性的理念成为容器云事实标准的戏剧性演化之后,基于容器技术的PaaS(称为CPaaS或CaaS)成为云计算新的拐点。以容器和Kubernetes为核心的容器云技术蓬勃发展,在越来越多的行业和领域得到大量应用,影响力不断提升,成为各行各业创新发展,加速数字化转型的重要驱动力。
在容器技术、DevOps、微服务、动态编排等技术和理念的推动下,应用上云已经是不可逆转的趋势,基于云化架构的特点,定义一条能够让应用最大程度利用云的能力、发挥云的价值的最佳路径成为业界的迫切需求,“云原生”应运而生!
2015年,Pivotal公司的Matt Stine首次提出云原生应用的概念,此后Google、红帽等知名IT企业主导成立了云原生计算基金会(CNCF)并托管于Linux基金会旗下,随着近几年云原生生态的不断壮大,国内也在中国信通院云计算开源产业联盟(OSCAR)和CNCF的指导下成立了云原生技术实践联盟(CNBPA),目前主流云计算供应商和大量知名科技公司都加入了CNCF基金会,基金会会员和托管项目越来越多,范围越来越广,2018年CNCF对云原生作出如下定义:
云原生是从云的原生应用角度出发的一整套设计、开发、部署、运行、维护的流程、技术栈以及背后文化理念的统称。它既包含了实现应用云原生化的方法论,也包含了落地实践的关键技术。其价值主张包括:
隔离性:把应用程序打包在容器中加快了代码和组件的重用,并且简化了操作;
无锁定:开源软件栈支持在任何公共或私有云上或以组合方式进行部署;
无限扩展:为能够扩展到数万个自修复多租戶节点的现代分布式系统环境而优化;
灵活性和可维护性:将应用程序拆分为具有明确描述的依赖关系的微服务;
提高效率和资源利用率:动态管理和调度微服务的中央编排流程降低了与维护和操作相关的成本;
应用的弹性:以应对单个容器甚至数据中心的故障,以及不同级别的需求。
云原生技术已在金融、电信、互联网等多个行业得到广泛验证,支持的业务场景愈加丰富,行业生态空前繁荣。依据CNCF云原生全景图,目前云原生社区囊括了包括运行时、编排与管理、平台、可观察性与分析、Serverless等在内的9个大类,29个功能模块,1427个项目,项目市值总额达到18.9万亿美元,云原生生态体系已经初步形成,随着云化趋势的到来和容器云的纷纷落地,云原生技术在深耕DevOps、微服务、服务网格、可观察性等领域的同时,在大数据、区块链、机器学习、边缘计算、物联网、Serverless等新兴领域得到广泛关注和应用,覆盖范围不断拓展,具有巨大的发展潜力。
云原生技术在Kubernetes的平台化使能下,重塑了云计算厂商的产品架构设计和市场格局,在应用基础设施、应用软件架构、开发模式和部署架构四个方面协同进化,为各行各业带来了全新的业务价值与技术优势;在业务驱动下,随着对简化基础设施运维、缩短应用开发上线周期实现敏捷交付、确保业务连续性等内生动力的提升,企业对云原生应用开发的需求也在迅速增长。云原生已经成为企业技术创新和生态转型的基石,越来越多的企业开始践行云原生优先(Cloud Native First)战略,构建一体化云原生平台,加速企业现代化进程。
相较于云原生技术的飞速发展和技术本身的重要性,云原生理念和技术的普及则是任重道远。一方面云原生技术覆盖的领域越来越广泛,基于开源组件构建的云原生架构越来越复杂,不仅需要不断引入相关组件进行有机集成和持续管理,还需要面向企业级特性需求加以增强,对企业的架构、开发、运维等部门提出了更高的要求;另一方面云原生生态社区空前活跃,技术演进日新月异,想要迅速了解社区最新技术,紧随社区发展方向,关注云原生发展趋势实非易事。作为云原生行业的从业者,我们希望能够为云原生的普及贡献一份微薄之力,因此我们决定基于团队成员在云原生领域的技术积累和实践经验,以系列的形式不定期通过公众号分享云原生相关知识,希望能够为从业人员在学习和践行云原生相关技术的过程中提供一些帮助,也希望能在分享和交流的过程中进一步拓宽思维,深化认识,不断进步。
云原生系列专辑文章内容并不固定,将涵盖云原生相关的方法论、架构、开发、测试、运维和安全等多个维度以及CNCF托管和孵化的众多开源项目。部分内容主题可能篇幅较长,会作为子系列分为多期进行不定期连载。
我们将认真编写,仔细核对,精心编排,力求保证文章内容的准确性和读者的阅读体验,由于云原生项目绝大多数为活跃的开源项目,技术变化日新月异,因此文章内容可能存在一定的滞后和疏漏,敬请见谅,也期待读者的阅读和反馈,希望在后续的分享和交流中共同进步。