些工具可以讓你更容易地了解和實作。在本文中,你将了解這些工具,并将它們作為軟體釋出 / 維護工具包工作的一部分開始使用。
DevOps 有很多可使用的工具,在一篇文章中幾乎不可能介紹完它們。本文将介紹五種最流行、功能最強大的 DevOps 工具:
- Terraform
- Ansible
- Packer
- Docker
- Kubernetes
Terraform

類型:配置
語言: Go
推薦的第一個 DevOps 工具是來自 Hashicorp 的Terraform。Terraform 是一個基礎設施管理工具,允許您正确地建構、更改和管理基礎設施。您可以将 Terraform 視為一種供應工具。它幫助您設定伺服器、資料庫和其他支援全面應用程式的基礎設施。
Terraform 并不局限于任何特定的雲服務提供商,它可以與多個雲提供商和環境協同工作。雲服務提供商如 AWS、Microsoft Azure、谷歌雲都與 Terraform 無縫內建。版本控制系統托管提供商,如 Github 和 Bitbucket,都可以很好地使用它。
Terraform 有一個企業版和開源版,還可以安裝在 macOS、Linux 和 Windows 系統上。
Ansible
類型:配置
語言:Python、PowerShell、Shell 和 Ruby
與 Terraform 類似,Ansible 也是一個基礎設施管理工具。Ansible 可以幫助你部署應用程式,供應和配置管理的伺服器。Ansible 是用 Python 建構的,由 RedHat 維護,但它仍然是免費和開源的。
作為一個配置管理系統,您可以使用 Ansible 來設定和建構多個伺服器。你可以在控制機器上安裝 Ansible,而不需要 Ansible 在其他伺服器上運作,這些伺服器可以從 web 到應用程式再到資料庫伺服器。
與 Terraform 不同,Ansible 不使用 HCL 作為它的代碼。相反,配置是寫在 Ansible 劇本,這是 YAML 檔案。Ansible 使用聲明性和程式性模式的混合。這與 Terraform 不同,後者僅僅是聲明性的。
Linux 是安裝 Ansible 最合适的作業系統。不過,它在 macOS 上也運作良好。對于 Windows 使用者,可以通過 Linux 的 Windows 子系統的 bash shell 使用 Ansible。
Packer
類型:配置
語言: Go
Packer 是另一個來自 Hashicorp 的 DevOps 工具。用 Golang 編寫的 Packer 可以幫助你自動建立虛拟鏡像。手動建構鏡像的過程可能令人沮喪,因為它容易出錯,但 Packer 消除了所有這些。
對于單個 JSON 檔案,可以使用 Packer 建立多個鏡像。當它第一次工作時,由于沒有任何東西會幹擾它的自動化過程,是以可以保證它能百分百地工作。許多雲服務提供商都使用鏡像,您可以無縫地與這些提供商合作,因為 Packer 标準化了用于雲環境的鏡像的建立。
Packer 不是一個獨立的工具。您可以将其與 Ansible、Chef 和 Jenkins 內建,以便在部署管道中進一步使用這些映像。安裝過程并不複雜,您可以學習如何開始使用該工具。
Docker
類型:容器
語言: Go
Docker 是一種容器技術,可讓您在特殊環境中隔離應用程式。容器化與虛拟化類似,不同之處在于容器不會啟動完整的作業系統。
使用 Docker 容器,您可以在這些自定義環境中開發和部署應用程式,進而不必擔心相容性問題。您的應用程式可以在任何位置運作,隻要它們位于容器中即可。
要啟動 Docker 容器,您必須通過 Dockerfiles 建立 Docker 映像。從 Docker 映像啟動時,Dockerfile 包含 Docker 容器中所需的規範。您不必總是建構自己的 Docker 映像,因為 Docker Hub 上可以使用官方映像。
Docker 本身可以在 Linux 上運作,并且在 macOS 上也可以正常運作,因為它類似于 Unix。對于 Windows 使用者,也可以通過Docker 工具箱來使用 Docker。
通常情況下,你可能會使用多個 Docker 容器,這就引出了本文中的最後一個 DevOps 工具。
Kubernetes
類型:容器
語言: Go
Kubernetes (K8s) 是一個谷歌開源工具,它可以讓你管理 Docker 容器。由于在生産中經常有大量的容器在運作,是以,Kubernetes 使編排這些容器成為可能。
首先要了解編排 Docker 容器的原因。當有許多容器在運作時,很難手動監視這些容器,并使它們彼此通信;另外,這種擴充以及負載平衡也變得困難。
使用 Kubernetes,可以控制所有這些容器,是以可以将這組機器作為一台機器進行管理。與 Docker Compose 相比,Kubernetes 是不同的,因為它使部署,擴充和監視容器變得更加容易。當它們中的任何一個崩潰時,它們都可以自愈,而 Kubernetes 可以制造新的來代替。使用 K8s,可以輕松地進行存儲編排、服務發現和負載平衡。
您可以在 macOS,Linux 和 Windows 上安裝 Kubernetes,并通過Kubernetes 指令行工具使用它。
結論:
DevOps 的概念對于使大型應用程式在不同負載或流量下保持高性能是非常有益的。它還使軟體部署管道易于管理。
如果沒有可用的工具,DevOps 概念很難實作。這個領域有很多工具,每個公司都有不同的選擇。盡管如此,Terraform、Ansible、Packer、Docker、Kubernetes 都是擁有大量使用者社群的工具,能夠在各種軟體項目中實作 DevOps 的工具。如果您打算使用它們,可以做進一步的研究。
作者:DashMagazine
出處:https://codeburst.io/5-devops-tools-to-use-e99b79795c9d
翻譯:實驗樓
相關教程:
動手實戰學 Docker
動手實戰學 Docker_Docker - 實驗樓www.shiyanlou.com
2825 人學過、511 人關注!通過 14 個實驗帶你體驗 Docker 魅力。最快的上手教程,最新的技術領域,最多的動手實踐,幫助你線上學習Docker ,DockerFile ,Compose ,Swarm 等技術。
Kubernetes 入門與實戰
Kubernetes 入門與實戰www.shiyanlou.com
本課程介紹了 Kubernetes 的核心概念和資源類型,并借助實際的實驗操作來掌握它們,進而幫助我們去思考這些設計的意義以及它們所應用的業務場景。主要内容包括:Kubernetes 基礎概念以及使用方式、單例應用 Pod、通路應用 Service 等。
基于 Ansible + Celery 的運維開發平台
基于 Ansible + Celery 的運維開發平台www.shiyanlou.com
為大家提供一種管理伺服器在 1000 台以内的自動化運維方案,主要實作自動化運維方案裡的集中化管理的核心部分;可以為運維工作的同學提供一種解決日常工作中批量處理伺服器維護性工作的方案,為從事自動化運維開發的同學提供一種自動化運維的實作思路。