云原生Spring实战
上QQ阅读APP看书,第一时间看更新

1.8 小结

云原生应用是高度分布式系统,专门为云环境设计,而且会在云中运行。

云是一种IT基础设施,以商品的形式提供计算、存储和网络资源。

在云中,用户只须为实际使用的资源付费。

云供应商以不同的抽象层次提供服务:基础设施(IaaS)、容器(CaaS)、平台(PaaS)、函数(FaaS)或软件(SaaS)。

云原生应用具有水平可扩展性、松耦合和高内聚性,并且对故障有韧性、可管理、可观测。

云原生开发得到了自动化、持续交付和DevOps的支持。

持续交付是一种综合的工程实践,可快速、可靠和安全地交付高质量的软件。

DevOps是一种文化,能够让不同的角色进行协作,共同交付业务价值。

现代企业采用云原生来生产软件,这些软件可以快速交付,能够根据需要动态扩展,并且在优化成本的同时保证始终可用、对故障有韧性。

可以将容器(比如Docker容器)作为计算单元来设计云原生系统。它们比虚拟机更加轻量级,并提供了可移植性、不变性和灵活性。

有专门的平台(比如Kubernetes)提供管理容器的服务,这样我们就不需要直接处理底层的问题。它们提供容器编排、集群管理、网络服务和调度功能。

在Serverless计算模型中,平台(比如Knative)负责管理服务器和底层基础设施,开发人员只关注业务逻辑。后端功能是按使用量付费的,以实现成本优化。

微服务架构可用于开发云原生应用,但这并不是必需的。

为了设计云原生应用,我们将使用基于服务的风格,其特点是服务以及服务间的交互。

云原生服务可以进一步分类为应用服务(无状态)和数据服务(有状态)。