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