一千萬個為什麽

搜索

為什麽我不應該嘗試雇用'DevOps Engineer'?



擁有 DevOps Engineer 的想法有成為最近頗受歡迎,它似乎很有吸引力,只是有一個可以插入並提供DevOps許多好處的人員,如Puppet博客

根據我們的2015年DevOps報告顯示,使用DevOps實踐的組織絕大部分功能都很高:根據我們的2015年DevOps報告顯示,他們部署代碼的頻率比其競爭對手高出30倍,部署次數減少50%。

但是,我註意到DevOps工程師想要嘗試進行這些改進的想法受到很多人的反對:

即使在核心DevOps屬性方面達成廣泛一致,圍繞“DevOps工程師”這個術語的爭議也存在爭議。有人說這個術語本身與DevOps價值觀背道而馳。 Continuous Delivery的合著者Jez Humble指出,僅僅給某個DevOps工程師打電話,除了開發和運營之外,還可以創建第三個筒倉 - “......顯然是嘗試解決這些問題的一種糟糕(而且很諷刺)的方式。“

為什麽企業聘請DevOps工程師嘗試“實施DevOps”並不是一個好主意,而不是由這樣的博客?僅通過單獨的DevOps角色就能否定這些好處?

轉載註明原文: 為什麽我不應該嘗試雇用'DevOps Engineer'?

一共有 7 個回答:

TL;DR: You should never try to hire a DevOps Team


基本上有三種最常見的雇用角色:

  1. DevOps Architect/Evangelist
  2. DevOps工程師
  3. CI/CD工程師

這些角色與傳統上構成軟件工程組織的6個基本軟件開發角色不同:

  1. 產品管理
  2. 軟件開發
  3. 工具開發
  4. 安全性和合規性
  5. 質量和測試
  6. 系統操作(SRE)

讓我們一一瀏覽這三個角色,看看它們是如何適合的


DevOps架構師或傳播者

  • Why: If you are lost, slow, broken and don't know what to do.
  • When: At the start of the process in planing stages.
  • What: Management level role to guide all managers and leads in the entire Software Engineering org. This person will plan the entire transformation of your engineering organization to a highly functioning state.
  • Who: Consulting member well versed in theory, management practices, culture topics and operations who reports directly to VP of Software Engineering.

在某些情況下,對於中小型公司,您可能會開始這個過程,而不是雇用一個咨詢機構,如DORA。

DevOps工程師

  • Why:
    1. To bridge the gaps between teams if they are organized along the functional roles mentioned above to ensure cross functional level cooperation.
    2. To embed with product oriented teams, which have each of the 6 traditional roles included in the team, to help bridge the knowledge gaps and to help with implementation and adoption of the novel practices and tools.
  • When: Once you've laid out your plans and the organizational transformation starts and the entire management team is on board.
  • What: Enable cross function cooperation, ensure that team boundaries are broken down, that local optimizations inside teams are not creating a barrier to high throughput of work throughout the value chains all the way from customer wishes to customer deliveries.
  • Who: Experienced engineer with skills both in software development and system operations. He should be skilled in the best practices, process and culture changes related to DevOps transformation.

CI/CD工程師

  • Why: To help implement CI/CD pipelines, integrate your tool chain, bring in the tools that will enable better working of the company.
  • When: During the transition in larger organization, while the above roles have been already filled.
  • What: Engineer, which is essentially part of the tools team that will be able to setup CI/CD pipelines and start integrating internal systems in a way that will remove friction from the throughput of work.
  • Who: Engineer experienced with Tools, Integration process, Release Management and DevOps practices. Someone who understands they are replacing human gating in release process by Automation.

我會按照您的問題中所述辯論Devops Engineer鏈接主要是一個系統管理員角色。引用這裏的背景知識來解答這個問題:

你的登山裝備。

     
      
  • Linux/Unix管理中的強大背景   使用Puppet,Chef或其他同等功能的自動化/配置管理經驗
  •   
  • 能夠使用各種開源技術和雲服務(需要AWS經驗)
  •   
  • SQL和MySQL的豐富經驗(NoSQL經驗也是一個優點,因為我們也使用Redis)
  •   
  • 了解代碼和腳本(PHP,Python,Perl和/或Ruby)
  •   
  • 了解始終可用的最佳實踐和IT操作
  •   

在本示例工作描述中,DevOps Engineer對於系統管理員來說只是一個流行詞,適合基於雲的基礎架構,自動化,能夠讀取代碼以幫助進行診斷以及了解高可用性實踐和解決方案。

This is loosely related to DevOps practices and silo breaking culture between dev and ops as seen in this question What is the difference between Sysadmin and DevOps Engineer?

這不是一個好主意,因為一個系統管理員,他/她能夠很適應devops的實踐和文化,並不是推動公司轉型的正確人選。您不會在考慮到文化變化的情況下雇用此人,但需要使用工具配置視圖,這並不會真正幫助打破流程。這可能也會受到他/她的同事的不滿,如果事先沒有計劃好文化變革,您會對變更產生抵觸

對於一個成功的模式來獲得devops,@ Jiri Klouda 的回答給出了一個關於可接受的DevOps工程師角色以及改變中的步驟,這將帶來價值和成功的幫助。

我意識到這個答案可能不適合你,但這是我所做的

我是第一個在非常繁忙的電子商務初創公司工作的開發人員,擁有令人難以置信的高流量。我意識到公司還很年輕,而且,一段時間後,我將成為唯一的技術內部資源。

了解了這一點,我決定以這種方式構建我的基礎架構,以便我必須執行ZERO系統管理。

我決定在雲端進行主機托管,因為這樣做讓我免於系統維護。 我尋找一位有木偶經驗的AWS工程師。我們共同構建了一個自動擴展的基礎架構,並將其編寫為雲計算中的代碼。所有配置文件都在puppet內進行了版本管理。

這讓我作為一名開發人員承擔了這個devops的角色。我在python中構建了代碼發布工具。我使用相同的腳本將自己的應用程序引導到自動調整大小的新服務器上。

這工作得很好,今天,3年後,我還沒有做任何系統維護。我們有一個系統管理員(同一個AWS工程師)每個月工作10個小時,我試圖以這樣一種方式構建他的沖刺,以免我對他產生煩惱。就這樣,我尊重他的時間,並以最好的方式管理他的沖刺。

如果一個系統的性能下降,我簡單地終止它,另一個系統在他的位置旋轉。

我希望這個答案能以某種方式使你受益

在ASOS實施時,我有這個確切的挑戰。我們的目標是讓擁有足夠自我且具有專職角色的團隊成為反模式,但我們生活在現實世界中,並且許多開發人員認為良好的DevOps實踐不是他們的首要任務,因此他們需要幫助到達那裏。

我們所做的是:

  • 失去DevOps工程師的任期,DevOps是我們應該都做的事情,而不是我們的職位,所以我們稱他們為別的東西。

  • 把他們推薦給團隊,但每3人只有1人,這意味著他們不能成為一個實幹家,但必須被視為能夠幫助團隊改善自身並解決自身問題的能力(在指導下) p>

  • 同時擔任中心職能,擔任能力中心並處理企業考慮因素,影響所有團隊的任何事情

隨著我們的發展,我們審查這個模型,但對我們來說,它到目前為止效果很好

您不應聘請DevOps工程師,因為DevOps涵蓋了各種各樣的學科,因此一個人不可能成為這些學科各方面的專家。通過聘請所有行業的傑克,你會雇用一個沒有主人。

DevOps必然是一個基於團隊的努力,你不可能期望一個人支持整個團隊的期望。考慮DevOps的範圍。一個人不可能:

  • 成為[語言]
  • 的Rockstar開發人員
  • 成為網絡專家,了解所有必需的RFC
  • 發揮系統管理員的作用
  • 成為專家QA測試員
  • 成為數據庫管理員
  • 專註於存儲和備份
  • 了解網站可靠性工程
  • 潛在的其他學科也是

上面的一些甚至包含了規則,例如Windows系統管理員與Linux/Unix系統管理員,或者您可能使用多種編碼語言。

沒有人可能成為這方面的專家,這意味著如果您正在為DevOps工程師做廣告,那麽當您DevOps團隊中最薄弱的部分是 網絡方面,您的DevOps團隊團隊宣傳您的網絡專家的需求並不是很出色。盡管在DevOps團隊中沒有人應該成為特定角色,但假設在D​​evOps範圍內沒有專家或主題專家(SME),您可能會損害您的團隊。將鐘擺從一個極端擺到另一個極端 - 從孤立到冒充DevOps團隊中的每個角色都是一樣的 - 會導致同樣多的問題。

雖然團隊成員在多個學科交叉培訓 - 尤其是在重疊領域是很好的,但期望他們能夠熟練掌握如此廣泛的知識並不是實踐。

這意味著任何告訴你他們知道DevOps各個方面的人都可能對你說謊。聘請一位在DevOps團隊工作過的人員中最弱的專家 - 而不是“DevOps Engineer”。

我不認為你能夠得到明確的答案,因為它似乎涉及很多因素。

  • 該公司如何參與DevOps實踐
  • 公司提供什麽樣的應用程序或服務
  • 貴公司的結構

我剛剛完成了對職位的面試,最終獲得了DevOps工程師的頭銜,但是我正在做的一些工作是系統管理員。由於公司的規模以及應用程序管理的性質,這只是不必要的。 我采訪過的一些職位有著相似的頭銜,他們正在尋找更多的人從發展方面體驗明智的事情。他們期望更多的代碼編寫,而不是執行自動化的系統管理員。 SRE似乎是一個越來越受歡迎的標題,所以這可能是要走的路。我自己擔任系統管理員和自動化工程師作為我的上一份工作,因為我在一段時間內編寫了絕對的主廚。該公司正在遵循一個非常出色的devops模型,每個人都參與其中,開發人員與ops一起工作,但我認為他們的未來並沒有專門的基礎架構人員。

現在我處於這個位置,我正試圖在某種自動化方式下使用喇叭,並且我們還有一些人需要解決的問題。人們來來去去,其中一些工作流程的設計是因為別人是以這種方式設計的,而不是因為它適合人們的工作方式。

所以基本上我認為你應該弄清楚工作描述,不要太擔心這個頭銜,除非它與某種程度上的支付掛鉤,或者你認為某個人會吸引合適的人。

如果您關心DevOps的含義,並遵循“一條真正的道路”。您不應聘請DevOps Engineer。您應該聘請一名自動化工程師,一名部署工程師或者一名平臺架構師,或者其他一些能夠滿足您需要的角色。

如果成為真正的DevOps實踐者對您並不重要,那麽您可以隨心所欲地調用它。