5 大 DevOps 工具,你用過幾個?


些工具可以讓你更容易地理解和實現。在本文中,你將了解這些工具,並將它們作為軟件發布 / 維護工具包工作的一部分開始使用。

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

出處:

翻譯:實驗樓

相關教程:

動手實戰學 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 台以內的自動化運維方案,主要實現自動化運維方案里的集中化管理的核心部分;可以為運維工作的同學提供一種解決日常工作中批量處理服務器維護性工作的方案,為從事自動化運維開發的同學提供一種自動化運維的實現思路。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM