本文為個人學習筆記榛斯,整理摘錄自陳皓在《極客時間》的專欄文章。
一搂捧、軟件工程的本質
- 第一驮俗,提高服務的SLA
- 高可用的系統(tǒng);
- 自動化的運維允跑;
- 第二王凑、能力和資源重用或復用搪柑。
- 軟件模塊的重用;
- 軟件運行環(huán)境和資源的重用索烹。 ==》我們需要的2個重要能力:軟件抽象能力工碾、軟件標準化能力
- 第三、過程的自動化
- 軟件生產流水線
- 軟件運維自動化
二百姓、 分布式關鍵技術
- 分布式多層的系統(tǒng)架構
- 服務化的能力供應渊额。
- 自動化的運維能力
以上兩點軟件工程的本質和分布式關鍵技術都在PaaS平臺上得到完全體現(xiàn)。
三垒拢、 PaaS平臺的本質
- 一個好的PaaS平臺應該具有分布式旬迹、服務化、自動化部署求类、高可用奔垦、敏捷以及分層開放的特征,并可與IaaS實現(xiàn)良好的聯(lián)動尸疆。
PaaS與傳統(tǒng)中間件最大的差別
服務化是PaaS的本質椿猎。軟件模塊重用,服務治理寿弱,對外提供能量是PaaS的本質犯眠。
分布式是PaaS的根本特性。多租戶隔離脖捻、高可用、服務編排是PaaS的基本特性兆衅。
自動化是PaaS的靈魂地沮。自動化部署安裝運維,自動化伸縮調度是PaaS的關鍵羡亩。
PaaS平臺的總體架構
在Docker+Kubernetes層之上摩疑,我們看到了兩個相關的PaaS層。
在圖的兩個分別是與運營和運維相關的畏铆。運營這邊主要管理一些軟件資源以及外部接入和開放平臺的東西雷袋。主要是對外提供nengde相關組件;
而運維主要是對內的相關東西辞居。
一個完整的PaaS平臺會包括以下幾個部分楷怒。
PaaS調度層
PaaS能力服務層
PaaS流量調度
PaaS運營管理
PaaS運維管理
四、PaaS平臺的生產和運維
下面這個圖給出了一個大概的軟件生產瓦灶、運維和服務接入鸠删,它把之前的東西都串起來了。
從左上開始軟件構建贼陶,進入軟件資產庫(Docker Registry+一些軟件的定義)刃泡,然后走DevOps的流程巧娱,通過整體架構控制器進入生產環(huán)境,生產環(huán)境通過控制器操作Docker+
Kubernetes集群進行軟件部署和生產變更烘贴。
其中禁添,同步服務的運行狀態(tài),并通過生命周期管理來擬合狀態(tài)桨踪,如圖右側部分所示老翘。服務運行時的數(shù)據會進入到相關應用監(jiān)控,應用監(jiān)控中的一些監(jiān)控事件
會同步到生命周期管理中馒闷,再由生命周期管理器來做決定酪捡,通過控制器來調度服務運行。當應用監(jiān)控中心發(fā)現(xiàn)流量變化纳账,要進行強制性伸縮時逛薇,它通過生命周期管理來控制系統(tǒng)進行伸縮。
左下是服務接入的相關組件疏虫,主要是網關服務永罚,以及API聚合編排和流程處理。這對應于之前說過的流量調度和API Gateway的相關功能卧秘。
分布式呢袱,主要解決的問題是:服務的吞吐量,和可用性問題翅敌。