DevOps工程师到底是做什么的?
點擊上方“朱小廝的博客”,選擇“設為星標”
做積極的人,而不是積極廢人
DevOps是當前的最新趨勢,但是有很多朋友還是不知道DevOps工程師到底是做什么的?
DevOps工程師以最純粹的方式彌合了軟件開發(fā)和運維團隊之間的差距,以提高軟件的交付率。
DevOps工程師帶來了什么?
傳統(tǒng)的軟件開發(fā)流程是軟件開發(fā)人員花費數(shù)周和數(shù)月編寫代碼,然后將代碼交給QA團隊進行測試,然后將最終的發(fā)布版交給運維團隊去布署。所有的這三個階段,即開發(fā),測試,布署,之間缺乏協(xié)作。
開發(fā)者編寫代碼然后交給布署團隊。現(xiàn)在由布署團隊來解決代碼布署過程中出現(xiàn)的問題,或將代碼交給開發(fā)團隊以修復bug。所有這些都導致軟件開發(fā)過程變慢。
但是在DevOps模式下,這三個團隊將不再相互隔離。大多數(shù)時候,這三個團隊將合并成一個團隊,工程師會在整個應用程序生命周期中工作,從開發(fā)和測試到布署到操作,并開發(fā)出一系列不限于單一功能的技能。安全團隊也可以在整個應用程序生成周期中和開發(fā)和運維更緊密的合作。
為什么DevOps工程師的角色會有所不同?
DevOps工程師并不是一件新鮮事。它是一類工程師的統(tǒng)稱,如系統(tǒng)工程師,自動化構建工程師,軟件工程師,Linux工程師等等。
然而,DevOps工程師的工作性質因組件而異。在某些情況下,他們的工作是基礎設施的自動化和維護。有些組件將他們的工作擴展到整個交付鏈。
DevOps工程師的角色各不相同,因為他必須通過克服傳統(tǒng)的協(xié)作障礙與開發(fā)人員和運維人員進行協(xié)作。而且不同的組織在這個過程中會有不同的協(xié)作障礙。
DevOps工程師日常工作中最重要的兩個方面
雖然DevOps工程師的角色多種多樣,但是幾乎所有DevOps工程師每天都會觸及兩件事——自動化和持續(xù)集成。
自動化與維護基礎設施相關的大多數(shù)任務仍然是手動的。公司更愿意使用傳統(tǒng)的成熟的方法,并不是自動化的相同流程,因為它們不想冒任何風險。但事實是自動化任務將有助于加快軟件的開發(fā)和布署,這意味著從客戶賬戶到公司賬戶更快的現(xiàn)金轉移。
要意識到這一點,例如,如果系統(tǒng)工程師的任務是每天兩次手動備份所有服務器,它這是在浪費時間,因為通過編寫腳本,在一些云設施中自動備份服務器可輕松實現(xiàn)這一點。通過自動執(zhí)行備份過程,你可以讓系統(tǒng)工程師更專注于關鍵問題,例如對由于某些VM問題而導致服務器關閉進行故障排除。手動執(zhí)行相同操作將導致系統(tǒng)工程師負擔過重,其效率將大幅降低。這只是一個很簡單的例子來說明不轉向自動化而造成的資源浪費。
DevOps可以看作是敏捷(Agile)的擴展,因為它可以降低由于開發(fā)團隊,QA和布署團隊之間的協(xié)作不良而可能出現(xiàn)的風險。DevOps通過認識到高質量軟件需要包括QA和運維專家在內的所有利益相關方的持續(xù)參與和反饋的這一事實,擴展了敏捷原則的范圍。
有許多事情可以通過自動化方式來完成,例如在發(fā)布時,使用新補丁更新Apache Web服務器,更新服務器上布署的開源軟件的版本。
DevOps工程師可以通過創(chuàng)建腳本環(huán)境來自動化配置服務器的過程。你可以在一個節(jié)點上運行腳本,但如果不是數(shù)以千計的節(jié)點,則在數(shù)百個節(jié)點上運行相同的腳本將變得不切實際。腳本在這里不是可擴展的解決方案。
因此,需要以可擴展方式,跨大量節(jié)點自動化軟件供應,配置管理,和應用程序布署。這就是像Chef,Puppet,和Ansible這種配置管理工具在DevOps世界中派上用場的地方。
DevOps的另一個重要的方面是持續(xù)集成(CI),它是一種軟件實踐,CI允許開發(fā)人員不斷更新對單個倉庫的更改,從而進行自動化構建和測試。
一個持續(xù)集成系統(tǒng)通常包含一個監(jiān)控版本控制系統(tǒng)的工具。每當監(jiān)測到版本控制系統(tǒng)的更改時,持續(xù)集成系統(tǒng)將會自動化構建和測試應用程序。如果構建或測試未通過,系統(tǒng)會立即通知開發(fā)人員去解決問題。
持續(xù)集成可確保持續(xù)交付,因為所有的代碼更改都會持續(xù)布署到構建階段之后的測試和生產(chǎn)環(huán)境中。
使用持續(xù)集成,開發(fā)人員可以從手動任務中解脫出來,提高他們的工作效率,現(xiàn)在可以在CI中以自動的方式完成;由于頻繁測試,錯誤和bug將更容易被找到和減少;可以更快速,更頻繁的提供對最終用戶的更新。
有多種產(chǎn)品和工具可以幫你在組織中實現(xiàn)持續(xù)集成。
有些工具可以讓你在自己的網(wǎng)絡基礎架構中托管CI服務器。最流行的一個是Jenkins,它是由Sun公司的Hudson項目重新命名而來。
還有一些其它的托管CI產(chǎn)品,例如CircleCI和Travis CI,它們是完全托管在云端的。這些托管CI產(chǎn)品正變得越來越流行,尤其是對于小型公司或組織,因為它可以讓工程師團隊盡可能快速的開始持續(xù)集成。
總結
DevOps工程師扮演的最重要的角色是彌合了開發(fā)團隊和運維團隊之間的差距,增長軟件交付率。
雖然DevOps工程師的角色因組織而異,但有兩個常見的方面:自動化和持續(xù)集成。
想知道更多?掃描下面的二維碼關注我
好文推薦:
基于數(shù)據(jù)庫實現(xiàn)的分布式鎖
基于Redis實現(xiàn)的分布式鎖
為了追求極致的性能,Kafka掌控了這11項要領
面試的時候遇到答不上的問題怎么辦?
如何在面試中介紹自己的項目經(jīng)驗?
>>>Learn More<<
喜歡就點個"在看"唄^_^
總結
以上是生活随笔為你收集整理的DevOps工程师到底是做什么的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大图详解负载神器 LVS、Nginx及H
- 下一篇: GitHub被中国人霸榜!国外开发者不开