摘要:微服務架構最主要的兩個特征:細粒度和獨立,簡單來講微服務就是細粒度的獨立的服務。這有什么好處呢?
微服務架構最主要的兩個特征:細粒度和獨立,簡單來講微服務就是細粒度的獨立的服務。這有什么好處呢?
第一,細粒度就是每一個服務專注做好一件事情,每個服務完成一個單一任務。在功能不變的情況下,應用被分解為多個可管理的服務,很好的解決了復雜性問題。
第二,獨立開發,獨立測試,獨立部署,獨立更新。開發者不再需要協調其它服務部署對本服務的影響。這種改變可以加快部署速度,快速的部署變化。因為是分布式的,微服務架構模式使得持續化部署成為可能。
從架構的角度來講,微服務架構是相當于過去的單體架構來看的。過去是單體架構,雖然做到了SOA面向服務了,但是這些服務都只是分了模塊,沒有成為獨立的服務,他們都是訪問統一的數據庫。在微服務架構里面這些服務都是獨立部署的,服務是獨立開發、測試、變更。這些服務都有自己的數據,這是微服務架構。
對比單體架構和微服務架構的區別:
單體架構
在單體系統架構下做一個變更修改,不得不把整個系統重新部署一遍,這個時間周期會很長,而且牽一發動全身。
微服務架構
而微服務架構,每個服務都可以獨立的變更和部署。從應用架構的發展來看,最早的CGI,到MVC,到SOA,再到MSA。MSA跟SOA相比新的特征是什么呢?一是獨立部署、快速迭代、持續交付。過去的SOA里面每一個模塊不是獨立部署的。
為什么一直強調獨立部署很重要呢?
首先,因為獨立部署可以做到快速迭代。持續交付,永遠的測試版,這個系統沒有完成時,永遠在改,因為服務只要有新的需求時就快速變更,哪些服務不用了,讓它休眠就完了,這樣的話就可以做到持續的交付。
其次,獨立部署可以做到只針對需要的部分進行擴展。比如說某一個功能用戶大量在使用時,就把更多資源配給它。過去是整塊的結構,只能基于整塊進行擴展。現在當并發量很大時,只需要根據它的訪問系統自動的把資源配給它。
再次,獨立部署擁有自己的數據。每個服務都擁有自己的數據,給數據治理也帶來了新的要求,推動實現去中心化的服務治理。
所以,單體架構更適合輕量級的簡單應用。如果你用它來開發復雜應用,那真的會很糟糕。微服務架構模式則可以用來構建復雜應用。未來業務的敏捷一定要依賴于IT的敏捷,我們一直追求敏捷的IT:一個彈性可擴展的云計算與大數據基礎平臺(IaaS + PaaS),加上基于微服務架構的原生云應用(SaaS)開發,這已成為企業級IT的必然選擇!
北達軟信息化咨詢與培訓中心(國家信息資源管理北京研究基地)是一家專注于EA研究、咨詢和培訓的服務機構。成立于2006年,注冊在北京大學科技園,通過了ISO9001質量體系認證。北達軟最早將TOGAF、FEA、ESA和Archimate等企業架構認證培訓引入中國。通過將EA與云計算、大數據、物聯網和移動互聯網等新IT技術的結合,北達軟已形成一套完善的新IT架構或互聯網架構設計與轉型方法論。