DevOps 會讓你失業嗎?
這是一個很正常的擔心:DevOps 最終會讓你失業?畢竟,DevOps 意味著開發人員做運營,對嗎?DevOps 是自動化的。如果我的工作都自動化了,我去做什麼?實行持續分發和容器化意味著運營已經過時了嗎?對於 DevOps 來說,所有的東西都是代碼:基礎設施是代碼、測試是代碼、這個和那個都是代碼。如果我沒有這些技能怎麼辦?
DevOps 是一個即將到來的變化,它將顛覆這一領域,狂熱的擁擠者們正在談論,如何使用 三種方法 去改變世界 —— 即 DevOps 的三大基礎 —— 去推翻一個舊的世界。它是勢不可檔的。那麼,問題來了 —— DevOps 將會讓我失業嗎?
第一個擔心:再也不需要我了
由於開發者來管理應用程序的整個生命周期,接受 DevOps 的理念很容易。容器化可能是影響這一想法的重要因素。當容器化在各種場景下鋪開之後,它們被吹噓成開發者構建、測試和部署他們代碼的一站式解決方案。DevOps 對於運營、測試、以及 QA 團隊來說,有什麼作用呢?
這源於對 DevOps 原則的誤解。DevOps 的第一原則,或者第一方法是, 系統思考 ,或者強調整體管理方法和了解應用程序或服務的整個生命周期。這並不意味著應用程序的開發者將學習和管理整個過程。相反,是擁有各個專業和技能的人共同合作,以確保成功。讓開發者對這一過程完全負責的作法,幾乎是將開發者置於使用者的對立面 —— 本質上就是 「將雞蛋放在了一個籃子里」。
在 DevOps 中有一個為你保留的專門職位。就像將一個受過傳統教育的、擁有線性回歸和二分查找知識的軟體工程師,被用去寫一些 Ansible playbooks 和 Docker 文件,這是一種浪費。而對於那些擁有高級技能,知道如何保護一個系統和優化資料庫執行的系統管理員,被浪費在寫一些 CSS 和設計用戶流這樣的工作上。寫代碼、做測試、和維護應用程序的高效團隊一般是跨學科、跨職能的、擁有不同專業技術和背景的人組成的混編團隊。
第二個擔心:我的工作將被自動化
或許是,或許不是,DevOps 可能在有時候是自動化的同義詞。當自動化構建、測試、部署、監視,以及提醒等事項,已經佔據了整個應用程序生命周期管理的時候,還會給我們剩下什麼工作呢?這種對自動化的關注可能與第二個方法有關: 放大反饋循環 。DevOps 的第二個方法是在團隊和部署的應用程序之間,採用相反的方向優先處理快速反饋 —— 從監視和維護部署、測試、開發、等等,通過強調,使反饋更加重要並且可操作。雖然這第二種方式與自動化並不是特別相關,許多自動化工具團隊在它們的部署流水線中使用,以促進快速提醒和快速行動,或者基於對使用者的支持業務中產生的反饋來改進。傳統的做法是靠人來完成的,這就可以理解為什麼自動化可能會導致未來一些人失業的焦慮了。
自動化只是一個工具,它並不能代替人。聰明的人使用它來做一些重複的工作,不去開發智力和創造性的財富,而是去按紅色的 「George Jetson」 按鈕是一種極大的浪費。讓每天工作中的苦活自動化,意味著有更多的時間去解決真正的問題和即將到來的創新的解決方案。人類需要解決更多的 「怎麼做和為什麼」 問題,而計算機只能處理 「複製和粘貼」。
並不會僅限於在可重複的、可預見的事情上進行自動化,自動化讓團隊有更多的時間和精力去專註於本領域中更高級別的任務上。監視團隊不再花費他們的時間去配置報警或者管理傳統的配置,它們可能專註於預測可能的報警、相關性統計、以及設計可能的預案。系統管理員從計劃補丁或伺服器配置中解放出來,可以花費更多的時間專註於整體管理、性能、和可伸縮性。與工廠車間和裝配線上完全沒有人的景像不同,DevOps 中的自動化任務,意味著人更多關注於創造性的、有更高價值的任務,而不是一些重複的、讓人麻木的苦差事。
第三個擔心:我沒有這些技能怎麼辦
「我怎麼去繼續做這些事情?我不懂如何自動化。現在所有的工作都是代碼 —— 我不是開發人員,我不會做 DevOps 中寫代碼的工作」,第三個擔心是一種不自信的擔心。由於文化的改變,是的,團隊將也會要求隨之改變,一些人可能擔心,他們缺乏繼續做他們工作的技能。
然而,大多數人或許已經比他們所想的更接近。Dockerfile 是什麼,或者像 Puppet 或 Ansible 配置管理是什麼,這就是環境即代碼,系統管理員已經寫了 shell 腳本和 Python 程序去處理他們重複的任務。學習更多的知識並使用已有的工具處理他們的更多問題 —— 編排、部署、維護即代碼 —— 尤其是當從繁重的手動任務中解放出來,專註於成長時。
在 DevOps 的使用者中去回答這第三個擔心,第三個方法是: 一種不斷實驗和學習的文化 。嘗試、失敗,並從錯誤中吸取教訓而不是責怪它們的能力,是設計出更有創意的解決方案的重要因素。第三個方法是為前兩個方法授權 —— 允許快速檢測和修復問題,並且開發人員可以自由地嘗試和學習,其它的團隊也是如此。從未使用過配置管理或者寫過自動供給基礎設施程序的運營團隊也要自由嘗試並學習。測試和 QA 團隊也要自由實現新測試流水線,並且自動批准和發布新流程。在一個擁抱學習和成長的文化中,每個人都可以自由地獲取他們需要的技術,去享受工作帶來的成功和喜悅。
結束語
在一個行業中,任何可能引起混亂的實踐或變化都會產生擔心和不確定,DevOps 也不例外。對自己工作的擔心是對成百上千的文章和演講的合理回應,其中列舉了無數的實踐和技術,而這些實踐和技術正致力於授權開發者對行業的各個方面承擔職責。
然而,事實上,DevOps 是 「一個跨學科的溝通實踐,致力於研究構建、進化、和運營快速變化的彈性系統」。 DevOps 意味著終結 「筒倉」,但並不專業化。它是受委託去做苦差事的自動化系統,解放你,讓你去做人類更擅長做的事:思考和想像。並且,如果你願意去學習和成長,它將不會終結你解決新的、挑戰性的問題的機會。
DevOps 會讓你失業嗎?會的,但它同時給你提供了更好的工作。
via: https://opensource.com/article/17/12/will-devops-steal-my-job
作者:Chris Collins 譯者:qhwdw 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive