基于云原生的新一代应用编程界
Kubenetes 已经成为了云原生的操作系统,而容器成为了操作系统调度的基本单元,同时定义了应用交付的标
准。但是对于应用开发者来说,这些还远没有深入到应用的架构,改变应用的编程界面。但是这种变革已经在悄然发
生了,而且有不断加速之势。
综上,包括生命周期管理、运维管理、配置范围和扩展和管理、以及语言无关的编程框架,一起构成了崭新的应
用与云之间的编程界面。这一变革的核心逻辑还是把应用中和业务无关的逻辑和职责,剥离到云服务,并在这个过程
中形成标准,让应用开发者能够在专有云、公有云、或者混合云的场景中,都能有一致的研发运维体验。
基于云原生的新一代应用编程界面
2
Kubenetes 已经成为了云原生的操作系统,而容器成为了操作系统调度的基本单元,同时定义了应用交付的标
准。但是对于应用开发者来说,这些还远没有深入到应用的架构,改变应用的编程界面。但是这种变革已经在悄然发
生了,而且有不断加速之势。
Sidecar 架构彻底改变了应用的运维架构。由于 Sidecar 架构支持在运行时隔离应用容器与其他容器,因此
原本在虚拟机时代和业务进程部署在一起的大量运维及管控工具,都被剥离到独立的容器里进行统一管理。
对于应用来说,仅仅是按需声明使用运维能力,能力的实现成为云平台的职责。
应用生命周期全面托管。在容器技术基础上,应用进一步描述清晰自身状态(例如通过 Liveness Probe),
描述自身的弹性指标以及通过 Service Mesh 和 Serverless 技术将流量托管给云平台。云平台将能够全面
管理应用的生命周期,包括服务的上下线、版本升级、完善的流量调配、容量管理等,并保障业务稳定性。
用声明式配置方式使用云服务。云原生应用的核心特点之一就是大量依赖云服务(包括数据库、缓存、消息等)
构建,以实现快速交付。而这些服务的配置实际上是应用自身的资产,为了能够让应用无缝地运行在混合云
的场景,应用逐渐开始以基础设施即代码的方式使用云服务。正因如此,相关的产品如 Terraform、Pulumi
越来越受到应用开发者的拥抱。
语言无关的分布式编程框架成为一种服务。为了解决分布式带来的技术挑战,传统中间件需要在客户端 SDK
编写大量的逻辑管理分布式的状态。今天,还是基于 Sidecar 架构,我们看到很多项目在把这些内容下沉
到 Sidecar 中,并通过语言无关的 API (基于 gPPC/HTTP)提供给应用。这一变化进一步简化应用代码
的逻辑和应用研发的职责,例如配置的绑定,身份的认证和鉴权都可以在 Sidecar 被统一处理。在这个方面
dapr.io 和 cloudstate.io 是先行者。
综上,包括生命周期管理、运维管理、配置范围和扩展和管理、以及语言无关的编程框架,一起构成了崭新的应
用与云之间的编程界面。这一变革的核心逻辑还是把应用中和业务无关的逻辑和职责,剥离到云服务,并在这个过程
中形成标准,让应用开发者能够在专有云、公有云、或者混合云的场景中,都能有一致的研发运维体验。