歡迎光臨
每天分享高質量文章

雲原生DevOps工程師的角色和職責

雲原生DevOps是一個相對較新的又包含了舊概念與想法的集合,它們是由於因解決構建應用程式的舊方法的不足的需求而結合在一起的。要瞭解雲原生DevOps工程師每天所做的工作,需要瞭解雲原生模型的標的是構建利用雲工具能輕鬆實現可適應和彈性的應用程式。雲原生計算的基礎包含有四個主要概念:微服務、容器、CI/CD和DevOps。
微服務是一種將應用程式開發為一系列小型專用服務的方法,這些服務組合在一起形成一個完整的產品。這些功能被打包到像Docker這樣的容器中,然後透過持續整合/持續部署管道進行推送。微服務的模組化使不同的團隊能夠在產品的不同部分上並行工作而不會相互幹擾,並且還透過減少任何這些服務的失敗對其他服務的影響來增強產品。
使用容器來託管微服務是非常有效的,因為容器比傳統虛擬機器更有效地使用系統資源。它們只需要執行與它們託管的應用程式相關的服務,而不是整個客戶作業系統及其相應的行程。容器對於雲原生應用程式的敏捷部署至關重要,尤其是與Kubernetes等管理軟體配合使用時。所有這些都是使CI/CD成為可能的基礎。如果沒有這些工具提供的靈活性,那麼這些允許更改,修複或將功能推到生產環境,從開發到自動程式碼審查和測試的CI流程將非常困難。
DevOps使用所有這些乃至其他更多工具來解決所謂孤島問題,就是當開發人員編寫程式碼然後將其扔到Ops部門時會發生什麼。開發人員從頭到尾不擁有他們的程式碼的結果就是,Ops部門經常需要負責維護未考慮基礎架構的程式碼。這裡的解決方案不僅僅是創建出第三個結合開發和運維角色的閉塞的環境。
DevOps不僅僅是一個流程或工作崗位,它更是一種所有權文化。
DevOps工程師試圖培養“誰開發誰維護”的理念,這意味著他們需要從軟體開發過程一開始就評估可能困擾應用程式生產的瓶頸。雲原生DevOps工程師需要能夠透過CI/CD流程獲取應用程式,以確保程式碼可以構建,透過測試併在不破壞生產環境的情況下進行部署。這因此激勵他們思考應用程式在建立之前的執行方式,並編寫指令碼來建立持續的整合管道,以確保產品的上市時間更快,使用者體驗更好。
最優秀的DevOps工程師將能夠使用或學習各種開源技術,並且熟悉大量用於編寫指令碼的程式語言。他們在IT系統,操作和資料管理方面擁有一些經驗,能夠將這些知識整合到CI/CD開發模型中。至關重要的是,DevOps工程師不僅需要編寫程式碼,還要考慮他們開發的產品的實際業務成果。像這樣的全域性思考還需要強大的軟技能,以實現跨團隊以及客戶和技術團隊之間的溝通。
當然,沒有誰是一座孤島。DevOps團隊雖然在同一個組織改寫下運作,但是需要各類不同的角色才能勝任。這些團隊成員的實際頭銜可能會因地而異,但一般職責仍然相同:
  • 產品負責人(負責團隊的工作):此人擔任客戶團隊聯絡人。他們需要特別強大的軟技能和有效溝通技術概念的能力,以便與客戶合作,提出滿足期望的產品。他們瞭解全域性,可以告訴團隊應該如何執行應用程式以及使用什麼基礎架構。

  • 團隊領導(負責團隊的工作方式):此人是技術團隊的管理型別角色。他們根據團隊成員的個人優勢和技能集來委派職責。他們也貢獻程式碼,但是在短期發展衝刺背景下,他們使團隊與產品所有者的全域性觀保持一致。他們通常對技術決策有最終決定權。

  • 自動化架構師/站點可靠性工程師(SRE):此人在構建雲基礎架構方面經驗豐富,並瞭解在生產中支援應用程式所需的內容。他們開發自動化系統,以確保持續部署順利執行。他們專註於確保基礎架構在大規模環境中的穩定效能,並瞭解如何隨著公司的發展擴充套件基礎架構。

  • 軟體開發人員:軟體開發人員將與之前列出的所有團隊成員一起工作,並根據客戶的要求創造出程式碼,然後進行測試,部署和監控。

隨著團隊的發展,這些角色可能會分成幾個其他更細粒度的職位,以便利用增加的人力資源。UX工程師,測試工程師和安全工程師就是一些例子,它們會從列出的其他一些人那裡承擔重要的責任並對其進行擴充套件。
原文連結:https://thenewstack.io/roles-and-responsibilities-of-cloud-native-devops-engineers/

 

贊(0)

分享創造快樂