Cloud Native是什么
随着云计算时代的来临,越来越多的企业正打算将业务迁移到云上进行,以提高其业务敏捷性和创新能力。随之而来的是组织结构、运维方式、系统架构等多方面的转变。比如,原有的功能型/矩阵型组织结构逐渐的演变为去中心化的组织结构,交付方式从运维手动部署到物理服务器,到运行在云平台的容器中并且可以自动部署、动态编排,而系统架构也在从臃肿的单体架构向更灵活自治的微服务架构方向演进。
而微服务架构和容器技术的出现也加速了业务向云上的迁移过程,让企业能够更好地利用到云平台的弹性、可扩展、自恢复等特点。但是现实的情况是,大部分的公司缺乏微服务、容器化等演进的经验和指导,它们迫切需要一个经过考验的模型以及工具链来帮助自己降低向云上迁移的成本。
于是Pivotal的软件架构师Matt Stine首次提出了Cloud Native这个概念,认为Cloud Native是一个思想的集合,既包含技术(微服务,敏捷基础设施),也包含管理(DevOps,康威定律以及组织优化等),还涉及流程(持续交付)。企业采用基于Cloud Native的技术和管理方法,能够更平滑而快速地将业务迁移到云上,享受云的高效和按需伸缩资源的能力。
Cloud Native概念提出后在业界迅速传播,各种不同组织和个人对于Cloud Native都有自己的理解,但基本都是从架构、技术、工具等方面围绕微服务、云、容器等展开。
对于Cloud Native的定义,我们的理解是Cloud Native是构建、运行、管理基于云环境、利用云环境、适应云环境、受益云环境的软件而发展起来的新的系统实践范式,其中包括:
-
充分利用云基础设施与平台服务,具备微服务架构、弹性伸缩、分布式、高可用、多租户、自动化运维等关键特征的架构实践;
-
建立全功能团队、发展全栈工程师并高度协作的组织实践;
-
采用DevOps、自动化工具,实现微服务持续交付的工程实践;
Cloud Native的实施,需要通过架构、工程、组织面向云环境的协调实践,来实现Cloud Native系统对外体现的快速、规模