軟件工程之美36講——DevOps工程師到底要做什麼事情?

軟件工程之美36講——DevOps工程師到底要做什麼事情?

什麼是DevOps

DevOps 可以理解爲一種開發(Development)和運維(Operations)一起緊密協作的工作方式,從而可以更快更可靠的構建、測試和發佈軟件。

DevOps會帶來哪些好處呢?

  • 整個軟件的構建、測試和發佈過程高度自動化

  DevOps 一個很重要的基礎就是自動化,通過對自動化的應用,是最簡單有效的打破開發和運維之間壁壘的方式。因爲應用自動化後,對於運維人員來說,自動化的交付流程,減少了繁重的手工操作,自動化測試可以有效對產品質量提供很好的保障。對於開發人員來說,可以方便高頻率地進行部署。如果你的團隊還沒有開始實施自動化,可以先從持續交付開始.

  • 信息更加透明和易於測量

  當採用 DevOps 的工作方式,信息更加透明,通過日誌和工具,數據也可以被更好測量。比如說:可以直觀看到開發到部署需要多少時間,哪個環節可以改進?當前服務運行情況如何,每分鐘訪問數多少,API 出錯率多少?當前用戶數多少,有多少新增用戶?這些數據,不僅可以幫助運維更好地預警,或者是幫助開發更好地優化程序,還可以幫助業務團隊更好地瞭解服務的運營情況。

  • 培養跨職能協作的文化

  DevOps 的核心文化是不同職能工種之間的緊密協作的文化。其實不僅限於開發和運維之間,就像我們之前在中討論的,開發和測試之間也一樣離不開緊密的協作。如果你的團隊是在真正地實踐 DevOps 的工作方式,就會積極擁抱這樣的跨職能協作的文化,在日常工作中包容錯誤、對事不對人,能對項目的開發流程持續改進,鼓勵創新。

graph TD A[DevOps 原則]-->B[自動化] A-->C[信息透明可測量] A-->D[構建協作文化]

你需要去構建自動化部署的系統,從構建、測試到部署實現高度的自動化;建立數據監控的系統,讓信息透明可測量;最後要形成跨職能協作的文化。

DevOps 工程師到底要做什麼事情?

  •   首先,DevOps 工程師要幫助團隊建立基於持續集成和持續交付工作流程。關於持續集成和持續交付,不僅僅是工具的使用,同時還是基於工具之上的一整套的交付工作流程。對於這樣的工具和流程的建設,最初的時候,就是需要有專門的人,專門的時間去建立,也是 DevOps 工程師首先要去解決的問題。其次,要建立一套基於日誌的監控報警的系統,以及故障響應的流程。對於線上系統,應急響應非常重要,要在故障發生後,第一時間作出響應,及時恢復生產,避免更大損失。需要能建立一套基於日誌的監控報警的系統,將應用程序還有運行環境的各項數據監控起來,設置報警的閾值。當數據異常,超出閾值,就馬上觸發報警,然後進入應急響應的流程。對於應急響應流程,首先應該能第一時間通知最合適的人去處理,比如負責這個服務值班的開發人員,然後對於怎麼第一時間恢復應該有準備,涉及跨部門協作也應該有相應的配合流程;最後對於故障應該有總結,避免類似情況再次發生。

  •   然後,要構建基於雲計算和虛擬化技術的基礎設施。雖然並非每一個軟件項目都是基於雲計算或虛擬化技術來搭建的,但云計算和虛擬化技術方面的技術,其實是橫跨開發和運維的,可能對於大部分開發和運維來說,都只瞭解其中一部分知識,這就需要有人能同時懂軟件開發和雲計算或虛擬化技術,或者一起協作,才能搭建出真正適合雲計算或虛擬化技術的架構。構建出來基於雲計算和虛擬化技術的基礎設施後,對於開發人員來說,只要通過 API 或腳本即可搭建應用,對於運維來說,也只要通過腳本和工具即可管理。

  •   最後,要形成 DevOps 的文化。DevOps 最核心的本質就是工作方式和協作的文化,而這樣的文化需要有人引領,一點點去形成。DevOps 工程師要幫助開發和運維相互理解對方的工作,幫助開發和運維在一起協作時多溝通,相互學習。出現問題不指責,而是分析原因,共同承擔責任,找出改進的方案。這些就是 DevOps 工程師要做的事情,本質上還是 DevOps 的幾條基本原則:自動化、信息透明可測量、構建協作文化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章