博客 / 詳情

返回

雲原生架構設計理論與實踐(14)

1.雲原生背景

  1. 業務快速發展與 開發、運維、運營之間落後的生產關係與生產力的矛盾
  2. 企業內部各佔山頭與企業總體戰略規劃的矛盾
  3. 企業內部改革,降本增效的需求
  4. 企業實現數字孿生,數字資產的必然需求
  5. 企業外部環境,如人工智能發展、安全合規等大環境的要求

2.雲原生架構的設計原則

  1. 服務化原則(拆分為微服務、小服務,非功能特性委託)
  2. 彈性原則(可伸可縮)
  3. 可觀測原則(基於sla,slo,在log,trace,metric三個維度)
  4. 可持續演進擴展(增量迭代,重構,遷入遷出等,實現業務&架構的平衡)
  5. 零信任(身份鑑權、資源隔離)
  6. 韌性(主要目標是MTBF)
  7. 高度自動化(基於ci/cd,gitops,apm,k8s)

3. 雲原生架構模式

  1. 服務化架構模式(服務接口契約,如IDL)
  2. serverless(適用於無狀態、無大量io阻塞,快進快出,事件驅動的業務,如阿里雲的函數計算FC)

    • 技術關注點

      • 資源彈性調度
      • 負載均衡和流控
      • 安全性
    • 技術特點

      • 全託管計算服務
      • 通用
      • 自動彈性伸縮
      • 按量計費
    • 技術難點

      • 函數編程事件驅動比較反人性
      • 顆粒度較低,導致冷啓動時間長,導致響應延遲
      • 函數編程生態不夠成熟
  3. service mesh(託管非功能性代碼,增加代理層)

    • 技術特點

      • 數據平面
      • 控制平面
    • 主要技術

      • istio
      • linkerd
      • consul
      • conduit
  4. 存儲計算分離
  5. 分佈式事務(XA、TCC、SAGA、SEATA)
  6. 可觀測架構(對服務目標slo進行度量,包括log,trace,metric三個方面)
  7. 事件驅動架構(EDA)

    • 適用場景如CQRS、增強服務韌性、數據變化通知、事件流處理,openapi等

4. 雲原生架構反模式

  1. 龐大的單體(粒度太大,耦合太高,責任不清)
  2. 硬拆單體(粒度太小,架構與技術組織能力不匹配)
  3. 技術拉胯(自動化能力不足,如打包、部署、治理、觀測、放火技術等不足)

5. 雲原生架構相關技術

  1. 容器技術

    • 隔離
    • 可移植
    • 輕量
    • 打包規範化
  2. 容器編排

    • 資源調度
    • 服務發現
    • 負載均衡
    • 應用部署
    • 彈性伸縮
    • 自動修復

6. 雲原生微服務設計約束

  1. 微服務個體約束
  2. 微服務與微服務之間的橫向關係
  3. 微服務與數據層之間縱向關係
  4. 全局視角微服務的分佈式約束

7.業內主要微服務技術

  1. 騰訊-tars
  2. 阿里-spring cloud alibaba(包括註冊中心,全局鎖,分佈式事務等)、dubbo(rpc框架)
  3. 螞蟻金服 sofa stack
  4. Apache-spring cloud
  5. eclipse micro profile
  6. go生態(...)

8.雲原生項目改造【背景、挑戰、解決方案、收益】

  • 藝龍旅行
  • 申通
  • 廣汽豐田
  • 特步
user avatar oneziyu 頭像 heyiming 頭像 liugongzi 頭像 h57 頭像 lofanmi 頭像
5 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.