上篇文章介紹了云幫的設(shè)計思想,了解了產(chǎn)品設(shè)計思想之后咱們本篇文章開始介紹云幫的技術(shù)架構(gòu)。
云幫是按照面向服務(wù)的架構(gòu)來設(shè)計的。目前大多數(shù)集群組件都是通過容器鏡像的形式發(fā)布和運(yùn)行的。后續(xù)我們會將所有的組件都容器化,通過Kubernetes集群保障組件的高可用。
Kubernetes負(fù)責(zé)容器的編排和調(diào)度,它的所有行為都是由應(yīng)用引擎發(fā)起的。應(yīng)用引擎將容器相關(guān)的操作都進(jìn)行了封裝,云幫通過抽象出了一個應(yīng)用的概念來屏蔽底層所有與技術(shù)(容器、調(diào)度、網(wǎng)絡(luò)……)相關(guān)的概念。用戶通過對應(yīng)用進(jìn)行屬性和行為的設(shè)置來操作應(yīng)用,通過應(yīng)用與應(yīng)用直接的依賴關(guān)系來進(jìn)行微服務(wù)架構(gòu)的設(shè)計。
云幫所有的對外服務(wù)都配置在負(fù)載均衡上,平臺使用者、最終用戶、開發(fā)者都是通過負(fù)載均衡轉(zhuǎn)發(fā)到對應(yīng)的應(yīng)用與服務(wù):
開發(fā)者除了可以通過Web控制臺管理應(yīng)用,還可以通過平臺API來完成所有Web控制臺的操作。詳情參見:云幫API手冊
用戶可以訪問到的應(yīng)用都是配置在路由層服務(wù)中,它主要由負(fù)載均衡組成,通過路由規(guī)則分離不同的應(yīng)用與訪問域名??刂茖拥姆?wù)根據(jù)容器的服務(wù)狀態(tài)維護(hù)負(fù)載均衡中的節(jié)點。
控制層服務(wù)是平臺最核心的功能模塊,其內(nèi)部包含了多個子模塊:
計算層負(fù)責(zé)容器的運(yùn)行、監(jiān)控以及收集匯總?cè)萜髦械娜罩尽H萜鞯膯优c關(guān)閉由控制層發(fā)起,容器運(yùn)行后會將狀態(tài)注冊到路由層。
后端服務(wù)云幫集群的核心服務(wù),包括Kubernetes、etcd、數(shù)據(jù)存儲、日志處理、監(jiān)控等。
負(fù)載均衡
負(fù)載均衡組件通常部署在計算節(jié)點上,推薦至少使用3個計算節(jié)點作為負(fù)載均衡的最小集群規(guī)模。
計算節(jié)點
計算節(jié)點是實際跑容器的主機(jī),每一個團(tuán)隊賬號(租戶)的容器可以跨主機(jī)運(yùn)行,團(tuán)隊賬號中可以有多個應(yīng)用,每個應(yīng)用由1~n個容器組成,應(yīng)用的多個容器運(yùn)行在不同的主機(jī)中。
管理節(jié)點
云幫集群的管理服務(wù)都運(yùn)行在管理節(jié)點的機(jī)器中,包括自動構(gòu)建服務(wù)、容器調(diào)度、SDN網(wǎng)絡(luò)管理、應(yīng)用引擎、日志匯總與實時處理等等……
分布式存儲
存放應(yīng)用持久化數(shù)據(jù)以及自動化構(gòu)建所需要的公共文件。
下期對云幫的核心組件進(jìn)行詳細(xì)的介紹。