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工程師的角色因組織而異,但有兩個常見的方面:自動化和持續集成。
想知道更多?掃描下面的二維碼關注我
好文推薦:
基于數據庫實現的分布式鎖
基于Redis實現的分布式鎖
為了追求極致的性能,Kafka掌控了這11項要領
面試的時候遇到答不上的問題怎么辦?
如何在面試中介紹自己的項目經驗?
>>>Learn More<<
喜歡就點個"在看"唄^_^
總結
以上是生活随笔為你收集整理的DevOps工程师到底是做什么的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大图详解负载神器 LVS、Nginx及H
- 下一篇: GitHub被中国人霸榜!国外开发者不开