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