云原生架構(gòu)將非業(yè)務(wù)代碼最大化剝離,讓云基礎(chǔ)設(shè)施接管應(yīng)用非功能特性,提高業(yè)務(wù)連續(xù)性,輕量、敏捷、高度自動化。
云原生架構(gòu)原則
1.服務(wù)化原則
拆分為微服務(wù)、小服務(wù)架構(gòu),分離不同生命周期模塊,分別業(yè)務(wù)迭代,加快整體進(jìn)度和穩(wěn)定性;
服務(wù)化架構(gòu)以面向接口編程,高內(nèi)聚,高復(fù)用(公共模塊);
分布式環(huán)境下限流降級、熔斷隔倉、灰度、反壓、零信任安全都是基于服務(wù)流量的控制策略;
從架構(gòu)層面抽象化業(yè)務(wù)模塊之間關(guān)系,標(biāo)準(zhǔn)化服務(wù)流量的傳輸。
2.彈性原則
資源隨著業(yè)務(wù)量變化自動伸縮;
彈性能力縮短上線時間、降低成本,性能靈活拓展。
3.可觀測原則
主機信息關(guān)聯(lián),SLO(Service Level Objective,服務(wù)等級目標(biāo)),業(yè)務(wù)影響分析更加復(fù)雜;
可觀測性,通過日志、鏈路跟蹤、度量等手段,使得服務(wù)調(diào)用的耗時、返回值和參數(shù)清晰可見;可以到每次第三方軟件調(diào)用、SQL請求、節(jié)點拓?fù)洹⒕W(wǎng)絡(luò)響應(yīng);
不斷對業(yè)務(wù)健康和用戶體驗進(jìn)行數(shù)字化衡量和持續(xù)優(yōu)化。
4.韌性原則
軟硬件出現(xiàn)異常時,軟件表現(xiàn)出來的抵御能力;
軟件持續(xù)提供業(yè)務(wù)服務(wù)的能力,核心目標(biāo)提升軟件的平均無故障時間MTBF;
架構(gòu)設(shè)計上,韌性包含服務(wù)異步化能力、重試/限流/降級/熔斷/反壓、主從模式、集群模式、AZ內(nèi)的高可用、單元化、跨region容災(zāi)、異地多活容災(zāi)。
5.所有過程自動化原則
容器、微服務(wù)、DevOps、大量第三方組件的使用,降低分布式復(fù)雜性、提升迭代速度,同時增大了技術(shù)棧的復(fù)雜度和組件規(guī)模;
IaC(Infrastructure as Code)、GitOps、OAM(Open Application Model)、Kubernetes Operator和大量自動化交付工具在CI/CD流水線中的實踐----標(biāo)準(zhǔn)化軟件交付過程、自動化。
6.零信任原則
針對傳統(tǒng)邊界安全架構(gòu)思想的重新評估和審視;
核心思想:默認(rèn)情況下不應(yīng)該信任網(wǎng)絡(luò)內(nèi)外部任何人、設(shè)備、系統(tǒng),基于認(rèn)證和授權(quán)重構(gòu)訪問控制的信任基礎(chǔ);
IP地址、主機、地理位置、所處網(wǎng)絡(luò)均不能作為可信憑證;
安全體系架構(gòu)從“網(wǎng)絡(luò)中心化”走向“身份中心化”,以身份為中心進(jìn)行訪問控制;
零信任核心問題是身份(Identity),不同實體賦予不同身份,分配不同資源。
7.架構(gòu)持續(xù)演進(jìn)原則
好的架構(gòu)是演進(jìn)來的,很難一開始清晰定義架構(gòu)一直適用;
增量迭代、目標(biāo)選取、組織層面架構(gòu)治理、風(fēng)險控制,業(yè)務(wù)高速迭代下的架構(gòu)、業(yè)務(wù)、實現(xiàn)平衡關(guān)系。