最全的 DevOps 工具集合,再也不怕選型了?。╠evops工具有哪些)
隨著 DevOps 的出現(xiàn)頻率越來越高,很多企業(yè)都在蠢蠢欲動,想要設計和開發(fā) DevOps 平臺。工欲善其事必先利其器,本文為大家總結(jié)了 DevOps 各個階段可以選擇的工具,也許 DevOps 平臺的技術選型在這一篇文章中就可以完成。
DevOps 的目標是持續(xù)改進,因此技術選型也是分階段的。
DevOps 技術類別
規(guī)劃工具
在規(guī)劃階段最重要的是要制定共同的目標、保證透明度和賦權。目前業(yè)內(nèi)比較常用的規(guī)劃工具主要包括 GitLab、TaskTop、CollabNet VersionOne、Pivotal Tracker、Trello 和 Azure Boards。
GitLab
GitLab 是基于 Web 的 DevOps 生命周期工具。它提供了一個 Git 存儲庫管理器,使用由 GitLab Inc. 開發(fā)的開源許可證來提供 Wiki、問題跟蹤和 CI/CD 管道功能。
GitLab 提供了一些工具用來在實踐中規(guī)劃事務,還可以用來查看工作的范圍。
Tasktop
Tasktop 可以將所有這些工具添加到 Tasktop 支持的全套敏捷和應用程序生命周期管理(ALM)、PPM 和 ITSM 工具中,從而在整個生命周期中提供前所未有的可視化特性。
CollabNet VersionOne
VersionOne 支持 Scrum、看板、XP、SAFe 和混合開發(fā)方法,簡化了跨所有團隊、程序、軟件產(chǎn)品組合和企業(yè)的計劃、跟蹤和報告工作。
Pivotal Tracker
全球各地開發(fā)人員都可以使用這款敏捷項目管理工具,圍繞一個共享的,帶有優(yōu)先級的 backlog 進行實時協(xié)作。
Trello
Trello 是基于 Web 的看板風格列表制作應用程序,是 Atlassian 的子應用。
許多團隊在規(guī)劃各個 sprint 時都會用它。
Azure Boards
可以跟蹤軟件項目,并使用敏捷工具(包括 Scrum boards、看板 boards 和儀表板等)改進規(guī)劃工作。同時,還有工具可以幫助你可視化工作、共享計劃、跟蹤進度,并確保你正在向目標邁進。
問題跟蹤
問題跟蹤階段是為了提供客戶響應能力,減少知識浪費,縮短反饋鏈路。目前業(yè)內(nèi)比較常用的問題跟蹤工具包括 Atlassian Jira、JetBrains YouTrack 和 ZenDesk。
Atlassian Jira
Jira 是 Atlassian 開發(fā)的專用問題跟蹤產(chǎn)品,提供了錯誤跟蹤和敏捷項目管理功能。
JetBrains YouTrack
YouTrack 是由 JetBrains 開發(fā)的,基于瀏覽器的專用商業(yè)軟件,融合了錯誤跟蹤器、問題跟蹤系統(tǒng)以及項目管理軟件。它的賣點是基于查詢的問題搜索,擁有自動完成、分批處理問題、自定義問題屬性集,以及創(chuàng)建自定義工作流的特性。
Zendesk
Zendesk 可以輕松地從所有渠道跟蹤每一個客戶問題。目前 Uber 和 Airbnb 等許多公司都在使用 Zendesk Support 作為他們的問題跟蹤軟件。
源代碼控制
源代碼控制主要是為了控制資產(chǎn),減少溝通障礙,賦能團隊。目前業(yè)內(nèi)比較常用的 SCM 工具包括 Git、GitHub、GitLab、Bitbucket 和 Subversion。
Git
Git 是一個分布式版本控制系統(tǒng),用來在軟件開發(fā)過程中跟蹤源代碼的更改。它是專為協(xié)調(diào)不同程序員的工作而設計的,也可用于跟蹤各種文件集中的更改。它的優(yōu)勢包括速度、數(shù)據(jù)完整性以及對分布式非線性工作流的支持。
GitHub
GitHub 提供了 Git 的分布式版本控制和源代碼管理功能,自己也有很多特性。
GitLab
GitLab 中的版本控制提供了世界一流的源代碼管理功能,可幫助你的開發(fā)團隊共享、協(xié)作并盡可能提高生產(chǎn)力。
Bitbucket
Bitbucket 是 Atlassian 所有的、基于 Web 的版本控制庫托管服務,可用在使用 Mercurial 或 Git 版本控制系統(tǒng)的源代碼和開發(fā)項目上。
Subversion
Apache Subversion 是一個軟件版本和修訂控制系統(tǒng),其根據(jù) Apache 許可開源。軟件開發(fā)人員可使用 Subversion 來維護源代碼、網(wǎng)頁和文檔等文件的當前和歷史版本。
構(gòu)建工具
構(gòu)建階段主要是為了保持打包的一致性,自動執(zhí)行容易出錯的活動,生成早期質(zhì)量信號。目前業(yè)內(nèi)比較常用的構(gòu)建工具包括 Maven/Gradle、MSBuild、Rake、JFrog Artifactory、Sonatype Nexus 和 NuGet。
Maven/Gradle
Maven 是主要用于 Java 項目的自動化構(gòu)建工具。Maven 還可以構(gòu)建和管理以 C#、Ruby、Scala 等語言編寫的項目。
Gradle 是一個開源的自動化構(gòu)建系統(tǒng),其基于 Apache Ant 和 Apache Maven 的理念,并引入了基于 Groovy 的領域特定語言,替代 Apache Maven 使用的 XML 格式來聲明項目配置。
MSBuild
Microsoft Build Engine(通常稱為 MSBuild)是用來托管代碼及原生 C 代碼的免費開源構(gòu)建工具集,它之前是.NET Framework 的一部分。Visual Studio 依賴 MSBuild(反之則不然)。
Rake
Rake 是一個軟件任務管理和自動化構(gòu)建工具。它允許用戶指定任務并描述依賴關系。你也可以對命名空間中的組任務執(zhí)行這些操作。
JFrog Artifactory
JFrog Artifactory 這款工具可用來存儲構(gòu)建過程的二進制輸出,以備分發(fā)和部署之用。Artifactory 支持許多軟件包格式,如 Maven、Debian、npm、Helm、Ruby、Python 和 Docker。
JFrog 提供了高可用性、復制、災難恢復和可伸縮特性,并兼容許多本地和云存儲產(chǎn)品。
Sonatype Nexus
Sonatype Nexus 是一款存儲庫管理器。你可以用它代理、收集和管理依賴項,這樣就用不著和一大堆 JAR 打交道了。它簡化了軟件分發(fā)的工作。
你可以配置自己的內(nèi)部構(gòu)建,然后發(fā)布到 Nexus 上供其他開發(fā)者使用。
NuGet
NuGet 是.NET 的軟件包管理器。NuGet 客戶端工具提供了生成和使用軟件包的功能。
NuGet Gallery 是為所有包作者和使用者提供的軟件包中心存儲庫。
測試工具
測試階段主要是檢測內(nèi)部質(zhì)量,建立對已部署構(gòu)件的信心。目前業(yè)內(nèi)常用的測試工具包括 JUnit、xUnit.net、Selenium、Jasmine 和 Cucumber。
JUnit
JUnit 是用于 Java 編程語言的單元測試框架。JUnit 在測試驅(qū)動開發(fā)的環(huán)境中扮演著重要角色,從 SUnit 起源的一組單元測試框架(統(tǒng)稱為 xUnit)之一。
xUnit.net
xUnit.net 是由 NUnit 的原作者編寫的,用于.NET Framework 的開源單元測試工具。
Selenium
Selenium 是用于測試 Web 應用程序的可移植框架。Selenium 提供了一種回放工具,使用戶無需學習測試腳本語言就能編寫功能測試。
Jasmine
Jasmine 是用于 JavaScript 的開源測試框架。它可以在任何支持 JavaScript 的平臺上運行,不會入侵應用程序或 IDE,還有著易讀的語法。在它身上可以找到 Screw.Unit、JSSpec、JSpec 和 RSpec 等諸多單元測試框架的影子。
Cucumber
Cucumber 是一種支持行為驅(qū)動開發(fā)的軟件工具。
Cucumber BDD 方法的核心是一種稱為 Gherkin 的普通語言解析器。它能用客戶可以理解的邏輯語言來指定預期的軟件行為。
持續(xù)集成和部署(CI/CD)
CI 工具的存在是為了快速反饋和減少缺陷、等待。目前業(yè)務比較常用的 CI 工具包括 Jenkins、CircleCI、Travis CI、Concourse、AWS CodePipeline 和 Azure Pipelines。
Jenkins
Jenkins 是一個免費的開源自動化服務器。Jenkins 可用來自動化軟件開發(fā)過程中非人類參與的工作,基于 CI 和 CD 的技術理念。這是一個基于服務器的系統(tǒng),可在 servlet 容器(例如 Apache Tomcat)中運行。
CircleCI
CircleCI 是世界上最大的共享 CI/CD 平臺,也是代碼從構(gòu)思到交付過程的中央樞紐。
作為最常用的 DevOps 工具之一,CircleCI 每天處理超過 100 萬個構(gòu)建,因此收集了大量關于工程團隊工作方式以及代碼運行方式的數(shù)據(jù)。Spotify、Coinbase、Stitch Fix 和 BuzzFeed 等公司使用 CircleCI 來提升工程團隊的生產(chǎn)力、發(fā)布更好的產(chǎn)品并更快地將產(chǎn)品推向市場。
Travis CI
TravisCI 是一項托管 CI 服務,用于構(gòu)建和測試 GitHub 上托管的軟件項目。Travis CI 為私有項目提供各種付費計劃,并提供了開源的免費方案。TravisPro 提供了在客戶自己的硬件上定制化部署專有版本的能力。
Concourse
Concourse 是用 Go 編寫的自動化系統(tǒng)。人們經(jīng)常將它用于 CI/CD,其賣點是強大的可伸縮性,可以提供很簡單或者很復雜的自動化管道。
AWS CodePipeline
AWS CodePipeline 是一項完全托管的 CD 服務,可幫助你自動化發(fā)布管道,以實現(xiàn)快速、可靠的應用程序和基礎架構(gòu)更新流程。
每當你更改代碼時,CodePipeline 都會根據(jù)你定義的發(fā)布模型自動執(zhí)行發(fā)布流程中的構(gòu)建、測試和部署階段。這使你能夠快速可靠地交付功能和更新。
你可以輕松地將 AWS CodePipeline 與第三方服務(例如 GitHub)或你自己的自制插件集成。使用 AWS CodePipeline 時你按需付費即可。它沒有前期費用或長期承諾。
Azure Pipelines
可用它獲取適用于 Linux、macOS 和 Windows 的云托管管道。生成 Web、桌面和移動應用程序。部署到云端或本地。
使用 Pipelines 自動化構(gòu)建和部署流程可以節(jié)約很多時間,從而騰出更多資源投入創(chuàng)造活動。
而 CD 工具主要是為了將復雜的管道自動化,統(tǒng)一團隊目標。目前業(yè)內(nèi)比較常用的 CD 工具包括 Spinnaker、Octopus Deploy 和 AWS CodeDeploy。
Spinnaker
Spinnaker 是一個免費的開源 CD 軟件平臺,最初由 Netflix 開發(fā),不久被谷歌看中并發(fā)展起來。
Spinnaker 是一個多云 CD 平臺,能夠以高速度和強信心來發(fā)布軟件更改。它提供了強大而靈活的管道管理系統(tǒng),并支持與主流云提供商的集成。
Octopus Deploy
Octopus Deploy 是全球領先的 CD 團隊使用的自動部署和發(fā)布管理工具。
Octopus 是一個工具集,可以顯著簡化任何 DevOps 流程,以通過云或虛擬機連續(xù)測試和部署大量微服務或應用程序。
AWS CodeDeploy
AWS CodeDeploy 是一項完全托管的部署服務,可自動將軟件部署到各種計算服務上,例如 Amazon EC2、AWS Fargate、AWS Lambda 和你的本地服務器等。
你可以使用 AWS CodeDeploy 自動執(zhí)行軟件部署,無需容易出錯的手動操作。
配置管理工具
配置管理工具的作用是將基礎架構(gòu)代碼化,加強一致性。目前業(yè)內(nèi)常用的配置管理工具包括 Terraform、BOSH、Chef、Ansible、Puppet、Google Cloud Deployment Manager。
Terraform
Terraform 是由 HashiCorp 創(chuàng)建的開源基礎架構(gòu)即代碼(IaC)軟件工具。它讓用戶能夠使用 Hashicorp 配置語言或 JSON(可選)這兩種高級配置語言來定義和配置數(shù)據(jù)中心基礎架構(gòu)。
BOSH
BOSH 是一個將小型和大規(guī)模云軟件的發(fā)布工程、部署和生命周期管理統(tǒng)一在一起的項目。BOSH 可以在數(shù)百個 VM 上配置和部署軟件。它還能以接近零的停機時間執(zhí)行監(jiān)視、故障恢復和軟件更新任務。
雖然 BOSH 是為了部署 Cloud Foundry 而開發(fā)的,但它也可以用來部署幾乎所有軟件(例如 Hadoop)。BOSH 特別適合大型分布式系統(tǒng)。
此外,BOSH 支持多個基礎架構(gòu)即服務(IaaS)提供商,例如 VMware vSphere、Google Cloud Platform、Amazon WebServices EC2、Microsoft Azure、OpenStack 和阿里云。它帶有一個云提供商界面(CPI),使用戶可以擴展 BOSH 以支持其他 IaaS 提供商,如 Apache CloudStack 和 VirtualBox 等。
Chef
Chef 是一種配置管理工具,用來處理物理服務器、虛擬機和云中的機器設置。許多公司使用 Chef 軟件來控制和管理自己的基礎架構(gòu),他們包括 Facebook、Etsy、Cheezburger 和 Indiegogo 等。
Chef 是持續(xù)自動化軟件領域的領導者、應用程序自動化領域的創(chuàng)新者,也是 DevOps 運動的創(chuàng)始人之一。Chef 與全球 1000 多家最具創(chuàng)新力的公司合作,以實現(xiàn)他們數(shù)字化轉(zhuǎn)型的愿景,并提供可快速交付軟件的實踐和平臺。
Ansible
Ansible 是一種開源的軟件預備、配置管理和應用程序部署工具。它可以在許多類 Unix 系統(tǒng)上運行,既可以配置類 Unix 系統(tǒng)也可以配置微軟 Windows。它自帶聲明式語言來描述系統(tǒng)配置。
Puppet
Puppet 提供的能力可以定義系統(tǒng)所需的軟件和配置,然后在初始設置后保持指定狀態(tài)。
用戶使用與 Ruby 類似的聲明式領域特定語言(DSL)來定義指定環(huán)境或基礎架構(gòu)的配置參數(shù)。Puppet 使用稱為 Facter 的一個實用程序獲取系統(tǒng)信息,該程序跟隨 Puppet 軟件包一并安裝。
Puppet master 是一個系統(tǒng),使用清單來管理它所控制的所有節(jié)點的重要配置信息。
Master 控制的節(jié)點都安裝了 Puppet 并運行 Puppet 代理(即守護程序)。代理收集的節(jié)點配置信息將發(fā)送到 Puppet master。然后,Puppet master 根據(jù)節(jié)點的配置策略來編制一個目錄。每個節(jié)點都使用這些信息來將任何必要的配置更新應用到自己身上。
Puppet 使用的是 pull 模式,在該模式下,代理定期輪詢 master,以檢索特定于站點和節(jié)點的配置。在這種基礎架構(gòu)中,受管理的節(jié)點通常以后臺服務的形式運行 Puppet 代理應用程序。
Google Cloud Deployment Manager
Google Cloud Deployment Manager 是一項基礎架構(gòu)管理服務,可輕松創(chuàng)建、部署和管理 Google Cloud Platform 資源。
云平臺
云平臺主要是為了自動化、觀察軟件的運行時,目前業(yè)內(nèi)常用的云平臺包括 Amazon Web Services、Microsoft Azure、Google Cloud Platform、Pivotal Cloud Foundry、Heroku 和 Container Schedulers。
Amazon Web Services
Amazon Web Services(AWS)是一個安全的云服務平臺,提供計算能力、數(shù)據(jù)庫存儲、內(nèi)容交付等功能,以幫助業(yè)務擴展和成長。
簡單來說,AWS 允許你進行以下操作:
- 在云中運行 Web 和應用程序服務器以托管動態(tài)網(wǎng)站
- 將所有文件安全地存儲在云中,可以從任何地方訪問它們
- 使用托管數(shù)據(jù)庫(如 MySQL、PostgreSQL、Oracle 或 SQLServer)存儲信息
- 使用內(nèi)容交付網(wǎng)絡(CDN)在世界范圍內(nèi)快速交付靜態(tài)和動態(tài)文件
- 向你的眾多客戶發(fā)送大量電子郵件
Microsoft Azure
Microsoft Azure 是由微軟創(chuàng)建的一種云計算服務,可通過微軟管理的數(shù)據(jù)中心構(gòu)建、測試、部署和管理應用程序和服務。
Microsoft Azure(以前稱為 Windows Azure)是微軟的公共云計算平臺。它提供了多種云服務,包括計算、分析、存儲和網(wǎng)絡等用途。用戶可以在這些服務中挑選自己所需的選項,以在公有云中開發(fā)和擴展新的應用程序,或運行現(xiàn)有應用程序。
Google Cloud Platform
由谷歌提供的 Google Cloud Platform 是一套云計算服務,運行在谷歌內(nèi)部為其最終用戶產(chǎn)品(例如 Google Search、Gmail 和 YouTube)打造的同一套基礎架構(gòu)上。
Google Cloud Platform 提供了計算資源,用于在 Web 上部署和運營應用程序。它的專長是為個人和企業(yè)提供構(gòu)建和運行軟件的場所,并使用 Web 來連接軟件用戶。
谷歌的云計算服務可幫助你直面各種業(yè)務挑戰(zhàn),包括數(shù)據(jù)管理、混合和多云以及 AI 和 ML 等。
Pivotal Cloud Foundry
Pivotal Cloud Foundry(PCF)是一個開源、多云的應用程序平臺即服務(PaaS),由 501 組織 Cloud Foundry Foundation 管理。該軟件最初由 VMware 開發(fā),但之后轉(zhuǎn)移到了 Pivotal Software。隨著 VMware 于 2019 年底收購 Pivotal,它也重新回到了 VMware。
PCF 是用于部署、管理和持續(xù)交付應用程序、容器和函數(shù)的多云平臺。PCF 允許開發(fā)人員快速部署和交付軟件,而無需管理底層基礎架構(gòu)。
Heroku
Heroku 是一種支持多種編程語言的云 PaaS。Heroku 是最早的云平臺之一,自 2007 年 6 月就開始開發(fā)了;當時它僅支持 Ruby 編程語言,但現(xiàn)在支持 Java、Node.js、Scala、Clojure、Python、PHP 和 Go。
Heroku 是基于容器的云 PaaS。開發(fā)人員使用 Heroku 來部署、管理和擴展現(xiàn)代應用程序。這一平臺優(yōu)雅、靈活且易于使用,為開發(fā)人員提供了將自己的應用推向市場的最簡單途徑。
容器調(diào)度程序
容器調(diào)度程序的主要任務是在最合適的主機上啟動容器,并將它們連接起來。它必須具備自動故障轉(zhuǎn)移能力,并且在數(shù)據(jù)太多,單個實例無法處理 / 計算時擴展容器。
三種最受歡迎的容器調(diào)度程序分別是 Docker Swarm、Apache Mesos 和 Kubernetes。
Docker Swarm
DockerSwarm 是 Docker 開發(fā)的容器調(diào)度程序。由 Docker 開發(fā)的這個集群解決方案提供了很多優(yōu)勢,比如說它使用了標準的 Docker API。Swarm 的架構(gòu)由兩大元素組成:
Docker Swarm 架構(gòu),?Alexandre Beslic(DockerInc.)
Apache Mesos 和 Mesosphere Marathon
Mesos 的目的是建立一個可擴展且高效的系統(tǒng),以支持當前和將來的各種框架。這也是主要問題所在:Hadoop 和 MPI 之類的框架都是獨立開發(fā)的,因此無法在各個框架之間進行細粒度的共享。
Mesos 的對策是添加一個資源共享薄層,為框架提供訪問集群資源的公共接口。Mesos 正在將對調(diào)度的控制權委派給框架,因為許多框架已經(jīng)實現(xiàn)了復雜的調(diào)度機制。
根據(jù)要在集群上運行的作業(yè)類型可以將框架分為四類,其中一些具有 Marathon 之類的原生 Docker 支持。Mesos 0.20.0 中添加了對 Docker 容器的支持。
我們將重點介紹 Mesos 與 Marathon 的搭配用法,因為后者是 Mesosphere 積極維護的框架,在調(diào)度方面提供了許多功能,如約束、運行狀況檢查、服務發(fā)現(xiàn)和負載平衡等。
使用 Marathon 的 Apache Mesos 架構(gòu),?AdrianMouat
如圖所見,集群中有四個元素。ZooKeeper 幫助 Marathon 查找 Mesos master 的地址,可以使用多個實例來處理故障。
Marathon 負責啟動、監(jiān)視并擴展容器。Mesos master 將分配給節(jié)點的任務發(fā)送給 Marathon,并在節(jié)點具有一些可用的 CPU/RAM 時向 Marathon 提出要約。Mesos slaves 負責運行容器并提交自身可用資源的列表。
Kubernetes
Kubernetes 是用于 Docker 容器的編排系統(tǒng),使用標簽和 pods 的概念將容器分為許多邏輯單元。Pod 是 Kubernetes 與其他兩種解決方案之間的主要區(qū)別所在——它們是位于同一地點的容器的集合,共同組成部署和調(diào)度服務。與基于基于相似性的容器協(xié)同調(diào)度機制(如 Swarm 和 Mesos)相比,這種方法簡化了集群的管理。
Kubernetes 調(diào)度程序的任務是監(jiān)視 PodSpec 為空的 Pod。NodeName 賦予一個值,以將容器調(diào)度在集群中的某個位置。
這是與 Swarm 和 Mesos 不一樣的地方,因為 Kubernetes 允許開發(fā)人員在運行 Pod 時通過定義 PodSpec.NodeName 來繞過調(diào)度程序。
調(diào)度程序使用謂詞和優(yōu)先級來定義容器應運行的節(jié)點。這些參數(shù)的默認值可以使用新的調(diào)度程序策略配置覆蓋。
如果使用命令行標志 policy-config-file 指向描述啟動 Kubernetes 時要使用的謂詞和優(yōu)先級的 JSON 文件,調(diào)度程序就會使用管理員定義的策略。
Kubernetes 架構(gòu)(灰色部分是容器,彩色部分是 pods),?GoogleInc.
監(jiān)控和記錄工具
監(jiān)控和記錄工具主要是為了在發(fā)生故障時快速響應,快速恢復,同時減少事故期間的人員參與。目前業(yè)內(nèi)比較常用的監(jiān)控和記錄工具包括 ELK Stack、Datadog、New Relic、Prometheus、Zipkin 和 Azure Monitor。
ELK Stack
ELK Stack 是三個開源產(chǎn)品的集合——它們分別是 Elasticsearch、Logstash 和 Kibana。它們都是由 Elastic 公司開發(fā)、管理和維護的。
E 代表 ElasticSearch,用于存儲日志
L 代表 Logstash,用于傳輸、處理和存儲日志
K 代表 Kibana,是一種可視化工具(Web 界面)
Datadog
Datadog 是針對云規(guī)模應用程序的監(jiān)視服務,可通過基于 SaaS 的數(shù)據(jù)分析平臺來監(jiān)視服務器、數(shù)據(jù)庫、工具和服務。
Datadog Application Performance Monitoring(APM 或跟蹤)可與你的日志和基礎架構(gòu)監(jiān)視器并用,提供自動生成的儀表板(用于監(jiān)視關鍵指標,如請求量和延遲)乃至單個請求的跟蹤細節(jié),幫助你深入了解應用程序的性能表現(xiàn)。
應用程序收到請求時,Datadog 可以在整個分布式系統(tǒng)上查看跟蹤,并向你顯示關于該請求狀況的詳細系統(tǒng)數(shù)據(jù)。
New Relic
New Relic 是一家位于加州舊金山的技術公司,致力于開發(fā)基于云的軟件,以幫助網(wǎng)站和應用程序所有者跟蹤服務性能。
New Relic 開發(fā)的用于應用程序性能監(jiān)視(APM)的軟件分析產(chǎn)品,可提供有關 Web 應用程序性能以及最終用戶體驗滿意度的實時和趨勢數(shù)據(jù)。
Prometheus
Prometheus 是用于事件監(jiān)視和警報的免費軟件應用程序。它將實時指標記錄在一個時間序列數(shù)據(jù)庫中,該數(shù)據(jù)庫使用 HTTP 拉取模型構(gòu)建,支持靈活查詢和實時警報。
Prometheus 服務器的工作方式是抓取,也就是調(diào)用監(jiān)視器上配置的各個節(jié)點的指標端點。它定期收集這些指標并將其存儲在本地。節(jié)點在 Prometheus 服務器抓取的端點上公開這些指標。
Zipkin
Zipkin 是一個分布式跟蹤系統(tǒng)。它能收集用來解決服務架構(gòu)中延遲問題所需的時序數(shù)據(jù)。其功能包括收集和查找這類數(shù)據(jù)。
如果日志文件中有跟蹤 ID,則你可以直接跳至該跟蹤 ID。否則,你可以基于屬性來查詢,可用屬性包括服務、操作名稱、tagsm 和持續(xù)時間等。系統(tǒng)會為你總結(jié)一些有趣的數(shù)據(jù),例如在一個服務中花費的時間百分比,以及操作是否失敗等。
Azure Monitor
Azure Monitor 提供了一個全面的解決方案,從你的云和本地環(huán)境中收集、分析數(shù)據(jù)和執(zhí)行遙測任務,從而最大程度地提高應用程序和服務的可用性和性能。
它可以幫助你了解應用程序的性能,并主動識別影響它們的問題以及它們所依賴的資源。
你可以使用 Azure Monitor 做很多事情,例如:
- 使用 Application Insights 檢測和診斷跨應用程序和依賴項的問題
- 將基礎架構(gòu)問題與分別適用于 VM/ 容器的 AzureMonitor 相關聯(lián)
- 使用 Log Analytics 深度分析監(jiān)視數(shù)據(jù),以進行故障排除和深度診斷
- 通過智能警報和自動化操作支持大規(guī)模運營
- 使用 Azure 儀表板和工作簿創(chuàng)建可視化內(nèi)容
通訊工具
通訊工具主要是用于多團隊溝通,減少等待時間,改善協(xié)作能力。目前業(yè)內(nèi)比較常用的通訊工具包括 Slack、Microsoft Teams、Google Hangouts 和 Zoom。
Slack
Slack 是 Slack Technologies 開發(fā)的專用即時消息平臺。
Slack 本質(zhì)上是整個公司的聊天室,旨在取代電子郵件作為你交流和共享信息的主要方法。它的工作空間使你可以按頻道來組織小組討論,并支持私信功能,可以一站式共享信息和文件等。
Microsoft Teams
Microsoft Teams 是一個統(tǒng)一的通信和協(xié)作平臺,提供了可靠的工作聊天、視頻會議、文件存儲和應用程序集成特性。
Teams 是基于聊天的協(xié)作工具,可為跨越全球、遠程和分散的團隊提供在一個公共空間共同工作和共享信息的能力。它有一些很酷的功能,如文檔協(xié)作、一對一聊天和團隊聊天等等。
Google Hangouts
Google Hangouts 是谷歌開發(fā)的一種通訊軟件產(chǎn)品。Hangouts 最初是 Google 的功能,后來在 2013 年成為獨立產(chǎn)品,當時谷歌也開始將 Google Messenger 和 Google Talk 的功能集成到 Hangouts 中。
Hangouts Chat 是一種與組織中的成員交流的有效方法。你可以向一位或多位同事發(fā)送消息,創(chuàng)建空間來與多人開始持續(xù)會話,并使用機器助手來幫助你自動化操作。Chat 可在你的計算機瀏覽器以及適用于 Android 和 iOS 的移動應用中使用。
Zoom
Zoom Video Communications 是一家遠程會議服務公司,總部位于加州圣何塞。它提供了將視頻會議、在線會議、聊天和移動協(xié)作結(jié)合在一起的遠程會議服務。
對于尋求整體業(yè)務解決方案的團隊來說,Skype 是更好的選擇。Zoom 非常適合經(jīng)常進行視頻聊天和會議的團隊。但是,這兩種工具都不是專門為遠程工作而構(gòu)建的。
知識共享工具
知識共享工具主要是為了提高新員工的生產(chǎn)力,減少重復錯誤。目前比較常用的知識共享工具包括 GitHub Pages、Confluence、Jekyll 和 Google Sites。
GitHub Pages
GitHub Pages 是一種靜態(tài)站點托管服務,可直接從 GitHub 上的存儲庫中獲取 HTML、CSS 和 JavaScript 文件,還可以在構(gòu)建過程中運行這些文件并發(fā)布網(wǎng)站。你可以在 GitHub Pages 示例集合中查看 GitHub Pages 網(wǎng)站的示例。
Confluence
Confluence 是 Atlassian 開發(fā)和發(fā)行的協(xié)作軟件程序。Atlassian 用 Java 編程語言編寫了 Confluence,并于 2004 年首次發(fā)布。
Confluence 是一個協(xié)作 Wiki 工具,用于幫助團隊有效地協(xié)作和共享知識。借助 Confluence,你可以在 Team Calendars 附加組件的幫助下捕獲項目需求、向特定用戶分配任務,還能一次管理多個日歷。
Jekyll
Jekyll 是一個簡單的,博客型的靜態(tài)網(wǎng)站生成器,可用于個人、項目或組織的網(wǎng)站生成。它是由 GitHub 的聯(lián)合創(chuàng)始人 Tom Preston-Werner 用 Ruby 編寫的,根據(jù)開源 MIT 許可發(fā)行。
Jekyll 是一個解析引擎,打包為一個 Ruby gem,用來從動態(tài)組件(例如模板、部件、液態(tài)代碼、markdown 等)構(gòu)建靜態(tài)網(wǎng)站。Jekyll 被稱為“簡單、博客型的靜態(tài)站點生成器”。
Google Sites
Google Sites 是谷歌提供的結(jié)構(gòu)化 Wiki 和網(wǎng)頁創(chuàng)建工具。Google Sites 宣稱的目標是讓任何人都能夠創(chuàng)建讓不同編輯者協(xié)作的簡單網(wǎng)站。
你們可以一起用它為團隊、項目或活動創(chuàng)建引人入勝的高質(zhì)量站點。這些網(wǎng)站在各種設備的屏幕上看起來都很漂亮——所有這些工作都無需學習設計或編程知識。
小結(jié)
本文介紹整個 DevOps 工具鏈——包括規(guī)劃工具、問題跟蹤工具、源代碼管理、構(gòu)建和測試代碼、持續(xù)集成和部署源代碼、管理配置、使用云平臺、監(jiān)控和記錄等工具,后面還有溝通和知識共享這些軟工具的介紹。
DevOps 是一種令人興奮的工作方式。這不是唯一可行的方法,甚至可能不是最好的方法,將來可能會出現(xiàn)更好的選擇。但就目前而言,這是一種團隊集體合作,且是通過可持續(xù)的方式運送重要價值的好方法,它能夠幫助團隊成員專注于客戶,而不是 IT 效率。