Scrum是目前最為流行的敏捷(Agile)軟件開發(fā)方法,它擁有極簡的和可操作的以敏捷方式落地的項目管理組織框架。目前Scrum方法的普及度占敏捷市場60%以上的份額,這就足以說明其在市場上的認(rèn)可程度。而開發(fā)運維一體化(DevOps)的理念是由世界知名IT咨詢顧問Patrick DeBois先生于2009年首次提出。DevOps在多年的發(fā)展歷程中已經(jīng)逐步把自己定位為一個用于描述基于現(xiàn)有精益和敏捷(Agile)最佳實踐發(fā)展為支持自動化和持續(xù)交付的方法,并鼓勵協(xié)作和學(xué)習(xí)文化,以幫助IT實現(xiàn)比以往更好、更快和更便宜的業(yè)務(wù)價值。
故而DevOps是一種文化的運動。業(yè)界著名專家Damon Edwards和Jez Humble在其論述的DevOps相關(guān)著作中也提出DevOps所秉承的文化和價值觀。DevOps的文化可以簡單用CALMS來表述。 CALMS由文化(Culture)、自動化(Automation)、精益 (Lean) 、測量(Measurement or Metrics)和分享(Sharing)幾個單詞首字母所組成。
我們可以體會到無論是時下的敏捷實踐還是DevOps的持續(xù)交付,它們強調(diào)的不僅僅是具體做法的規(guī)范,更加強調(diào)精益思想的價值觀文化的塑造。敏捷開發(fā)方法一般通過在每次沖刺或迭代快速開發(fā)出符合市場需要的最小可運行產(chǎn)品(MVP)來體現(xiàn)這種價值交付。我們都知道只有把軟件真正部署到生產(chǎn)環(huán)境才可以切實體現(xiàn)這種產(chǎn)品的使用價值,目前流行的微服務(wù)和容器技術(shù)則是實現(xiàn)軟件快速部署落地的不二選擇。實現(xiàn)DevOps落地的最佳方式就應(yīng)該是基于微服務(wù)架構(gòu)的持續(xù)交付,并通過以容器為單位的藍(lán)綠部署和灰度發(fā)布等方式防止發(fā)布所造成應(yīng)用的不可用(即反脆弱)。
目前很多銀行或企事業(yè)單位都在或多或少的考慮把自己現(xiàn)有的業(yè)務(wù)應(yīng)用從原先的緊密的巨石架構(gòu)逐步解耦成符合松耦合的微服務(wù)架構(gòu),并通過容器化方式分別部署解耦后的應(yīng)用組件。我們可以基本認(rèn)為微服務(wù)架構(gòu)和容器化部署方式是以DevOps方式交付持續(xù)部署流水線的前提條件。
那么具備微服務(wù)架構(gòu)應(yīng)用的典型特點有哪些呢?我們且簡單羅列如下三點,以增強大家對這種全新架構(gòu)的理解。
- 業(yè)務(wù)應(yīng)用系統(tǒng)已經(jīng)做到被徹底的架構(gòu)解耦,可以實現(xiàn)基于容器的方式部署獨立的部署單元;
- 每個被解耦的業(yè)務(wù)系統(tǒng)模塊可以支持獨立設(shè)計、開發(fā)、部署和維護(hù),通常由敏捷實踐所提倡的自組織(自管理)研發(fā)小團(tuán)隊進(jìn)行持續(xù)的快速迭代和增量開發(fā),研發(fā)小團(tuán)隊通常由5~9個人組成;
- 運行特定應(yīng)用模塊的容器可以被轉(zhuǎn)化為鏡像模板,以鏡像的方式實現(xiàn)DevOps所提倡的“Build Once, Run Anywhere”的特點。
總之,隨著各個各業(yè)對市場所需價值的快速交付的內(nèi)在需求,會有越來多的企業(yè)采用微服務(wù)架構(gòu), 選擇敏捷開發(fā)方法Scrum,并通過開發(fā)運維一體化(DevOps)的自動化部署方式來持續(xù)部署已經(jīng)打包成容器的產(chǎn)品功能。