原文連結:https://hackernoon.com/the-20...
原文作者:javinpaul
翻譯君:CODING 戴維奧普斯
寫在前面
我們在推進國內研發團隊 DevOps 落地的過程中,發現不少研發組織在積極尋求 DevOps 技能方面的提升。今天翻譯的這篇深受歡迎的 DevOps 技術雷達來自一位國外的 Java 博主,他也是一位非常熱愛學習的開發者,接下來讓我們馬上進入到正文。
DevOps 技術指南
DevOps 目前非常火熱,我認識的大多數朋友、同事和高階開發人員都在努力成為 DevOps 工程師,以及研發組織中的 DevOps 佼佼者。雖然我承認 DevOps 的好處,它與改進軟體開發和部署過程直接相關,但從我有限的經驗來看,這不是一件容易的事。在如此多的工具和實踐中選擇正確的學習路徑是非常困難的。作為一名 Java 博主,許多讀者經常問我:
- 如何成為一名 DevOps 工程師?
- 應該學習哪些工具?
- 應該遵循哪些實踐?
- Maven 和 Jenkins 是不是 DevOps 工程師的必備技能?
- Docker 和 Kubernetes 呢?
- 基礎設施自動化是不是 DevOps 的組成部分?
- 是否應該學習 Chef、Puppet 或 Ansible?
以上只是讀者經常會提到的一部分問題,我努力用我淺薄的經驗來回答那些問題,但我不會只是用簡單粗暴和重複使用的方式把那些答案整合後丟給大家。今天我將分享一個很不錯的資源 —— 2019 DevOps RoadMap,它將幫助你成為夢寐以求的 DevOps 工程師。
昨天我在網上衝浪,偶遇了 Kamranahmedse 這個優秀的 GitHub 頁面,上面有不少對立志成為前端開發人員、後端開發人員、全棧 Web 開發人員、DevOps 工程師的讀者都很有用的路線圖。這個 RoadMap 在任何意義上都很有價值,因為它不僅突出了 DevOps 工程師的角色,還講述了覆蓋該領域需要學習的工具和技術。最重要的是,它在視覺上令人賞心悅目(難道你不喜歡黃色和奶油色的藍線嗎?),所以你可以列印出來並粘在桌子上以便參考。
雖然路線圖很好,它告訴了你要學什麼,但它沒有告訴你如何學習和在哪裡學習。為了補充路線圖,我分享了一些有用的免費和付費線上課程,以便你可以學習和改進你想要掌握的工具或領域。
話不多說,以下就是我所說的 DevOps RoadMap:
圖片來自 kamranahmedse
現在讓我們一步一步瀏覽 RoadMap,瞭解在 2019 年成為 DevOps 大師所需的基本技能:
1、程式語言
你們肯定知道以下三種主流程式語言之一,即 Java、Python 或 JavaScript。如果沒有,你可以看看下面的課程來學習你選擇的語言。我強烈建議你至少學習其中一種。
- Java
如果你想學習 Java,The Complete Java MasterClass 是一個很棒的課程,最近也針對 Java 10 進行了更新。
- Python
如果你想學習 Python,那麼 The Complete Python BootCamp 是我最喜歡的資源,它將教你 Python 3,這是 Python 最受歡迎的版本。
- JavaScript
如果你想學習 JavaScript,那麼你不應該錯過 Mosh Hamdani 在 Udemy 上的 JavaScript Basics for Beginners 。
如果你需要更多的選擇並且不介意學習免費資源,你可以隨時檢視我的免費 Java,Python 和 JavaScript 課程列表。
2、作業系統
這是 Ops 部分的內容,在更早之前負責瞭解作業系統和硬體的人員以及系統管理員掌握作業系統即可。但對於 DevOps,現在開發人員也需要了解它們。你至少需要了解路線圖中建議的:流程管理、多執行緒和高併發、Sockets、I/O 管理、虛擬化、記憶體儲存和檔案系統。
由於我們大多數人都在 Linux 作業系統上工作,我建議你通過 Udemy 上的 Linux Administration BootCamp 課程來更好地學習和理解 Linux 作業系統。
更多免費資源可檢視 free Linux courses 列表。
3、終端命令
對於 DevOps 人員來說,熟練地掌握常用的、好用的作業系統命令是很重要的,特別是在 Linux 作業系統上工作的研發人員,至少需要知道一些必需的 Linux shell 命令,如 Bash、Ksh、find、grep、awk、sed、lsof 以及 nslookup、netstat 等網路命令。如果你認為需要重新整理下這些命令和工具,你可以考慮學習 Pluralsight 上的 Linux Command Line Interface (CLI) Fundamentals 課程。
對初學者和有經驗的 Linux 使用者來說,這是一個很好的複習。你需要一個 Pluralsight 會員才能訪問該課程,每月花費約 29 美元或每年 299 美元,但我覺得物有所值。Pluralsight 就像開發者的 Netflix,它擁有超過 6000 個最新技術的高質量課程,可以隨時隨地學習,我主要是在旅行和上下班途中學習。如果你需要更多的選擇並希望成為 shell 指令碼大師,可以檢視我的 best courses to learn shell scripting。
4、網路和安全
資訊孤島的日子已經一去不復返了。當今世界,萬物都連線在了一起,這也使得網路和安全變得非常重要。為了成為優秀的 DevOps 工程師,你必須瞭解基本的網路和安全概念,如 DNS、OSI 模型、HTTP、HTTPS、FTP、SSL、TLS 等。為了重新整理概念認知,你可以檢視在 Ed Liberman 在 Pluralsight 上的 TCP/IP and Networking Fundamentals for IT Pros 課程。
如果你需要更多選擇,還可以檢視這些 Udemy 課程,網路方面例如 The Complete Networking Fundamentals 是一個很好的課程,安全方面你還可以學習 The Complete Cyber Security Course: Network Security。
5、伺服器配置
作為 DevOps 大師,你應該知道你的機器中設定了什麼以及如何設定它,只有這樣你才可以思考如何去自動化操控它。通常 DevOps 工程師應該知道如何設定 IIS,Apache Tomcat 等 Web 伺服器;還應該瞭解快取伺服器,負載均衡器,反向代理和防火牆等。如果你是 Web 開發領域的新手,我建議你檢視 Colt Steele 的 Web Developer Bootcamp 課程。
6、基礎設施即為程式碼
對於 DevOps 工程師來說,這可能是最重要的事情,這也是一個非常廣闊的領域。作為DevOps 工程師,你應該瞭解 Docker、Kubernetes 等容器技術;Ansible,Chef,Salt 和 Puppet 等配置管理工具;Terraform 和 Cloud Formation 等基礎設施配置。以下是我推薦的一些相關工具的學習課程。
- 如果你想學習 Docker,那麼在 Udemy 上的Docker Mastery: The Complete Toolset 是最好的課程。它全面覆蓋了 DevOps 工程師需要的所有工具。
- 如果你想學習 Kubernetes,我建議你加入 Learn DevOps: The Complete Kubernetes course 課程。它將教你如何構建、部署和管理 Kubernetes。
- 如果你想學習 Chef,目前最好的 Chef 課程可能是 Udemy 上的 Chef Fundamentals: A Recipe for Automating Infrastructure 課程。
- 更多 Docker 課程選擇,你可以瀏覽 10 essential courses for DevOps Engineer列表。
7、持續整合/交付
對於 DevOps 大師來說,這是另一個非常重要的事情:建立一個持續整合和交付的流水線。CI / CD 領域有很多工具,例如 Jenkins、TeamCity、Drone 等。
但是我強烈建議至少學習 Jenkins,因為它是最廣泛使用的,可能是市場上最成熟的 CI / CD 工具。如果你不認識 Jenkins,那麼這門課程最好先開始。沒有比 Udemy 上經典的 Learn DevOps: CI/CD with Jenkins using Pipelines and Docker 更好的課程。我也從這個課程中學到了大部分的 Jenkins 技能。
更多 Java 開發人員免費資源可檢視 6 free Jenkins and Maven courses 列表。
8、監控軟體和基礎設施
除了配置和部署之外,監控是 DevOps 的另一個重要方面,這就是 DevOps 工程師瞭解基礎設施和應用程式監控的重要原因。
這個領域有很多工具,如 Nagios、Icing、Datadog,Zabbix、Monit、AppDynanic、New Relic 等。你可以根據需要選擇其中一些來學習。
9、雲提供商
雲是下一個重要的事情,遲早你得將應用程式遷移到雲,因此對於 DevOps 工程師來說了解一些流行的雲提供商及其基礎知識是很重要的。
雖然 AWS 顯然是雲端計算領域的領導者,但 Google Cloud 和 Azure 正在慢慢趕上,還有一些其它參與者,如 Heroku、Cloud Foundry 和 Digital Ocean。
我強烈建議學習 Udemy 上經典的完整入門課程:AWS Serverless APIs & Apps — A Complete Introduction 。
更多 AWS 免費學習資源可檢視列表 free AWS courses 。
如果你只想從一門課程開始學習 DevOps,我認為 Learn DevOps: CI/CD with Jenkins using Pipelines and Docker 會是最好的開始。
寫在最後
原文作者非常詳盡地給我們解讀了 DevOps 技術的學習路線圖,除了作者分享的國外課程、工具,國內也有非常多的學習資源。對英文課程沒有太大興趣的同學,只要瞭解這個學習思路即可。CODING 也會持續關注並分享 DevOps 領域最新理念與技術,與 DevOps 工程師一起成長。