微服務架構(gòu)作為一種相對單體架構(gòu)更具有優(yōu)勢的企業(yè)架構(gòu),其發(fā)展目前受到行業(yè)和社會的廣泛關(guān)注。那么微服務架構(gòu)相對單體架構(gòu)到底具有哪些區(qū)別和優(yōu)勢呢?其重要價值體現(xiàn)在什么哪里呢?中培偉業(yè)即將在2017年隆重推出的《微服務架構(gòu)設計與最佳實踐》培訓專家胡老師在這里進行了介紹。
胡老師指出,細粒度和獨立作為微服務架構(gòu)的兩大特征,簡單來講微服務就是細粒度的獨立的服務。那么這兩大特征到底會為微服務架構(gòu)帶來哪些優(yōu)勢呢?
胡老師認為,細粒度就是每一個服務專注做好一件事情,每個服務完成一個單一任務。在功能不變的情況下,應用被分解為多個可管理的服務,很好的解決了復雜性問題。而獨立則能為微服務架構(gòu)帶來獨立開發(fā),獨立測試,獨立部署,獨立更新等諸多優(yōu)點開發(fā)者不再需要協(xié)調(diào)其它服務部署對本服務的影響。這種改變可以加快部署速度,快速的部署變化。因為是分布式的,微服務架構(gòu)模式使得持續(xù)化部署成為可能。
從架構(gòu)的角度來講,微服務架構(gòu)是相當于過去的單體架構(gòu)來看的。過去是單體架構(gòu),雖然做到了SOA面向服務了,但是這些服務都只是分了模塊,沒有成為獨立的服務,他們都是訪問統(tǒng)一的數(shù)據(jù)庫。在微服務架構(gòu)里面這些服務都是獨立部署的,服務是獨立開發(fā)、測試、變更。這些服務都有自己的數(shù)據(jù),這是微服務架構(gòu)。為了便于大家更好地了解微服務架構(gòu)與顯貴與單體價格的優(yōu)勢,胡老師在這里就單體架構(gòu)與微服務架構(gòu)進行了對比。
單體架構(gòu)
在單體系統(tǒng)架構(gòu)下做一個變更修改,不得不把整個系統(tǒng)重新部署一遍,這個時間周期會很長,而且牽一發(fā)動全身。
微服務架構(gòu)
而微服務架構(gòu),每個服務都可以獨立的變更和部署。從應用架構(gòu)的發(fā)展來看,最早的CGI,到MVC,到SOA,再到MSA。MSA跟SOA相比新的特征是什么呢?一是獨立部署、快速迭代、持續(xù)交付。過去的SOA里面每一個模塊不是獨立部署的。
那么獨立部署的重要性體現(xiàn)在什么地方呢? 胡老師在此介紹了其三大價值:
第一,獨立部署更容易實現(xiàn)快速迭代。持續(xù)交付,永遠的測試版,這個系統(tǒng)沒有完成時,永遠在改,因為服務只要有新的需求時就快速變更,哪些服務不用了,讓它休眠就完了,這樣的話就可以做到持續(xù)的交付。
第二,獨立部署能夠?qū)崿F(xiàn)只針對需要的部分進行擴展。比如說某一個功能用戶大量在使用時,就把更多資源配給它。過去是整塊的結(jié)構(gòu),只能基于整塊進行擴展。現(xiàn)在當并發(fā)量很大時,只需要根據(jù)它的訪問系統(tǒng)自動的把資源配給它。
第三,獨立部署擁有自己的數(shù)據(jù)。每個服務都擁有自己的數(shù)據(jù),給數(shù)據(jù)治理也帶來了新的要求,推動實現(xiàn)去中心化的服務治理。
由以上對比可知,單體架構(gòu)更適合輕量級的簡單應用。如果你用它來開發(fā)復雜應用,那真的會很糟糕。微服務架構(gòu)模式則可以用來構(gòu)建復雜應用。未來業(yè)務的敏捷一定要依賴于IT的敏捷,我們一直追求敏捷的IT:一個彈性可擴展的云計算與大數(shù)據(jù)基礎平臺(IaaS + PaaS),加上基于微服務架構(gòu)的原生云應用(SaaS)開發(fā),這已成為企業(yè)級IT的必然選擇!這也是中培偉業(yè)推出《微服務架構(gòu)設計與最佳實踐》培訓課程的出發(fā)點。