天天看點

微服務架構與實踐2_微服務架構

微服務遵循前提:

業務獨立性:推薦書籍 Eric Evans《領域驅動模型》

團隊自主性:

特點

單一職責:推薦書籍 Robert C.Martin《靈活軟體開發:原則、模式和實作》

輕量級通信:語言無關、平台無關的互動方式

微服務架構與實踐2_微服務架構

獨立性:傳遞過程中,開發(功能)、測試、部署的獨立性;服務與服務的獨立、隔離;

微服務架構與實踐2_微服務架構
微服務架構與實踐2_微服務架構

 程序隔離

微服務架構與實踐2_微服務架構
微服務架構與實踐2_微服務架構

 背景

微服務架構與實踐2_微服務架構

網際網路時代的産品特點:

需求變化快

使用者群體龐大

價值觀、方法論=》可遵循、可參考、可實施的傳遞體系

精益創業Lean Startup=》最小可實行産品Minimum Viable Product

靈活方法

持續傳遞

雲、虛拟化、基礎設施自動化Infrastructure as Code:

DevOps文化的推行

容器虛拟化技術

Docker的優勢 》一個節點運作成百上千的Docker容器 》解決微服務的環境搭建、部署、運維成本高的問題

更快速的傳遞、部署:鏡像

更輕松的遷移、擴充:可以在任意平台遷移(實體機、虛拟機、公有雲、私有雲……)

更簡單的管理:鏡像修改以增量方式分發、更新

SOA面向服務架構 vs 微服務

微服務架構與實踐2_微服務架構
微服務架構與實踐2_微服務架構
微服務架構與實踐2_微服務架構
微服務架構與實踐2_微服務架構

 微服務的本質:

服務作為元件Component:元件可以被獨立部署

定義了清晰的、語言無關、平台無關的接口

分布式調用比程序調用更消耗時間

嚴重依賴網絡的可靠性、穩定性

微服務架構與實踐2_微服務架構
微服務架構與實踐2_微服務架構

圍繞業務組織團隊

微服務架構與實踐2_微服務架構

關注産品而非項目

微服務架構與實踐2_微服務架構
微服務架構與實踐2_微服務架構

技術多樣性

微服務架構與實踐2_微服務架構

業務資料獨立

業務資料接口繼承,而非以資料庫的方式同其他服務繼承

随業務發張,選擇更合适的工具管理、遷移業務資料

基礎設施自動化

部署、運維的成本随服務的增多呈指數級增長

雲技術、持續繼承、持續傳遞

演進式架構

業務驅動架構,架構服務于業務

微服務的優勢

獨立性

單一職責

實施需要考慮的因素:

分布式系統的複雜度

性能:網絡延遲、帶寬;多服務互相協作時,響應時間、性能

可靠性:網絡、帶寬、節點自身的可靠性=》元件間遠端調用;單點故障

異步:異步通信的定位問題、調試問題難度更大

資料一緻性:跨多個節點來保證資料的瞬時一緻性||資料的最終一緻性

工具:開發、調試工具沒有足夠支援

運維成本:每個服務獨立配置、部署、監控、日志收集=》成本呈指數級增長

配置

部署

監控、警告

日志收集

部署自動化:建構自動化部署流水線

DevOps與組織架構

服務間依賴測試

服務間依賴管理