- 企业级Java现代化:写给开发者的云原生简明指南
- (德)Markus Eisele等
- 571字
- 2025-02-25 23:35:19
“云原生”的含义
你可能已经听说过采用云原生的方式来开发应用和服务,自2015年云原生计算基金会(Cloud Native Computing Foundation,CNCF)成立并发布Kubernetes v1版本以来,更是如此。Bill Wilder在他的Cloud Architecture Patterns(O'Reilly)(网址见链接列表1.6条目)一书中,首次使用了“云原生”这个术语。按照Wilder的说法,云原生应用在架构上要通过使用云平台的服务和自动扩展,充分发挥云平台的优势。在业界对开发和部署云原生应用的兴趣日益浓厚的时期,Wilder出版了这本书。开发人员可以选择各种公有和私有的平台,包括Amazon AWS、Google Cloud和Microsoft Azure,以及众多小型的云供应商。但是,混合云部署在当时变得更常见,这就带来了一些挑战。
CNCF是这样定义“云原生”的(网址见链接列表1.7条目):
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统做出频繁和可预测的重大变更。
——CNCF云原生定义v1.0
与云原生技术类似的还有十二因素应用(网址见链接列表1.8条目)。十二因素应用宣言定义了交付到云中的应用的构建模式。虽然这些模式与Wilder的云架构模式重合,但是十二因素方法论可以用到任意语言编写的应用程序中,并且可以使用任意的后端服务组合(数据库、队列、内存缓存等)。