为云而生的“云原生”,为什么越来越重要?( 二 )


4、按需服务:云应用部署在云端 , 客户可以根据自己的需求 , 通过网络访问 , 自助使用服务 , 不需要联系云应用管理人员 。 通常会有个云应用服务目录 , 每个应用服务都有使用说明 , 通过服务目录可以找到适合自己满足自身需求的应用 。
此外 , 像高可用性、敏捷、可监控审计、可配置等特性也都是云原生应用的重要特点 , 但不再赘述 。
总之 , 云原生正是云计算区别于传统IT架构的根本特征 , 云原生应用正在成为云计算主流的服务形式 。 企业通过采用基于云原生的技术和管理方法而生成的应用 , 就能够持续地享受到“云计算”提供的源源不断地高效服务 。
在探讨云原生应用的价值前 , 我们先简单了解下云原生主要使用的技术 。
持续进化中的云原生技术
在云原生概念提出的2013年 , Docker也正式发布 。 Docker的PaaS提供商DotCloud开源的一个基于LXC的高级容器引擎 , 帮助开发者把应用打包到容器中并进行发布 , Docker对于开发者来说 , 就如同用集装箱货轮来运输货物一样 , 效率又高、(容器如同集装箱)部署灵活性也比虚拟机更好 , 一经发布就成为极为流行的开源容器发布工具 。
为云而生的“云原生”,为什么越来越重要?
本文插图
第二年 , K8s(kubernetes)项目由google发布 。 在容器和Docker诞生之后 , 开发者自然而然需要工具来管理这些容器和容器化引擎 。 K8s正是用来管理云平台中多个主机上的容器化的应用 , 让部署容器化的应用简单和高效 。 因为K8s也是采用了开源形式 , 发布之后也大受欢迎 。
2015 年 , 由Google、红帽、微软等大型云计算厂商以及一些开源公司 , 共同牵头成立了 CNCF云原生基金会 。 CNCF成立之初 , 就有22个创始会员 , K8s成为CNCF托管的第一个开源项目 。 CNCF的目标就是致力于培育和维护一个厂商中立的开源生态系统 , 来推广云原生技术 。
在2018年 , CNCF对“云原生”的定义中 , 给出其代表性技术 , 包括容器、服务网格、微服务、不可变基础设施和声明式API 。 在容器技术的普及中 , Docker实现了容器的可移植、轻量化、虚拟化 , 语言无关 , 大大降低了容器技术的使用门槛 , 而K8s则相当于安排容器发布的管家 , 解决了容器编排的全周期管理 , 就如同集装箱货轮上的船长一样 。 正是这一特性 , K8s也成为了应用上云的可移植性等问题 , 被成为云原生技术的基石 。

为云而生的“云原生”,为什么越来越重要?
本文插图
(K8s架构)
微服务是什么呢?与微服务相对应的传统的以系统为单位进行部署的单体架构 , 与之相比 , 微服务架构就是以独立的组件为单位进行部署 , 是用户可以感知最小功能集 。 微服务具有小而专的特性 , 使得开发、测试、更新效率提高 , 从而实现敏捷 。 从功能上看 , 微服务可以成为Docker的配合搭档 , 使得业务流程可以按需编排 , 实时部署 。
服务网格( Service Mesh )是指用以处理服务与服务之间通信的基础设施层 , 解决了K8s在微服务的连接、管理和监控方面的短板 , 为K8s提供更好的应用和服务管理 , 成为微服务的辅助技术 。 而不可变基础设施相比较于之前的可变基础设施 , 具有更高的一致性和可靠性 , 以及更简单 , 更可预测的部署过程 , 成为云原生应用的运维的可靠基础架构 , 而声明式API这可以理解为是k8s的编码方式 。
这些技术成为目前云原生应用主要利用的工具 。 当然 , 我们也看到云原生的技术边界和工具集合是处在不断变动和更新当中的 。 基于这些特性和工具的发展 , 我们看到云原生应用正在成为互联网巨头纷纷布局和转向的应用方式 , 也成为众多中小企业和开发者选择应用开发的方式 。 那么 , 云原生技术到底为何越来越重要 , 云原生应用正在发挥哪些价值呢?