相對于單體架構和SOA,它的主要特點是組件化、松耦合、自治、去中心化,體現在以下幾個方面:
一組小的服務
服務粒度要小,而每個服務是針對一個單一職責的業務能力的封裝,專注做好一件事情。
獨立部署運行和擴展
每個服務能夠獨立被部署并運行在一個進程內。這種運行和部署方式能夠賦予系統靈活的代碼組織方式和發布節奏,使得快速交付和應對變化成為可能。
獨立開發和演化
技術選型靈活,不受遺留系統技術約束。合適的業務問題選擇合適的技術可以獨立演化。服務與服務之間采取與語言無關的API進行集成。相對單體架構,微服務架構是更面向業務創新的一種架構模式。
獨立團隊和自治
團隊對服務的整個生命周期負責,工作在獨立的上下文中,自己決策自己治理,而不需要統一的指揮中心。團隊和團隊之間通過松散的社區部落進行銜接。
微服務優點
每個微服務都很小,這樣能聚焦一個指定的業務功能或業務需求。
微服務能夠被小團隊單獨開發,這個小團隊是2到5人的開發人員組成。
微服務是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的。
微服務能使用不同的語言開發。
微服務允許容易且靈活的方式集成自動部署,通過持續集成工具,如Jenkins, bamboo 。
一個團隊的新成員能夠更快投入生產。
微服務易于被一個開發人員理解,修改和維護,這樣小團隊能夠更關注自己的工作成果。無需通過合作才能體現價值。
微服務允許你利用融合最新技術。
微服務只是業務邏輯的代碼,不會和HTML,CSS 或其他界面組件混合。
微服務能夠即時被要求擴展。
微服務能部署中低端配置的服務器上。
易于和第三方集成。
每個微服務都有自己的存儲能力,可以有自己的數據庫。也可以有統一數據庫。
微服務架構的缺點
微服務架構可能帶來過多的操作。
需要DevOps技巧 (http://en.wikipedia.org/wiki/DevOps).
可能雙倍的努力。
分布式系統可能復雜難以管理。
因為分布部署跟蹤問題難。
當服務數量增加,管理復雜性增加。
想了解更多IT資訊,請訪問中培偉業官網:中培偉業