來自:開源中國
連結:https://www.oschina.net/translate/what-do-devops-engineers-really-do
原文連結:https://www.level-up.one/what-do-devops-engineers-really-do/
我們之前已經討論過許多關於DevOps和DevOps世界的最新趨勢了。但是DevOps工程師到底是做什麼的?
DevOps工程師以最純粹的方式彌合了軟體開發和運維團隊之間的差距,以提高軟體的交付率。
DevOps工程師帶來了什麼?
傳統的軟體開發流程是軟體開發人員花費數周和數月編寫程式碼,然後將程式碼交給QA團隊進行測試,然後將最終的釋出版交給運維團隊去佈署。所有的這三個階段,即開發,測試,佈署,之間缺乏協作。
開發者編寫程式碼然後交給佈署團隊。現在由佈署團隊來解決程式碼佈署過程中出現的問題,或將程式碼交給開發團隊以修複bug。所有這些都導致軟體開發過程變慢。
但是在DevOps樣式下,這三個團隊將不再相互隔離。大多數時候,這三個團隊將合併成一個團隊,工程師會在整個應用程式生命週期中工作,從開發和測試到佈署到操作,並開發出一系列不限於單一功能的技能。安全團隊也可以在整個應用程式生成周期中和開發和運維更緊密的合作。
為什麼DevOps工程師的角色會有所不同?
DevOps工程師並不是一件新鮮事。它是一類工程師的統稱,如系統工程師,自動化構建工程師,軟體工程師,Linux工程師等等。
然而,DevOps工程師的工作性質因元件而異。在某些情況下,他們的工作是基礎設施的自動化和維護。有些元件將他們的工作擴充套件到整個交付鏈。
DevOps工程師的角色各不相同,因為他必須透過剋服傳統的協作障礙與開發人員和運維人員進行協作。而且不同的組織在這個過程中會有不同的協作障礙。
DevOps工程師日常工作中最重要的兩個方面
雖然DevOps工程師的角色多種多樣,但是幾乎所有DevOps工程師每天都會觸及兩件事——自動化和持續整合。
自動化
與維護基礎設施相關的大多數任務仍然是手動的。公司更願意使用傳統的成熟的方法,並不是自動化的相同流程,因為它們不想冒任何風險。但事實是自動化任務將有助於加快軟體的開發和佈署,這意味著從客戶賬戶到公司賬戶更快的現金轉移。
要意識到這一點,例如,如果系統工程師的任務是每天兩次手動備份所有伺服器,它這是在浪費時間,因為透過編寫指令碼,在一些雲設施中自動備份伺服器可輕鬆實現這一點。透過自動執行備份過程,你可以讓系統工程師更專註於關鍵問題,例如對由於某些VM問題而導致伺服器關閉進行故障排除。手動執行相同操作將導致系統工程師負擔過重,其效率將大幅降低。這隻是一個很簡單的例子來說明不轉向自動化而造成的資源浪費。
DevOps可以看作是敏捷(Agile)的擴充套件,因為它可以降低由於開發團隊,QA和佈署團隊之間的協作不良而可能出現的風險。DevOps透過認識到高質量軟體需要包括QA和運維專家在內的所有利益相關方的持續參與和反饋的這一事實,擴充套件了敏捷原則的範圍。
有許多事情可以透過自動化方式來完成,例如在釋出時,使用新補丁更新Apache Web伺服器,更新伺服器上佈署的開源軟體的版本。
DevOps工程師可以透過建立指令碼環境來自動化配置伺服器的過程。你可以在一個節點上執行指令碼,但如果不是數以千計的節點,則在數百個節點上執行相同的指令碼將變得不切實際。指令碼在這裡不是可擴充套件的解決方案。
因此,需要以可擴充套件方式,跨大量節點自動化軟體供應,配置管理,和應用程式佈署。這就是像Chef,Puppet,和Ansible這種配置管理工具在DevOps世界中派上用場的地方。
持續整合
DevOps的另一個重要的方面是持續整合(CI),它是一種軟體實踐,CI允許開發人員不斷更新對單個倉庫的更改,從而進行自動化構建和測試。
一個持續整合系統通常包含一個監控版本控制系統的工具。每當監測到版本控制系統的更改時,持續整合系統將會自動化構建和測試應用程式。如果構建或測試未透過,系統會立即通知開發人員去解決問題。
持續整合可確保持續交付,因為所有的程式碼更改都會持續佈署到構建階段之後的測試和生產環境中。
使用持續整合,開發人員可以從手動任務中解脫出來,提高他們的工作效率,現在可以在CI中以自動的方式完成;由於頻繁測試,錯誤和bug將更容易被找到和減少;可以更快速,更頻繁的提供對終端使用者的更新。
有多種產品和工具可以幫你在組織中實現持續整合。
有些工具可以讓你在自己的網路基礎架構中託管CI伺服器。最流行的一個是Jenkins,它是由Sun公司的Hudson專案重新命名而來。
還有一些其它的託管CI產品,例如CircleCI和Travis CI,它們是完全託管在雲端的。這些託管CI產品正變得越來越流行,尤其是對於小型公司或組織,因為它可以讓工程師團隊盡可能快速的開始持續整合。
總結
DevOps工程師扮演的最重要的角色是彌合了開發團隊和運維團隊之間的差距,增長軟體交付率。
雖然DevOps工程師的角色因組織而異,但有兩個常見的方面:自動化和持續整合。
●編號226,輸入編號直達本文
●輸入m獲取文章目錄
Linux學習
更多推薦《18個技術類微信公眾號》
涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。