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

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

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

DevOps 與傳統開發方式


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

DevOps 的好處?
- 依托自動化工具把開發、測試、發布、部署的過程整合,實現高度自動化與高效交付。
- 在保證產品質量的前提下快速、頻繁地發布產品。
- 能夠即使獲得用戶反饋,并快速響應。
- 最大限度地減少風險,降低代碼的出錯率。
- 高質量的軟件發布標準。整個交付過程標準化、可重復、可靠。
- 整個交付過程進度可視化,方便團隊人員了解并控制項目進度。
- 團隊協作更高效。
DevOps 帶來的變革
- 角色分工:打破傳統團隊隔閡,讓開發、運維緊密結合,高效協作
- 研發:專注研發、高度敏捷、持續集成
- 產品交付:高質量、快速、頻繁、自動化、持續交付
簡單的說,DevOps=團隊文化+流程+工具
團隊文化的意思很簡單,就是你的團隊要知道并認可DevOps理念;然后就要通過具體的流程和工具來實現這個理念。
后續,我會一點點根據自己的心得體會,慢慢總結分享對DevOps的理解

浙公網安備 33010602011771號