微服務(wù)與DevOps代表著兩波重要的技術(shù)發(fā)展趨勢(shì),并不斷給企業(yè)帶來實(shí)際價(jià)值。這兩種實(shí)踐有著共同的核心——為企業(yè)提供更好的敏捷性與執(zhí)行效率。也正因?yàn)槿绱耍珼evOps成為實(shí)現(xiàn)微服務(wù)的關(guān)鍵因素。
微服務(wù)與DevOps息息相關(guān)
DevOps致力于持續(xù)監(jiān)控、測(cè)試并部署軟件,微服務(wù)架構(gòu)的本質(zhì)則在于模塊化屬性,即通過小型單一服務(wù)執(zhí)行單一功能。從這個(gè)角度來看,模塊化軟件很容易適應(yīng)DevOps結(jié)構(gòu),允許開發(fā)者輕松實(shí)現(xiàn)增量式變更。單一微服務(wù)天然更易于升級(jí)、構(gòu)建、測(cè)試、部署與監(jiān)控,這正是DevOps希望達(dá)成的關(guān)鍵目標(biāo)。因此,只要項(xiàng)目采用基于微服務(wù)的結(jié)構(gòu),DevOps就能顯著加快交付速度并提升交付質(zhì)量。
此外,DevOps實(shí)踐還要求將大問題拆分成多個(gè)較小的部分,再由團(tuán)隊(duì)逐一加以解決。從這個(gè)角度看,微服務(wù)更加與DevOps息息相關(guān),二者同樣要求小型團(tuán)隊(duì)對(duì)企業(yè)服務(wù)做出功能性變更,且微服務(wù)高度強(qiáng)調(diào)在低復(fù)雜度環(huán)境下由增強(qiáng)型小規(guī)模團(tuán)隊(duì)完成實(shí)施與協(xié)作。在低復(fù)雜度環(huán)境的支持下,我們得以建立持續(xù)交付管道并保持穩(wěn)定的部署流程。同樣的,容器化微服務(wù)同樣可以加快部署與內(nèi)置功能實(shí)現(xiàn)速度,確保新服務(wù)能夠立即在任意系統(tǒng)上運(yùn)行。
自動(dòng)化運(yùn)營(yíng)不僅增強(qiáng)了微服務(wù)方法,同時(shí)也建立起適應(yīng)性更好、更易于擴(kuò)展、能夠快速執(zhí)行部署的良好環(huán)境。將DevOps與微服務(wù)融合至開發(fā)與測(cè)試流程中,能夠切實(shí)增加團(tuán)隊(duì)的產(chǎn)出與服務(wù)質(zhì)量。
敏捷開發(fā)中的DevOps與微服務(wù)
此外,DevOps與微服務(wù)方法還有著相似的組織結(jié)構(gòu)與開發(fā)文化,而且也都對(duì)云基礎(chǔ)設(shè)施及自動(dòng)化體系有著天然親和性。二者在開發(fā)、速度與可擴(kuò)展性層面提出了相似的要求,而這一切都高度契合敏捷開發(fā)的基本思路。
敏捷方法還順理成章地強(qiáng)調(diào)對(duì)微服務(wù)中兩大核心概念的支持:持續(xù)集成(CI)與持續(xù)交付(CD)。持續(xù)交付提出以質(zhì)量為中心的理念,要求加快對(duì)生產(chǎn)成果的變更,由此加快部署流程。
基于微服務(wù)的架構(gòu)總是會(huì)帶來這樣或那樣的改變,這些改變也得到現(xiàn)代應(yīng)用程序開發(fā)者們的欣然接受。基于微服務(wù)的架構(gòu)讓生產(chǎn)效率得到驚人的提升,同時(shí)也給那些對(duì)靈活性及可擴(kuò)展性要求極高的應(yīng)用程序提供了更強(qiáng)大的解決方案。
微服務(wù)給DevOps帶來眾多收益,例如提升了敏捷性,縮短構(gòu)建、測(cè)試與部署周期;增強(qiáng)了可靠性與可用性,縮短新版本的發(fā)布周期;改進(jìn)了可擴(kuò)展性與可修改性,靈活支持更多新型框架、數(shù)據(jù)源及其他資源;優(yōu)化了管理性,并降低團(tuán)隊(duì)規(guī)模、提升團(tuán)隊(duì)獨(dú)立性。
總結(jié)
微服務(wù)能夠支持開發(fā)與運(yùn)營(yíng)層面的各類通用工具集,以此為基礎(chǔ)讓DevOps更輕松地保持運(yùn)營(yíng)、解決問題,將DevOps的生產(chǎn)力推向新的高峰。正所謂DevOps微服務(wù)一相逢,便勝過單體無(wú)數(shù)。