自從DevOps概念在市場上推出以來,其使用呈上升趨勢。世界各地的企業已經張開雙臂開始接受這個開放式的軟件開發方法。因爲在全球範圍內被接受,企業提供了許多亟待填補而且有吸引力的DevOps相關工做機會。不少公司正在尋找有足夠經驗引入DevOps的專業人員,缺少熟練的相關專業技能人才是這一理念實施的主要困境。程序員
因此不管您如今是系統管理員、程序員仍是能夠在軟件開發過程當中工做的任何其餘專業人員,均可以在DevOps中找到本身的位置。但在成爲這樣的人以前,須要咱們分析一下,做爲系統管理員、開發人員或QA專業人員,您的技能是否徹底符合DevOps的需求,這一點相當重要。服務器
在過去幾年中,我曾在不一樣的項目中與很多優秀的系統管理員合做過,我瞭解他們中的一些人願意轉型到DevOps的角色。在這篇文章中,我將嘗試解釋系統管理員應該具有哪些技能,以便成功轉變到DevOps工程師。網絡
系統管理員和DevOps工程師之間的區別架構
傳統的系統管理工做僅限於配置、維護和修復服務器和計算機系統。一般狀況下,系統管理員在軟件開發過程當中沒有任何做用,系統管理員和開發人員之間存在巨大的隔離。能夠這麼說,系統管理員角色已經存在了很長一段時間,任務和責任已經被傳統觀念下了定義。工具
可是DevOps是一種不一樣的途徑,在這個過程當中它建立一個開發、QA和系統管理員來克服缺少協調的通道。在DevOps中,整個團隊在產品開發生命週期中都有交叉的角色,開發人員能夠在開發階段完成後的生產環節中中執行任務,而系統管理員也能夠在產品的設計階段參與。這樣相關的角色就並不存在很明顯的鴻溝了。測試
在這個過程當中DevOps工程師沒有正式的定義,它被認爲是最難徹底匹配和保持持續成功的複雜角色之一。ui
突出來講,DevOps專業人員是那些對部署和運營感興趣的程序員或者擅長編碼的系統管理員,這些人能夠在項目進入開發階段後仍然可以改進測試和部署的規劃;是那些超越了傳統所定義的能力範圍,而且對技術環境有更全面的見解的人。編碼
系統管理員的技能遷移雲計算
DevOps否認了「各自爲戰思惟」,好比開發人員和系統管理員只作本身的分內工做。DevOps打破團隊和部門而且成爲一個具備交叉角色的做戰小分隊。可是這裏不是說經過採用「DevOps」來減小員工和省錢減小公司成本,爲了這種目的而施行「DevOps」將會對團隊將產生很是嚴重的負面影響。操作系統
不能否認系統管理員和DevOps工程師之間存在技能重疊。DevOps學院的一份報告列出了目前公司正在尋找的9大技能:
能夠很容易地看到,如腳本、操做系統管理和監控這些技能已經由系統管理員擁有,有些則不是。
系統管理員的技術革新
傳統系統管理員的技能(雖然有些變化)仍然適用於DevOps。可是DevOps工程師須要革新他的技能應用於產品開發的整個軟件生命週期,因此他必須熟悉雲服務和最早進的自動化工具,固然最後他還必須可以與其餘成員協做。
如下是系統管理員爲成爲DevOps工程師所應具有的一些關鍵內容:
持續集成:
關於DevOps最重要的方面是持續集成(CI),這是一個軟件開發實踐,CI容許開發人員爲了自動構建和自動化測試而不斷自動更新資源庫。
一般,傳統的系統管理員角色並不涉及持續集成,可是若是您但願進入DevOps,則須要使用持續集成工具的實踐經驗。
有不一樣的產品和工具能夠幫助您在組織中實現持續集成。有些工具可以讓您將CI服務器託管在您本身的網絡基礎架構中。 最受歡迎的是Jenkins,還有一些其餘託管的CI產品,如徹底託管在雲中的CircleCI和Travis CI。
雲計算:
大多數DevOps項目都是由雲託管的。做爲DevOps工程師您必須可以配置與Amazon Web Service、MS Azure、Google Cloud和其餘雲主機相關的服務器和服務。除此以外,您還應該熟悉軟件即服務(SAAS)、平臺即服務(PAAS)、基礎架構即服務(IAAS)等雲服務。
配置管理:
做爲DevOps的工程師,您必須熟悉Puppet、Chef、Salt或Ansible等配置管理工具。它們都是爲了更容易自動配置和維護數百甚至數千個服務器而設計的。這些全部工具都有助於實現各類流程的自動化,這也是DevOps的主要特點之一。
總結
系統管理員角色已經存在了很長一段時間,而且任務和責任已經被傳統觀念下了定義。可是DevOps是一種不一樣的途徑,在這個過程當中它建立一個開發、QA和系統管理員來克服缺少協調的通道。
系統管理員已經擁有一些DevOps技能,如腳本、操做系統管理和監控。可是爲了成爲DevOps工程師,系統管理員還須要掌握一些關鍵技能,例如一些流行的持續集成工具,雲計算和配置管理工具的實際操做經驗。