GIAC 大會丨螞蟻金服于雨 :管中窺豹,談 2021 云原生技術(shù)發(fā)展及未來趨勢

- 作者簡介 -
于雨(github @AlexStocks),dubbogo 社區(qū)負責(zé)人,一個有十一年服務(wù)端基礎(chǔ)架構(gòu)和中間件研發(fā)一線工作經(jīng)驗的程序員。
陸續(xù)參與和改進過 Redis/Pika/Pika-Port/etcd/Muduo/Dubbo/dubbo-go/Sentinel-go 等知名項目,目前在螞蟻集團可信原生技術(shù)部大規(guī)模 k8s 集群調(diào)度團隊從事容器編排工作,參與維護全球規(guī)模最大的 Kubernetes 生產(chǎn)集群之一,致力于打造規(guī)?;?、金融級、可信的云原生基礎(chǔ)設(shè)施。

- 前言 -
本人有幸擔(dān)任了 2021 年 GIAC 會議云原生專場的出品人兼講師,組織了前后四個場子的演講,在這個過程中個人同時作為聽眾從這些同行的演講中學(xué)到了很多非常有用的知識。本文算是對 2021 GIAC 云原生專場的側(cè)記,管中窺豹,以觀 2021 年云原生技術(shù)發(fā)展現(xiàn)狀及未來一段時間內(nèi)的趨勢。
亞馬遜的資深技術(shù)專家黃帥的《一個云原生服務(wù)的爆炸半徑治理》 快手基礎(chǔ)架構(gòu)中心服務(wù)網(wǎng)格負責(zé)人姜濤的《快手中間件 Mesh 化實踐》 Tetrate 可觀測性工程師柯振旭的《使用 SkyWalking 監(jiān)控 Kubernetes 事件》 本人以 Dubbogo 社區(qū)負責(zé)人出品的《Dubbogo 3.0:Dubbo 在云原生時代的基石》

- 云原生服務(wù)的爆炸半徑 -

服務(wù)粒度適中 微服務(wù)的服務(wù)粒度并不是拆分的越細越好。如果服務(wù)粒度過細,會導(dǎo)致服務(wù)數(shù)量過多,其第一個后果就是導(dǎo)致一個組織內(nèi)幾乎無人能搞清楚服務(wù)整體邏輯的來龍去脈,增加維護人員的負擔(dān):大家只敢小修小補無人敢做出大幅度的優(yōu)化改進。 服務(wù)粒度過細的第二個后果是造成整體微服務(wù)單元體指數(shù)級增加,造成容器編排部署成本上升。適中的服務(wù)粒度要兼顧架構(gòu)體系的進化與部署成本的降低。
充分隔離 進行服務(wù)編排時,獲取數(shù)據(jù)中心的電源和網(wǎng)絡(luò)拓撲信息,保證強相關(guān)系統(tǒng)之間部署做到“不遠”且“不近”。 “不近”是指同一個服務(wù)的副本不在使用同一個電源的同一個機柜部署,也不在使用了同一個網(wǎng)絡(luò)平面的 Azone 內(nèi)部署?!安贿h”是指部署距離不能太遠,例如多副本可以同城多 IDC 部署。使用這兩個原則兼顧性能與系統(tǒng)可靠性。
隨機分區(qū) 所謂的隨機分區(qū)這塊,其實質(zhì)就是在混合服務(wù)請求,保證某個服務(wù)的請求可以走多通道【隊列】,保證在某些通道掛掉的情況下不影響某個服務(wù)的請求處理,應(yīng)用隨機分區(qū)技術(shù),將用戶打散在多個 Cell 中,大幅度降低爆炸半徑。 與 K8s APF 公平限流算法中的洗牌分片(Shuffle Sharding)頗為相似。
混沌工程 通過持續(xù)內(nèi)化的混沌工程實踐,提前踩雷,盡量減少“故障點”,提升系統(tǒng)可靠性。

- 使用 SkyWalking 監(jiān)控 Kubernetes 事件 -




- 快手中間件 Mesh 化實踐 -


統(tǒng)一運維,提高可觀測性與穩(wěn)定性,進行故障注入和流量錄制等; 對 Envoy 等做了二次開發(fā),只傳輸變更的數(shù)據(jù)、按需獲取,解決單實例服務(wù)數(shù)過多的問題; 對協(xié)議棧和序列化協(xié)議做了大量的優(yōu)化; 實施了面向失敗設(shè)計,Service Mesh 可以 fallback 為直連模式。
成本問題:復(fù)雜環(huán)境下的統(tǒng)一部署與運維。 復(fù)雜度問題:規(guī)模大、性能要求高、策略復(fù)雜。 落地推廣:對業(yè)務(wù)來說不是強需求。
首先務(wù)必保證系統(tǒng)穩(wěn)定性,不急于鋪開業(yè)務(wù)量; 搭車公司重大項目,積極參與業(yè)務(wù)架構(gòu)升級; 基于 WASM 擴展性,與業(yè)務(wù)共建; 選取典型落地場景,樹立標(biāo)桿項目。


- Dubbogo 3.0:Dubbo 在云原生時代的基石 -

機器規(guī)格:大規(guī)模服務(wù)下機器規(guī)格難免異構(gòu)【如受超賣影響】,即使同規(guī)格機器老化速度也不一樣; 服務(wù)拓撲復(fù)雜:分布式服務(wù)拓撲結(jié)構(gòu)在不斷進化; 服務(wù)流量不均衡:有洪峰有波谷; 依賴的上游服務(wù)能力不確定性:緩存/db 能力實時變化。

limit 一段時間內(nèi)的 qps 上限。 rt_noload 一段時間窗口內(nèi)的 RT 最小值。 rt 一段時間內(nèi)的平均 RT,或者可直接取值 P50 RT。

- 場外 -

評論
圖片
表情
