2019 DevOps 技術指南

圖片

原文鏈接:https://hackernoon.com/the-2018-devops-roadmap-31588d8670cb
原文作者: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
圖片
如果你需要更多的選擇並且不介意學習免費資源,你可以隨時查看我的免費 JavaPythonJavaScript 課程列表。

2、操作系統

這是 Ops 部分的內容,在更早之前負責瞭解操作系統和硬件的人員以及系統管理員掌握操作系統即可。但對於 DevOps,現在開發人員也需要了解它們。你至少需要了解路線圖中建議的:流程管理、多線程和高併發、Sockets、I/O 管理、虛擬化、內存存儲和文件系統。

由於我們大多數人都在 Linux 操作系統上工作,我建議你通過 Udemy 上的 Linux Administration BootCamp 課程來更好地學習和理解 Linux 操作系統。
圖片
更多免費資源可查看 free Linux courses 列表。

3、終端命令

對於 DevOps 人員來說,熟練地掌握常用的、好用的操作系統命令是很重要的,特別是在 Linux 操作系統上工作的研發人員,至少需要知道一些必需的 Linux shell 命令,如 Bash、Ksh、findgrep、awk、sedlsof 以及 nslookup、netstat 等網絡命令。如果你認爲需要刷新下這些命令和工具,你可以考慮學習 Pluralsight 上的 Linux Command Line Interface (CLI) Fundamentals 課程。

[外鏈圖片轉存失敗(img-xM9msZWf-1563524239190)(https://coding-net-production-pp-ci.codehub.cn/c89a4b63-ebb2-4fd7-b1e1-794ace89cbd9.png)]

對初學者和有經驗的 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 工程師,你應該瞭解 DockerKubernetes容器技術;AnsibleChefSaltPuppet 等配置管理工具;Terraform 和 Cloud Formation 等基礎設施配置。以下是我推薦的一些相關工具的學習課程。

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 工程師一起成長。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章