第 3 章:云原生软件的平台
云原生平台通过容器技术和自动化能力,极大提升了现代应用的开发、部署和运维效率。本章系统梳理云原生平台的演进、核心原则及团队协作模式,帮助读者理解平台在软件生命周期中的关键作用。
本章要点
- 云平台发展历史的简单介绍
- 云原生平台的基础功能
- 容器的基本知识
- 如何在整个软件开发生命周期中使用平台
- 安全性、合规性和变更控制
在帮助客户采用云原生模式和平台时,我发现平台的自动化和抽象能力极大提升了系统稳定性和运维体验。以 Cloud Foundry 为例,平台自动监控应用健康并重启故障实例,运维和用户体验显著提升。
需要强调的是,云原生平台并非降低应用质量的借口。平台通过自动化和抽象,满足持续部署、高度分布式和动态环境的需求,开发者和运维人员可专注于业务创新。
云(原生)平台的发展
平台支持软件开发和运维并非新鲜事。J2EE、JBoss、WebSphere、WebLogic 等传统平台曾为企业带来巨大价值。但现代需求推动了新一代平台的诞生。
从云计算开始
云平台的兴起始于 AWS 2006 年的 EC2、S3、SQS 等服务。开发者无需自建硬件,可自助获取资源。早期云平台主要提供计算能力,架构和运维模式未发生根本变化。
随着云平台采用普通硬件,故障率提升,AWS 通过软件和抽象(如可用区)提升弹性。用户需合理利用这些抽象,逐步形成新的软件架构。
Google 和 Microsoft 随后推出 GAE 和 Azure,采用更高层抽象,限制用户直接访问底层资源,提升安全性和弹性。三大云厂商最终都提供了 IaaS 和更高层服务。
AWS | GCP | Azure | |
---|---|---|---|
计算 | EC2 | Google 计算引擎 | Azure 虚拟机 |
存储 | S3 | Google 云存储 | Azure Blob 存储 |
网络 | VPC | VPC | VPN |
这些平台的演进推动了云原生平台的出现,抽象层次更高,服务更丰富。
云原生的拨号音
传统运维关注主机、文件系统等基础设施抽象,获取应用日志需多步操作。云原生平台则以应用为中心,平台自动聚合日志,运维只需关注应用本身。
- IaaS 平台:基础设施拨号音,接口面向机器、存储、网络。
- 云原生平台:应用拨号音,接口面向应用,抽象更高。
下图展示了三层架构及运维抽象的差异。

主流云原生平台包括 Google App Engine、AWS Elastic Beanstalk、Azure App Service、Cloud Foundry 等,均以应用为中心,提升开发和运维效率。
云原生平台的核心原则
云原生平台的核心哲学是支持高度分布式应用在不断变化的环境中运行。技术基础主要是容器。
首先,我们来聊聊容器
容器是云原生软件的关键推动者。容器类似虚拟机,但更轻量级,启动快、资源消耗低。多个容器共享主机操作系统内核,但各自拥有独立文件系统和运行时环境。
下图展示了主机与容器的关系。

容器为应用提供隔离和弹性,平台通过容器实现健康监控、实例分布、IP 分配、动态路由、配置注入等功能。
支持“不断的变化”
云原生平台自动管理可用区和实例分布,简化跨区部署和故障恢复。平台通过自动化编排,确保应用在环境变化时依然可用。
最终一致性是平台的核心模式。平台不断比较期望状态与实际状态,自动调整,确保系统自愈。Kubernetes、Cloud Foundry 等平台均采用类似机制。
下图展示了平台自动化管理的流程。

支持“高度分布式”
分布式系统带来服务发现、配置管理、分布式跟踪、断路器等挑战。云原生平台自动实现这些功能,降低开发和运维复杂度。
以食谱推荐网站为例,推荐服务需调用收藏服务,平台通过 DNS、路由、配置服务等自动管理服务实例和配置分发。
下图展示了服务发现和配置管理的流程。

平台还支持分布式跟踪、断路器等高级功能,提升系统弹性和可观测性。
谁做了什么?
云原生平台通过抽象和合约,明确平台团队与应用团队的职责边界。平台团队负责平台配置和运维,应用团队专注于业务应用开发和运维。
下图展示了团队职责分工和自治模式。

正确的合约和抽象让各团队独立运作,提升敏捷性和部署频率。
更多的云原生平台能力
平台会支持整个软件开发生命周期
平台自动化贯穿开发、测试、生产等各阶段,确保环境一致性和部署流程可预测。API、运行时环境、服务合约在各环境中保持一致,支持持续交付。
下图展示了构件在不同环境中的部署流程。

安全、变更控制和合规(管控功能)
平台将安全、合规和变更控制内置,实现自动化保障。基础镜像、运行时环境、构件均受平台团队控制,应用团队专注业务开发。
下图展示了容器镜像结构与安全控制点。

平台支持滚动升级和补丁管理,应用和平台团队可独立运维,提升安全性和响应速度。
变更控制与多租户
平台通过容器和多租户机制实现资源隔离,防止变更影响其他系统。访问控制、监控、路由等功能均支持多租户,授权应用团队自主管理。
下图展示了多租户资源隔离和共享机制。

总结
- 云原生平台满足现代软件的高可用、弹性和敏捷需求。
- 平台自动化贯穿软件开发生命周期,提升部署效率和安全性。
- 抽象层次提升,开发和运维团队职责分明,协作高效。
- 平台内置安全、合规和变更控制,支持多租户和资源隔离。
- 最终一致性和分布式能力是平台核心,保障系统自愈和弹性。
- 云原生平台是现代组织构建和运维分布式软件的必备基础设施。