【必讀】2021年DevOps工程師學習路徑

DevOps 實際上是什么意思??

DevOps 是一種軟件開發(fā)方法,涉及持續(xù)開發(fā),持續(xù)測試,持續(xù)集成,部署和監(jiān)視。這一系列過程跨越了傳統(tǒng)上孤立的開發(fā)和運營團隊,DevOps 試圖消除它們之間的障礙。

因此,DevOps 工程師基本上與 Development 和 Operations 團隊合作,DevOps 是這兩個主要部分之間的鏈接。

DevOps 包括諸如構建自動化、CI/CD、基礎架構即代碼等概念,并且有許多工具可以實現(xiàn)這些概念。由于這些工具數(shù)量眾多,因此可能會造成混亂和壓倒性的結果。

最重要的是要了解概念,并為每個類別的學習找一種特定的工具。例如,當你已經知道什么是 CI/CD 并知道如何使用 Jenkins 時,也將很容易學習同類型的其他替代工具。

接下來讓就來看看學習 DevOps 需要掌握哪些技能。

1)軟件開發(fā)的概念

作為一名 DevOps 工程師,你不會直接對應用程序進行編程,但是當你與開發(fā)團隊緊密合作以改善和自動化他們的任務時,你需要了解以下概念:

  • 開發(fā)人員的工作方式
  • 他們正在使用哪個 git 工作流程
  • 如何配置應用程序
  • 自動化測試

2)操作系統(tǒng)

作為 DevOps 工程師,你負責準備在操作系統(tǒng)上部署應用程序的所需要的基礎結構環(huán)境。并且由于大多數(shù)服務器是 Linux 服務器,因此你需要了解 Linux 操作系統(tǒng),并善于使用命令行,所以你需要知道:

  • 基本的 Shell 命令
  • Linux 文件系統(tǒng)
  • 管理服務器的基礎知識
  • SSH 密鑰管理
  • 在服務器上安裝不同的工具

3)網(wǎng)絡與安全

你還需要了解網(wǎng)絡和安全性的基礎知識才能配置基礎架構,例如:

  • 配置防火墻以保護應用程序
  • 了解 IP 地址,端口和 DNS 的工作方式
  • 負載均衡器
  • 代理服務器
  • HTTP/HTTPS

但是,要在 DevOps 和 IT Operations 之間劃清界線,你不是系統(tǒng)管理員。因此,在這里不需要高級知識,理解和了解基本知識就夠了。IT 方面是這些 SysAdmins,Networking 或 Security Engineers 人的專長。

4)容器化

隨著容器成為新標準,你可能會將應用程序作為容器運行,這意味著你需要大致了解:

  • 虛擬化的概念
  • 容器的概念
  • 學習哪個工具?Docker - 當今最受歡迎的容器技術

5)持續(xù)集成和部署

在 DevOps 中,所有代碼更改(例如開發(fā)人員的新功能和錯誤修復)都應集成到現(xiàn)有應用程序中,并以自動化方式連續(xù)地部署到最終用戶。因此,建立完整的 CI/CD 管道是 DevOps 工程師的主要任務和職責。

在完成功能或錯誤修正后,應自動觸發(fā)在 CI 服務器(例如 Jenkins )上運行的管道,該管道:

  • 運行測試
  • 打包應用程序
  • 構建 Docker 鏡像
  • 將 Docker Image 推送到工件存儲庫,最后
  • 將新版本部署到服務器(可以是開發(fā),測試或生產服務器)

因此,你需要在此處學習技能:

  • 設置 CI/CD 服務器
  • 構建工具和程序包管理器工具以執(zhí)行測試并打包應用程序
  • 配置工件存儲庫(例如 Nexus,Artifactory)

當然,可以集成更多的步驟,但是此流程代表 CI/CD 管道的核心,并且是 DevOps 任務和職責的核心。

學習哪個工具?Jenkins 是最受歡迎的人之一。其他:Bamboo,Gitlab,TeamCity,CircleCI,TravisCI。

6)云提供商

如今,許多公司正在使用云上的虛擬基礎架構,而不是管理自己的基礎架構。這些是基礎架構即服務(IaaS)平臺,可提供一系列服務,例如備份,安全性,負載平衡等。

因此,你需要學習云平臺的服務。例如。對于 AWS,你應該了解以下基本知識:

  • IAM 服務-管理用戶和權限
  • VPC 服務-你的專用網(wǎng)絡
  • EC2 服務-虛擬服務器
  • AWS 提供了更多的服務,但是你只需要了解你實際需要的服務即可。例如,當 K8s 集群在 AWS 上運行時,你還需要學習 EKS 服務。

AWS 是功能最強大,使用最廣泛的一種,但也是最困難的一種。

學習哪個工具?AWS 是最受歡迎的一種。其他熱門:Azure,Google Cloud,阿里云,騰訊云。

7)容器編排

如前所述,容器已被廣泛使用,在大公司中,成百上千個容器正在多臺服務器上運行,這意味著需要以某種方式管理這些容器。

為此目的,有一些容器編排工具,而最受歡迎的是 Kubernetes。因此,你需要學習:

  • Kubernetes 如何工作
  • 管理和管理 Kubernetes 集群
  • 并在其中部署應用程序

學習哪個工具?Kubernetes - 最受歡迎。

8)監(jiān)視和日志管理

軟件投入生產后,對其進行監(jiān)視以跟蹤性能,發(fā)現(xiàn)基礎結構以及應用程序中的問題非常重要。因此,作為 DevOps 工程師的職責之一是:

  • 設置軟件監(jiān)控
  • 設置基礎架構監(jiān)控,例如用于你的 Kubernetes 集群和底層服務器。

學習哪個工具?Prometheus, Grafana...

9)基礎設施即代碼

手動創(chuàng)建和維護基礎架構非常耗時且容易出錯,尤其是當你需要復制基礎架構時,例如用于開發(fā),測試和生產環(huán)境。

在 DevOps 中,希望盡可能地自動化,那就是將“基礎結構即代碼(Infrastructure as Configuration)”引入其中。因此使用 IaC ,我們將使用代碼來創(chuàng)建和配置基礎結構,你需要了解兩種 IaC 方式:

  • 基礎設施配置
  • 配置管理

使用這些工具,可以輕松地復制和恢復基礎結構。因此,你應該在每個類別中都知道一種工具,以使自己的工作更有效率,并改善與同事的協(xié)作。

學習哪個工具?

基礎架構設置:Terraform 是最受歡迎的一種。配置管理:Ansible,Puppet,Chef。

10)腳本語言

作為 DevOps 工程師就常見的工作就是編寫腳本和小型的應用程序以自動化任務。為了能夠做到這一點,你需要了解一種腳本或編程語言。

這可能是特定于操作系統(tǒng)的腳本語言,例如 bash 或 Powershell。

還需要掌握一種獨立于操作系統(tǒng)的語言,例如 Python 或 Go。這些語言功能更強大,更靈活。如果你善于使用其中之一,它將使你在就業(yè)市場上更具價值。

學習哪個工具?Python:目前是最需要的一個,它易于學習,易于閱讀并且具有許多可用的庫。其他:Go,NodeJS,Ruby。

11)版本控制

上述所有這些自動化邏輯都作為代碼編寫,使用版本控制工具(例如Git)來管理這些代碼和配置文件。

學習哪個工具?Git - 最受歡迎和廣泛使用。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容