淺談雲原生架構的 7 個原則
作為一種架構模式,雲原生架構通過若干原則來對應用架構進行核心控制。這些原則可以幫助技術主管和架構師在進行技術選型時更加高效、準確,下面將展開具體介紹。 服務化原則 在軟件開發過程中,當代碼數量與開發團隊規模都擴張到一定程度後,就需要重構應用,通過模塊化與組件化的手段分離關注點,降低應用的複雜度,提升軟件的開發效率,降低維護成本。 如圖 1,隨著業務的不斷髮展,單體應用能夠承載的容量將逐漸到達上限,即使通過應用改造來突破垂直擴展(Scale Up)的瓶頸,並將其轉化為支撐水平擴展(Scale Out)的能力,在全局併發訪問的情況下,也依然會面臨數據計算複雜度和存儲容量的問題。因此,需要將單體應用進一步拆分,按業務邊界重新劃分成分佈式應用,使應用與應用之間不再直接共享數據,而是通過約定好的契約進行通信,以提高擴展性。 圖 1 應用服務化擴展 服務化設計原則是指通過服務化架構拆分不同生命週期的業務單元,實現業務單元的獨立迭代,從而加快整體的迭代速度,保證迭代的穩定性。同時,服務化架構採用的是面向接口編程方式,增加了軟件的複用程度,增強了水平擴展的能力。服務化設計原則還強調在架構層面抽象化業務模塊之間的關係,從而幫助業務模塊實現基於服務流量(而非網絡流量)的策略控制和治理,而無須關注這些服務是基於何種編程語言開發的。 有關服務化設計原則的實踐在業界已有很多成功案例。其中影響最廣、最為業界稱道的是 Netflix 在生產系統上所進行的大規模微服務化實踐。通過這次實踐,Netflix 在全球不僅承接了多達 1.67 億訂閱用戶以及全球互聯網帶寬容量 15% 以上的流量,而且在開源領域貢獻了 […]