1. 河豚號 > 生活百科 >

devops工具有哪些(devops開發(fā)運維一體化)

本文作者使用簡單明了的語言介紹了當今使用的一些 DevOps 技術和工具。閱讀本文后,您將對這些 DevOps 工具,工作方式、以及如何在軟件過程中使用有一個整體的了解。

最近一段時間,我們見證了 DevOps 技術的飛速發(fā)展。當今流行且功能強大的工具可能會成為下一年度的過時工具,甚至可能很快被另一種工具取代。如前所述,作者的目的不是通過這篇文章來評判哪些工具最受歡迎或功能最全,而是讓讀者全面了解 DevOps 工具的工作方式以及如何在軟件過程中使用它們。

 

推薦一些熱門的 DevOps 工具

 

什么是 DevOps?

DevOps 是開發(fā)和 IT 運維工程師一起參與從設計到開發(fā)和生產的整個敏捷軟件開發(fā)生命周期的一種實踐。敏捷是軟件開發(fā)生命周期原則,由 17 名獨立軟件開發(fā)人員在 2001 年宣布。

我們正在通過自己的實踐和幫助別人實踐來探索更好的軟件開發(fā)方法。通過這項工作,我們開始重視:

個人和互動高于流程和工具

工作的軟件高于詳盡的文檔

客戶合作高于合同談判

響應變化高于遵循計劃

也就是說,盡管右側的提到的項目有價值,但我們更重視左側的項目。

在自敏捷宣言發(fā)表以來的最近 20 年中,敏捷組織的理念得到了許多組織的認可,并且一些組織已采用了 Scrum 框架進行項目管理。Sprint 的 Scrum 框架概念和以產品為中心的文化以及快速變化的競爭市場所施加的時間壓力迫使許多軟件開發(fā)人員逐步增量地交付產品。

持續(xù)交付需要持續(xù)的集成,CI/CD 迫使生產者采用新的工具和技術,以便可以自動執(zhí)行許多任務,并且可以同時快速地執(zhí)行多個流程。新流行的軟件開發(fā)生命周期文化使開發(fā)人員、質量保證、T 運營、產品設計師和產品所有者之間的工作更加緊密。這正是 DevOps 概念不可或缺的地方。

除了傳統(tǒng)的版本控制、協(xié)作和部署工具之外,快速的生產和交付迫使軟件公司使用更多工具來滿足敏捷性期望,例如項目管理、自動化、容器化、編排、監(jiān)控、分析和可視化技術。

DevOps 工具

1 版本控制系統(tǒng)

Git

Git 是一個開源的分布式版本控制系統(tǒng)。如果您需要更多信息,請參閱 https://git-scm.com/about。

GitHub

GitHub 是一個 Git 存儲庫托管服務。

Bitbucket

Bitbucket 是 Atlassian 提供的基于 Git 的源代碼存儲庫托管服務。

Apache Subversion(SVN)

Apache Subversion 是一個軟件版本號和版本控制系統(tǒng),根據(jù) Apache 許可以開源形式分發(fā)。

Azure DevOps 服務器

Azure DevOps Server 是微軟公司提供的版本控制產品。

還有更多的版本控制技術,例如 Gitlab、Mercurial、Bazaar、AWS CodeCommit、Perforce Helix Core 和 SourceForge。

2 容器化

Docker

Docker 是執(zhí)行系統(tǒng)級虛擬化的容器化軟件。該軟件的開發(fā)者是 Docker,Inc。該軟件首次發(fā)布于 2013 年。它使用 Go 編程語言編寫。

容器: 容器是軟件的標準單元,它將代碼及其所有依賴項打包,使得軟件可以從一個環(huán)境快速可靠地運行到另一個環(huán)境。

容器映像:Docker 容器映像是一個輕巧、獨立的可執(zhí)行軟件包,其中包含運行應用程序所需的一切:代碼、運行時、系統(tǒng)工具、系統(tǒng)庫和配置。容器映像在運行時成為容器,對于 Docker 容器,映像在容器 Docker 引擎上運行時成為容器。它適用于 Linux 和基于 Windows 的應用程序。不論基礎架構如何,容器化軟件的運行方式始終相同。容器將軟件與環(huán)境隔離開來,盡管在開發(fā)和模擬階段之間存在差異,但是容器能確保軟件均可一致地工作。

Docker 引擎:Docker 容器技術于 2013 年作為開源 Docker 引擎的方式發(fā)起。Docker 的技術之所以獨特是因為它專注于開發(fā)人員和系統(tǒng)操作人員的需求,將應用程序依賴項與基礎架構分離開來。

Docker 技術可從 Docker 及其開放源代碼獲得。所有主要數(shù)據(jù)中心供應商和云服務提供商都將其集成到云技術中。其中,許多提供商利用 Docker 來提供基于容器的 IaaS 產品。此外,領先的開源無服務器(serverless)框架也利用 Docker 容器技術。

亞馬遜 ECS

亞馬遜公司的彈性容器服務(Elastic Container Service,簡稱 ECS)是一項編排服務,它支持運行 Docker 容器以在亞馬遜 AWS 上執(zhí)行容器化的應用程序。它消除了對單獨的容器編排軟件的安裝和管理需求。盡管 ESC 是免費的,但亞馬遜會對其使用的資源收費。

AWS Fargate

AWS Fargate 使您無需管理服務器或集群即可執(zhí)行容器。亞馬遜公司根據(jù)運行 Fargate 所使用的內存和虛擬 CPU 資源收取費用。

谷歌云平臺

谷歌云為您提供了運行容器的不同選項。它們是谷歌 Kubernetes 引擎(用于容器群集管理)、Google 計算引擎(用于虛擬機和 CI/CD 管道)和 Google 應用引擎靈活環(huán)境(用于完全托管的 PaaS 上的容器)。谷歌提供了可用于生產的執(zhí)行容器化應用程序所需的基礎架構。谷歌根據(jù)所使用的資源收費。

LXC

LXC 是 Linux 容器的縮寫,Linux 容器是一種 OS 級虛擬化方法,用于執(zhí)行使用單個 Linux 內核的控制主機上的多個獨立 Linux 系統(tǒng)(容器)。這是 GNU LGPL 許可下的開源免費工具。它可以在 GitHub 庫中找到。

微軟 Azure

類似于亞馬遜 ECS,對容器管理不收取任何費用,但對您使用的內容收取費用。

Apache Mesos

Apache Mesos 由 Apache 軟件基金會開發(fā),是一個處理計算機集群的開源項目。它于 2016 年首次發(fā)布,并使用C++編程語言編寫,免費使用。

Docker-compose

Docker Compose 用于運行多容器應用程序。Docker-compose 描述互連服務組,這些服務組共享軟件依賴關系并被編排和縮放在一起。您可以使用一個 YAML 來配置您應用程序的服務。然后,使用docker-compose up命令,從您的配置中創(chuàng)建并啟動所有服務。

3 容器編排

隨著大公司對其應用程序進行容器化,并將它們遷移到云中,對容器編排解決方案的需求不斷增長。有許多可用的解決方案,盡管并不詳盡,下面的列表提供了一些可用的容器編排工具和服務。

Kubernetes

Kubernetes 是一個開源平臺,它支持容器化服務的部署、擴展和管理的自動化。Kubernetes 最初由谷歌開發(fā),由云原生計算基金會(Cloud Native Computing Foundation)維護。有許多付費或免費的產品,但其中最受歡迎的是 Kubernetes。

部署 Kubernetes 為我們提供了一個集群。Kubernetes 集群由一組工作機(稱為節(jié)點)組成,這些節(jié)點上運行容器化的應用。每個群集至少有一個工作節(jié)點。每個節(jié)點由控制平面(control plane)管理,并包含運行 Pod 所需的服務。每個 Pod 是容器的邏輯主機。工作節(jié)點托管作為應用程序工作負載組件的 Pod??刂乒?jié)點管理群集中的工作節(jié)點和 Pod??刂破矫婧凸?jié)點可以是物理機或虛擬機。控制平面和節(jié)點運行在多臺計算機上并不罕見。

Docker swarm

使用 Docker Swarm 模式,我們可以定義服務的期望狀態(tài),而 Docker 將維護該狀態(tài)。Docker 企業(yè)版已將 Kubernetes 與 Swarm 集成在一起。Docker 現(xiàn)在為編排引擎的選擇提供了靈活性。Docker 引擎 CLI 用于創(chuàng)建大量的 Docker 引擎,可在其中部署應用程序服務。

Minikube

Minikube 允許您在本地計算機上使用 Kubernetes,并允許您在計算機上使用單節(jié)點 Kubernetes 集群。

Rancher

Rancher 是使用容器編排的開源平臺,被稱為 cattle。它使您能夠利用 Kubernetes、Swarm、Mesos 等編排服務。Rancher 提供了管理容器所需的軟件,組織無需使用一套不同的開源技術從頭開始構建容器服務平臺。Rancher 允許管理在客戶指定的提供商上運行的 Kubernetes 集群。

AWS EKS

亞馬遜的完全托管的 Kubernetes 服務。

AKS(微軟 Azure 的全管理 Kubernetes 服務)

Azure 容器實例(Azure Container Instance,簡稱 ACI)是微軟 Azure 提供的基本容器編排服務。Azure 服務結構( Azure Service Fabric)是微軟 Azure 提供的開源容器編排器。

Marathon

Marathon 是一個可在 Apache Mesos 上運行大規(guī)模容器的框架。

Nomad

Nomad 是 HashiCorp 提供的容器和工作負載協(xié)調器。

4 IT 自動化

Jenkins

Jenkins 是開源、免費、與平臺無關的自動化服務器。Jenkins 提供了幾個插件來支持構建、部署和自動化任何項目。它是一個獨立的基于 Java 的程序。它支持 Windows、Mac 和其他類似 UNIX 的操作系統(tǒng)。Jenkins 可以通過本機系統(tǒng)軟件包 Docker 安裝,甚至可以由安裝了 Java 運行環(huán)境(Java Runtime Environment,簡稱 JRE)的任何計算機獨立運行。

Chef

Chef INFRA 是用于自動化基礎架構配置的平臺。這將確保每個系統(tǒng)被正確和一致地配置。在此平臺上,基礎架構被定義為代碼。Chef INFRA 將確保配置策略靈活、可版本控制、可測試并且易于閱讀。Chef 是基于合同的付費平臺。

Puppet

它可以連接云提供商、DevOps 工具和其他 API。根據(jù)來自現(xiàn)有 DevOps 工具的信號,傳遞觸發(fā)工作流以協(xié)調對下游服務的操作。它使您可以通過基于 YAML 的配置自定義和擴展工作流程。它具有一個集成庫,可以更輕松地添加步驟。借助 Puppet Enterprise,您可以交付和管理任何云、基礎架構或服務。Puppet 是基于合同的付費平臺。

Ansible

Ansible 是 RedHat 的開源 IT 自動化工具。Ansible 可以配置系統(tǒng)、部署軟件以及協(xié)調更高級的 IT 任務,例如持續(xù)部署。Ansible 使用劇本(playbooks)做配置管理和多機部署系統(tǒng)。

Terraform:**Terraform 是 Hashi Corp. 提供的開源基礎架構即代碼軟件工具。Terraform 是用于構建、更改和管理基礎架構的工具。Terraform 將云 API 編碼為聲明式配置文件。您可以使用 Terraform 通過稱為 HashiCorp 配置語言(HashiCorp Configuration Language,簡稱 HCL)的配置語言來管理環(huán)境,以實現(xiàn)人類可讀的自動化部署。

5 協(xié)作

Jira

Jira 是一種工具,旨在幫助團隊進行項目管理,錯誤跟蹤和問題跟蹤。簡單來說,它是一個問題跟蹤器。Jira 被大公司廣泛用于軟件開發(fā)和軟件測試。它是由澳大利亞 Atlassian 公司創(chuàng)建的基于 Web 的商業(yè)授權產品,于 2002 年首次發(fā)布,廣泛流行且具有可有限使用的免費版本。很多敏捷團隊使用 Jira 軟件,其設計適用于 Scrum 和看板等方法。Jira 還被金融服務、零售、軟件、汽車、非營利組織和政府廣泛使用。

Slack

Slack 是 Slack Technologies 開發(fā)的專有業(yè)務通信平臺。Slack 提供了許多 IRC 風格的功能,包括按主題組織的持久聊天室、私人組、直接消息將文件保存在一個地方等。Slack 聲稱,與電子郵件相比,它更加快捷、井井有條,并且更加安全。

Monday

Monday.com 是公司用于任務管理、項目協(xié)作、過程跟蹤和溝通的項目管理工具。

谷歌工作區(qū)(Workspace)

谷歌工作區(qū)是谷歌基于應用的生產力平臺。谷歌將消息、日歷、文件共享、聊天、視頻會議和團隊組織工具放在一起,并免費提供給其所有用戶。

6 監(jiān)控和可視化

Datadog

Datadog 主要是針對云應用程序的監(jiān)視工具。它為您的所有云應用程序、服務器和網絡提供詳細的指標。它可以輕松地與其他自動化工具集成,例如 Ansible、Chef、Puppet 等。Datadog 是按主機收費的服務。

Prometheus(普魯米修斯)

Prometheus 是用于事件監(jiān)控和報警的免費軟件應用程序。Prometheus 拉取指標(鍵 / 值),并將數(shù)據(jù)存儲為時間序列,從而允許用戶以實時方式查詢數(shù)據(jù)和告警。它以給定的時間間隔與目標進行通信,以收集指標、匯總數(shù)據(jù)、顯示數(shù)據(jù)、甚至在達到某些閾值時發(fā)出警報。

Grafana

Grafana 是開源的可視化和分析軟件。它使您可以查詢、可視化、告警和探索

指標,無論這些指標存儲在哪里。簡單的說,它為您提供了將時間序列數(shù)據(jù)庫(time-series database,TSDB)數(shù)據(jù)轉換為精美的圖形和可視化效果的工具。

Grafana 通過提供相關數(shù)據(jù)來幫助我們跟蹤用戶行為、應用程序行為、在生產環(huán)境或預生產環(huán)境中彈出錯誤的頻率、彈出錯誤的類型以及上下文場景。Grafana Cloud 是由 Grafana 實驗室運營的高可用、快速、完全托管的 OpenSaaS 指標平臺。Grafana 企業(yè)版是 Grafana 的商業(yè)版本,其中包括開源版本中未提供的附加功能。

Loki

Loki 是受 Prometheus 啟發(fā)的水平可擴展、高可用的多租戶(multi-tenant)日志聚合系統(tǒng)。它的設計具有很高的成本效益,并且易于操作。與其他日志系統(tǒng)不同,它不索引日志的內容,而是為每個日志流設置一組標簽。

結論

大多數(shù) DevOps 工具免費提供,并且它們中的大多數(shù)能夠無縫地協(xié)同工作,這使我們能管理對自動化、持續(xù)集成、持續(xù)交付和持續(xù)改進的不斷增長的需求。

本文由網上采集發(fā)布,不代表我們立場,轉載聯(lián)系作者并注明出處:http://m.zltfw.cn/shbk/38608.html

聯(lián)系我們

在線咨詢:點擊這里給我發(fā)消息

微信號:15705946153

工作日:9:30-18:30,節(jié)假日休息