你還不了解DevOps? 看這篇就夠了
最近幾年"DevOps"這個(gè)關(guān)鍵詞經(jīng)常出現(xiàn)在項(xiàng)目開發(fā)當(dāng)中,特別是隨著微服務(wù)/容器/cloud在項(xiàng)目中的大范圍應(yīng)用,你不想知道都很難。作為一個(gè)伴隨CI/CD到DevOps一路走來的工程師,我將分幾個(gè)部分漫話DevOps以及相關(guān)的概念,作為軟件開發(fā)工程師,你需要知道并且開始踐行DevOps, 它應(yīng)該成為你職業(yè)素養(yǎng)的一部分。
筆者是在2015年左右開始聽說“DevOps”這個(gè)名詞,最早聽說并實(shí)踐的一直是CI/CD (后面會介紹它們之間的關(guān)系),從CI/CD開始,你會更容易理解DevOps倡導(dǎo)的文化。
What is DevOps ?
DevOps 是一組用于促進(jìn)開發(fā)和運(yùn)維人員之間協(xié)作的過程、方法和系統(tǒng)的統(tǒng)稱。
Wikipedia對DevOps的定義是:
DevOps是軟件開發(fā)、運(yùn)維和質(zhì)量保證三個(gè)部門之間的溝通、協(xié)作和集成所采用的流程、方法和體系的一個(gè)集合。 它是人們?yōu)榱思皶r(shí)生產(chǎn)軟件產(chǎn)品或服務(wù),以滿足某個(gè)業(yè)務(wù)目標(biāo),對開發(fā)與運(yùn)維之間相互依存關(guān)系的一種新的理解。 ...... DevOps并不僅僅關(guān)注軟件部署,它是部門間溝通協(xié)作的一組流程和方法。
DevOps是Development和Operations的組合,是一種方法論,是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進(jìn)應(yīng)用開發(fā)、應(yīng)用運(yùn)維和質(zhì)量保障(QA)部門之間的溝通、協(xié)作與整合。以期打破傳統(tǒng)開發(fā)和運(yùn)營之間的壁壘和鴻溝。

從下圖中,可以看到Dev 和Ops 關(guān)注的點(diǎn)是不同的,并且有各自的利益和關(guān)注點(diǎn),溝通必然存在障礙。一個(gè)想快速迭代,一個(gè)想穩(wěn)定;一個(gè)不關(guān)心怎么部署運(yùn)維,一個(gè)不清楚開發(fā)架構(gòu);由此帶來的就是效率的低下,以及相互的抱怨,但是完整的項(xiàng)目并不是僅僅代碼寫完就完事了,質(zhì)量/穩(wěn)定/運(yùn)維才是更重要的。

DevOps 提倡通過一系列的技術(shù)和工具降低開發(fā)和運(yùn)維人員之間的隔閡,實(shí)現(xiàn)從開發(fā)到最終部署的全流程自動化,從而達(dá)到開發(fā)運(yùn)維一體化。通過將 DevOps 的理念引入到整個(gè)系統(tǒng)的開發(fā)過程中,能夠顯著提升軟件的開發(fā)效率,使得各個(gè)團(tuán)隊(duì)減少時(shí)間損耗,更加高效地協(xié)同工作,縮短軟件交付的周期,更加適應(yīng)當(dāng)今快速發(fā)展的互聯(lián)網(wǎng)時(shí)代。下面這個(gè)DevOps能力圖,良好的閉環(huán)可以大大增加整體的產(chǎn)出。

DevOps 與傳統(tǒng)開發(fā)方式


Why is DevOps ?
猛得聽上去,DevOps很抽象,你可能會問以前沒有DevOps不是一樣開發(fā)交付嗎?為什么是DevOps?
瀑布開發(fā),敏捷開發(fā)都聽過吧?DevOps你可以理解為新的開發(fā)模型,是文化和技術(shù)的方法論,需要公司在組織文化上的變革。
DevOps早在十年前就有人提出來,但是,為什么這兩年才開始受到越來越多的企業(yè)重視和實(shí)踐呢?因?yàn)镈evOps的發(fā)展是獨(dú)木不成林的,現(xiàn)在有越來越多的技術(shù)支撐。微服務(wù)架構(gòu)理念、容器技術(shù)使得DevOps的實(shí)施變得更加容易,計(jì)算能力提升和云環(huán)境的發(fā)展使得快速開發(fā)的產(chǎn)品可以立刻獲得更廣泛的使用。
因?yàn)榧夹g(shù)在發(fā)展,項(xiàng)目的開發(fā)過程也需要適應(yīng)新的技術(shù)和框架,微服務(wù)那么多,容器可能上千個(gè),你怎么快速部署/維護(hù)?

DevOps 的好處?
- 依托自動化工具把開發(fā)、測試、發(fā)布、部署的過程整合,實(shí)現(xiàn)高度自動化與高效交付。
- 在保證產(chǎn)品質(zhì)量的前提下快速、頻繁地發(fā)布產(chǎn)品。
- 能夠即使獲得用戶反饋,并快速響應(yīng)。
- 最大限度地減少風(fēng)險(xiǎn),降低代碼的出錯(cuò)率。
- 高質(zhì)量的軟件發(fā)布標(biāo)準(zhǔn)。整個(gè)交付過程標(biāo)準(zhǔn)化、可重復(fù)、可靠。
- 整個(gè)交付過程進(jìn)度可視化,方便團(tuán)隊(duì)人員了解并控制項(xiàng)目進(jìn)度。
- 團(tuán)隊(duì)協(xié)作更高效。
DevOps 帶來的變革
- 角色分工:打破傳統(tǒng)團(tuán)隊(duì)隔閡,讓開發(fā)、運(yùn)維緊密結(jié)合,高效協(xié)作
- 研發(fā):專注研發(fā)、高度敏捷、持續(xù)集成
- 產(chǎn)品交付:高質(zhì)量、快速、頻繁、自動化、持續(xù)交付
簡單的說,DevOps=團(tuán)隊(duì)文化+流程+工具
團(tuán)隊(duì)文化的意思很簡單,就是你的團(tuán)隊(duì)要知道并認(rèn)可DevOps理念;然后就要通過具體的流程和工具來實(shí)現(xiàn)這個(gè)理念。
后續(xù),我會一點(diǎn)點(diǎn)根據(jù)自己的心得體會,慢慢總結(jié)分享對DevOps的理解
本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請?jiān)谖闹凶⒚鱽碓醇白髡呙帧?/p>
免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com





