本文为个人学习笔记,整理摘录自陈皓在《极客时间》的专栏文章。
一、软件工程的本质
- 第一,提高服务的SLA
- 高可用的系统;
- 自动化的运维;
- 第二、能力和资源重用或复用。
- 软件模块的重用;
- 软件运行环境和资源的重用。 ==》我们需要的2个重要能力:软件抽象能力、软件标准化能力
- 第三、过程的自动化
- 软件生产流水线
- 软件运维自动化
二、 分布式关键技术
- 分布式多层的系统架构
- 服务化的能力供应。
- 自动化的运维能力
以上两点软件工程的本质和分布式关键技术都在PaaS平台上得到完全体现。
三、 PaaS平台的本质
- 一个好的PaaS平台应该具有分布式、服务化、自动化部署、高可用、敏捷以及分层开放的特征,并可与IaaS实现良好的联动。
PaaS与传统中间件最大的差别
-
服务化是PaaS的本质。软件模块重用,服务治理,对外提供能量是PaaS的本质。
-
分布式是PaaS的根本特性。多租户隔离、高可用、服务编排是PaaS的基本特性。
-
自动化是PaaS的灵魂。自动化部署安装运维,自动化伸缩调度是PaaS的关键。
PaaS平台的总体架构
PaaS.png在Docker+Kubernetes层之上,我们看到了两个相关的PaaS层。
在图的两个分别是与运营和运维相关的。运营这边主要管理一些软件资源以及外部接入和开放平台的东西。主要是对外提供nengde相关组件;
而运维主要是对内的相关东西。
一个完整的PaaS平台会包括以下几个部分。
-
PaaS调度层
-
PaaS能力服务层
-
PaaS流量调度
-
PaaS运营管理
-
PaaS运维管理
四、PaaS平台的生产和运维
下面这个图给出了一个大概的软件生产、运维和服务接入,它把之前的东西都串起来了。
PaaS平台的总体架构.png从左上开始软件构建,进入软件资产库(Docker Registry+一些软件的定义),然后走DevOps的流程,通过整体架构控制器进入生产环境,生产环境通过控制器操作Docker+
Kubernetes集群进行软件部署和生产变更。
其中,同步服务的运行状态,并通过生命周期管理来拟合状态,如图右侧部分所示。服务运行时的数据会进入到相关应用监控,应用监控中的一些监控事件
会同步到生命周期管理中,再由生命周期管理器来做决定,通过控制器来调度服务运行。当应用监控中心发现流量变化,要进行强制性伸缩时,它通过生命周期管理来控制系统进行伸缩。
左下是服务接入的相关组件,主要是网关服务,以及API聚合编排和流程处理。这对应于之前说过的流量调度和API Gateway的相关功能。
分布式,主要解决的问题是:服务的吞吐量,和可用性问题。
网友评论