背景
從過去幾個月, 我的工作精力主要集中在企業(yè)級發(fā)布平臺的建設(shè)上. 同時也聚焦在容器云 PaaS 層建設(shè)。
在當(dāng)下云原生時代, 發(fā)布平臺通常起到一個聯(lián)結(jié) PaaS 和 IaaS 的作用. 通過在 PaaS 層抽象,將 IaaS 層基建細(xì)節(jié)屏蔽,同時通過 api 和各個服務(wù)平臺(CI/CD 服務(wù), 監(jiān)控告警服務(wù), 網(wǎng)關(guān)服務(wù), 工單系統(tǒng), 服務(wù)治理系統(tǒng)等) 交互, 在云平臺提供了一個統(tǒng)一的快捷入口,從邏輯上進(jìn)行匯聚,便于開發(fā)者進(jìn)行一站式應(yīng)用發(fā)布、服務(wù)生命周期管理、服務(wù)治理、服務(wù)運維等操作.
這也是發(fā)布平臺的職能,在一個完整的 PaaS 云平臺體系中,其能力應(yīng)是集成的,而非離散的--系統(tǒng)需要提供很好的集成能力,讓系統(tǒng)得到收斂,避免系統(tǒng)被割裂成一個一個的執(zhí)行單元,那么用戶常常會為此痛苦不堪;同時平臺也是場景化的,而非基于功能需求的--場景能夠串聯(lián)工具的能力,跨越短平快的需求,讓平臺的各個工具能夠串聯(lián)的運轉(zhuǎn),其數(shù)據(jù)能力能在多個子系統(tǒng)間流動起來。
那么什么是 PaaS 平臺?

PaaS 是在 IaaS 層之上的基礎(chǔ)平臺,一個典型的特征是擁有 App 概念,一切圍繞 App 開發(fā)的生命周期展開,也會對 App 的架構(gòu)做一定的約束. 由于直接對接業(yè)務(wù)側(cè)應(yīng)用甚至應(yīng)用架構(gòu), 且 PaaS 平臺通常是業(yè)務(wù)方最直接所見的基礎(chǔ)平臺. 對 PaaS 平臺的建設(shè)要求就有所提高,通常需要在建設(shè)通用性能力的基礎(chǔ)上,提供一定的貼切公司使用場景的定制化能力。
故通常云平臺也在承接著各個業(yè)務(wù)線開發(fā)者提來的各式各樣的需求. 起到對業(yè)務(wù)部門垂直支撐的作用.
一個常見的云平臺生態(tài)支撐場景如下圖所示

云原生時代發(fā)布平臺思考
隨著近年來云原生概念和云原生架構(gòu)設(shè)計的流行,越來越多的開發(fā)團隊開始使用 DevOps 模式進(jìn)行系統(tǒng)開發(fā),并把大型系統(tǒng)拆解成一個個微小的服務(wù)模塊,以便系統(tǒng)能更好地進(jìn)行容器化部署。
基于 DevOps、微服務(wù)、容器化等云原生的能力,可以幫助業(yè)務(wù)團隊快速、持續(xù)、可靠和規(guī)模化地交付系統(tǒng),同時也使得系統(tǒng)的復(fù)雜度成倍提升,由此帶來了前所未有的運維挑戰(zhàn),比如:
- 模塊之間的調(diào)用從進(jìn)程內(nèi)的函數(shù)調(diào)用變?yōu)槿萜鬟M(jìn)程間的調(diào)用,而網(wǎng)絡(luò)總是不可靠的。
- 微服務(wù)拆分多樣, 難以從全局視角觀測各個微服務(wù)健康信息。
- 服務(wù)的調(diào)用路徑變長,使得流量的走向變得不可控,故障排查的難度增大。
- 引入 Kubernetes、Docker、Service Mesh 等云原生系統(tǒng),基礎(chǔ)設(shè)施層對業(yè)務(wù)開發(fā)團隊來說變得更加黑盒。
無論是微服務(wù)拆分, 容器化, 云原生化等, 都對服務(wù)的發(fā)布過程帶來巨大挑戰(zhàn). 如何做到無感地支持容器/k8s發(fā)布, 同時提供云原生時代的可觀察性可以說的云原生時代發(fā)布平臺的主要目標(biāo)。
而從前司的平臺建設(shè)經(jīng)驗來看, 我們在平臺建設(shè)初中期也遇到了以下問題

如發(fā)布過程中的金絲雀/預(yù)發(fā)布環(huán)境/持續(xù)測試支持, 屬于對于服務(wù)自身發(fā)布過程的穩(wěn)定性建設(shè), 幫助業(yè)務(wù)更搞笑穩(wěn)定的進(jìn)行版本發(fā)布.
發(fā)布后的應(yīng)用觀測中也涉及到日志查詢, 容器 debug 能力, 實時診斷能力等支持.
基于以上遇到的問題,大致抽象了以下幾個長線來探討發(fā)布平臺建設(shè)
- 服務(wù)發(fā)布穩(wěn)定性
- 發(fā)布系統(tǒng)可擴展性
- 服務(wù)可觀察性
- 發(fā)布系統(tǒng)易用性
根于上述4條長線, 列出了我個人理解的云原生時代的發(fā)布平臺建設(shè)全景圖
發(fā)布平臺全景圖
