作者 | 张磊
编辑 | 贾静
“Serverless 化”与“多样性”将成为上层应用服务生态的两大关键词。
1、Kubernetes 项目的被采纳度将持续增长
作为“云原生”(Cloud Native)理念落地的基础,Kubernetes 项目已经成为了构建容器化平台体系的默认选择。但是,不同于一个只能生产资源的集群管理工具,Kubernetes 项目最大的价值,乃在于它从一开始就提倡的声明式 API 和以此为基础“控制器”模式。
在这个体系的指导下, Kubernetes 项目保证了在自身突飞猛进的发展过程中 API 层的相对稳定的和一定的向后兼容能力,这是作为一个平台级项目被用户广泛接受和认可的重要前提。更重要的是,Kubernetes 项目为使用者提供了宝贵的 API 可扩展能力和良好的 API 编程范式,催生出了一个完全基于 Kubernetes API 构建出来的上层应用服务生态。可以说,正是这个生态的逐步完善与日趋成熟,才确立了 Kubernetes 项目如今在云平台领域牢不可破的领导地位,也间接宣告了竞品方案的边缘化。
与此同时,上述事实标准的确立,也使得“正确和合理地使用了 Kubernetes 的能力”,成为了评价上层应用服务框架(比如 PaaS 和 Serverless )的一个重要依据:这不仅包括了对框架本身复杂性和易用性的考量,也包括了对框架可扩展性和演进趋势的预期与判断。
不过,相比于国外公有云上以 Kubernetes 为基础的容器化作业的高占比,国内公有云市场对容器的采纳程度目前仍然处于比较初级的水平,直接贩卖虚拟机及其关联 IaaS 层能力依然是国内绝大多数公有云提供商的主要业务形态。所以,不同于国外市场容器技术增长逐步趋于稳定、Kubernetes 公有云服务已经开始支撑头部互联网客户的情况,Kubernetes 以及容器技术在国内云计算市场里依然具有巨大的增长空间和强劲发展势头。
不难预测,Kubernetes 项目在国内公有云上的逐渐铺开,会成为接下来几年国内公有云市场上的一个重要趋势。而无论是国内还是国外,大量 Kubernetes 项目相关岗位的涌现,正是验证这个趋势与变化的一个最直接的征兆。
2、“Serverless 化”与“多样性”将成为上层应用服务生态的两大关键词
当云上的平台层被 Kubernetes 项目逐步统一之后,过去长期纠结在应用编排、调度与资源管理上裹足不前的 PaaS 项目得到了生产力的全面释放,进而在云平台层之上催生出了一个日趋多样化的应用服务生态。
事实上,这个生态的本质与 2014 年之前的 PaaS 生态没有太大不同。只不过,当原本 PaaS 项目的平台层功能(编排、调度、资源管理等)被剥离了出来之后,PaaS 终于可以专注于应用服务和发布流程管理这两个最核心的功能上,开始向更轻、更薄、更以应用为中心的方向进行演进。而在这个过程中, Serverless 作为 PaaS 最为极端的一种形态,自然开始成为了主流话题。
这里需要指出的是,Serverless 从 2014 年 AWS 发布 Lambda 时专门用来指代函数计算(或者说 FaaS)发展到今天,已经被扩展成了包括大多数 PaaS 功能在内的一个泛指术语。而究其本质,“无状态”、“事件驱动”和“按实际使用计费”,可以认为是 Serverless 最主要的三个特征。这也是为什么我们会认为今天大家所谈论的 Serverless,其实是 PaaS 的一种极端形态。
伴随着 Serverless 概念本身的“横向发展”,我们不难预料到,2019 年之后云端的应用服务生态,一定会趋于多样化,进而覆盖到更多场景下的应用服务管理需求。并且,无论是 Function,传统应用还是容器,都会开始尝试以不同的方式和形态嵌入到“无状态”、“事件驱动”和“按实际使用计费”这三个基本框架当中。
当然,这种变化趋势的原因也不言而喻:Serverless 三大特征背后所体现的,乃是云端应用开发过程向“用户友好”和“低心智负担”方向演进的最直接途径。而这种“简单、经济、可信赖”的朴实诉求,正是云计算诞生的最初期许和永恒的发展方向。
而这种上层应用服务能力向 Serverless 迁移的演进过程,必然还会伴随着整个云计算平台继续演进,这既包括了面向新应用服务的存储和网络方案,也可能会包括计费模型的变化。但最重要的,还是不断被优化的 Auto-scaling 能力和细粒度的资源隔离技术,只有它们才是确保 Serverless 能为用户带来价值的最有力保障。
3、看得见、摸得着、能落地的“云原生”
自从 CNCF 社区迅速崛起以来,“云原生”三个字就成了各大云厂商竞相角逐的一个关键词。不过,相比于 Kubernetes 和容器技术实实在在的发展和落地过程,云原生的概念却长期以来“曲高和寡”,让人很难说出个所以然来。
其实,Cloud Native 看似与 Cloud 强相关,但实际上我们不难看出,这个概念的本质,就是对 Kubernetes 项目及其周边关键生态项目组成的容器化基础设施体系的一个指代,这与 CNCF 创立的初衷和发展历程是完全一致的。 当然,到了 Kubernetes 已经成为云端平台层事实标准的今天,这样的指代本身可能已经没有什么争议了。
也正是伴随着这样的发展过程,云原生对于使用者的意义,在 2019 年之后已经变得非常清晰:是否采用云原生技术体系,实际上已经变成了一个是不是要采纳和兼容业界主流标准的取舍,这涉及到整个团队的发展、招聘、产品形态等一系列问题,而绝非一个单纯的技术决策。
明白了这一层道理,在 2019 年,我们已经不难看到,国内最顶尖的技术公司们,都已经开始在云原生技术框架下发起了实实在在的技术体系升级与落地的“战役”。显然,大家都已经注意到,相比于讨论“云原生到底是什么”这样无谓的意识形态话题,抓紧时间和机遇将 Kubernetes 及其周边核心技术生态在组织中生长起来,并借此机会完成自身基础技术体系的转型与升级,才是这些体量庞大的技术巨人赶上这次云计算浪潮的不二法宝。在这个背景下,所谓“云原生”体系在这些公司的落地,只是这些激动人心的技术革命背后一个微不足道的附加值而已。
而在”云原生”这个关键词的含义不断清晰的过程中,我们一定要再次强调 Kubernetes、Envoy、Isito、Knative 和 Prometheus 这几个关键项目:它们其实就是“看得见、摸得着、能落地”的“云原生”概念的重要组成部分,把握住了这些项目的演进与发展脉络,就是把握住了未来云计算发展的主线与方向。
延展阅读:请注意,容器技术圈已迈入后Kubernetes时代!
作者介绍
张磊,《Docker 容器与容器云》作者,Kubernetes 社区资深成员与项目维护者,Kubernetes 容器运行时和集群调度等多个核心特性的作者之一。