2.2 PaaS
PaaS(Platform as a service,平台即服务):向用户提供将应用程序部署在云计算基础设施上的能力,这些应用程序使用提供商支持的编程语言、库、服务和公务。用户并不管理或控制底层云计算基础设施,包括网络、服务器、操作系统、存储,但对部署的应用程序有控制权,还可以配置应用程序的环境。
PaaS平台提供了定制化软件研发和部署的中间件平台,也称为“中间件即服务”。中间件的种类非常丰富,可以是数据库,也可以是完整的应用程序服务,还可以是Business Process Management、消息中间件等,它们有的属于应用部署和运行平台APaaS(Application Platform as a service)有的属于集成平台IPaaS(Integration as a service)。PaaS层的基础架构基本上都采用K8s。
2.2.1 核心技术
1.容器技术
容器作为标准化软件单元,它将应用及其所有依赖项打包,使应用不再受环境限制,可以在不同计算环境间快速、可靠地运行。
容器的三个核心价值:敏捷性、弹性和可移植性。
K8s提供了如下分布式应用管理的核心能力:
- 资源调度
- 应用部署与管理
- 自动修复
- 服务发现与负载均衡
- 弹性伸缩
2.微服务
过去开发一个后端应用,最为直接的方式就是通过单体应用提供并集成所有的服务,即单体模式。但是随着业务的发展以及需求的不断增长,单体应用功能愈发复杂,参与开发的工程师规模可能由最初几个人发展到十几个人,应用迭代效率集中式研发、测试、发布、沟通模式而显著降低。为了解决单体模式带来的项目迭代流程过度集中的问题,微服务模式应运而生。
微服务模式将业务单元按照独立部署和发布的标准进行抽取与隔离,一个大而全的复杂应用能够被拆分成多个微笑的相互独立的子功能,这些子功能被称为“微服务”,多个“微服务”共同形成一个物理独立但逻辑完整的分布式微服务体系。这些微服务相对独立,通过解耦研发、测试与部署流程,提高了整体迭代效率。当其中的某一微服务无法支撑时,可以横向水平扩展,从而保证应用的高可用性,具有独立应用生命周期管理、独立版本开发与发布等能力,从根本上解决了单体应用在拓展性和稳定性上存在的先天架构缺陷。
在微服务架构中,旁路注册中心作为协调者来完成服务的自动注册和发现。服务之间的通信以及容错机制开始模块化,形成独立服务框架。
主要微服务技术:
Apache Dubbo、Spring Cloud、Eclipse MicroProfile、Tars、SOFAStack、Dapr。
SOFAStack:是一套快速构建金融机构分布式结构的中间件。MOSN是SOFAStack的组件,它是一款采用Go语言开发的Service Mesh数据平面代理,其工鞥和定位类似于Envoy,旨在提供分布式、模块化、可观测、智能化的代理能力。MOSN支持Envoy和Istio的API,可以与Istio集成。