0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何實(shí)現(xiàn)DevOps目標(biāo)的核心技術(shù)類別和具體技術(shù)

jf_ro2CN3Fa ? 來(lái)源:芋道源碼 ? 2023-06-25 15:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 關(guān)于 DevOps 及其工具

2 計(jì)劃工具

3 問(wèn)題跟蹤

4 源碼控制

5 構(gòu)建工具

6 測(cè)試工具

7 持續(xù)集成(CI)和持續(xù)部署(CD)

8 配置管理工具

9 云平臺(tái)

10監(jiān)控和日志工具

11 通信工具

12 知識(shí)分享工具

13 總結(jié)

本篇文章中將介紹一些能夠幫助你實(shí)現(xiàn) DevOps 目標(biāo)的核心技術(shù)類別和具體技術(shù)。

1 關(guān)于 DevOps 及其工具

關(guān)于 DevOps 及其工具,需要記住:

持續(xù)改進(jìn)是目標(biāo);

DevOps 不是花錢買來(lái)的;

分階段采用工具。

基于 Spring Boot + MyBatis Plus + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

項(xiàng)目地址:https://github.com/YunaiV/ruoyi-vue-pro

視頻教程:https://doc.iocoder.cn/video/

2 計(jì)劃工具

為什么計(jì)劃工具對(duì)于 DevOps 來(lái)說(shuō)很重要?

分享目標(biāo);

透明性;

賦能。

計(jì)劃工具示例

GitLab

GitLab 是一個(gè)基于 Web 的 DevOps 生命周期工具。它提供了一個(gè) Git 倉(cāng)庫(kù)管理器,具備 wiki、問(wèn)題跟蹤和 CI/CD 管道功能,采用的是 GitLab 公司的開源許可。

Tasktop

Tasktop 允許將所有這些工具添加到敏捷、ALM、PPM 和 ITSM 中,實(shí)現(xiàn)了對(duì)整個(gè)生命周期前所未有的可見性。

CollabNet VersionOne

VersionOne 支持 Scrum、看板、XP、SAFe 和混合開發(fā)方法,并使跨團(tuán)隊(duì)、程序、軟件組合和企業(yè)的計(jì)劃、跟蹤和報(bào)告變得更容易。

Pivotal Tracker

敏捷項(xiàng)目管理工具,是開發(fā)人員圍繞高優(yōu)先級(jí)共享 backlog 進(jìn)行實(shí)時(shí)協(xié)作的首選工具。

Trello

Trello 是一個(gè)基于 Web 的看板風(fēng)格的清單應(yīng)用程序,是 Atlassian 的子公司。

很多團(tuán)隊(duì)用它來(lái)計(jì)劃各自的工作 sprint。

Azure Boards

使用敏捷工具,包括 Scrum、看板和其他敏捷方法儀表板來(lái)更好地跟蹤軟件項(xiàng)目并進(jìn)行計(jì)劃。

這些都是可視化工作、分享計(jì)劃、跟蹤進(jìn)展、確保朝著目標(biāo)前進(jìn)的好方法。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

項(xiàng)目地址:https://github.com/YunaiV/yudao-cloud

視頻教程:https://doc.iocoder.cn/video/

3 問(wèn)題跟蹤

為什么問(wèn)題跟蹤對(duì) DevOps 來(lái)說(shuō)很重要?

用戶響應(yīng);

減少知識(shí)損耗;

反饋閉環(huán)。

問(wèn)題跟蹤工具示例

Atlassian Jira

Jira 是由 Atlassian 公司開發(fā)的問(wèn)題跟蹤產(chǎn)品,提供了 bug 跟蹤和敏捷項(xiàng)目管理功能。

JetBrains YouTrack

YouTrack 是 JetBrains 公司開發(fā)的一款基于瀏覽器的 bug 跟蹤、問(wèn)題跟蹤系統(tǒng)和項(xiàng)目管理軟件。它支持基于查詢的問(wèn)題搜索——包括自動(dòng)完成、批量處理問(wèn)題、定制問(wèn)題屬性集以及創(chuàng)建自定義工作流。

Zendesk

Zendesk 讓客戶問(wèn)題跟蹤變得更簡(jiǎn)單,包括優(yōu)步和 Airbnb 在內(nèi)的很多公司都使用 Zendesk 作為他們的問(wèn)題跟蹤軟件。

4 源碼控制

為什么源碼控制對(duì) DevOps 來(lái)說(shuō)很重要?

資產(chǎn)管控;

減少傳輸損耗;

促進(jìn)團(tuán)隊(duì)合作。

SCM 工具示例

Git

Git 是一個(gè)分布式版本控制系統(tǒng),用于在軟件開發(fā)期間跟蹤源代碼的變更。它是為協(xié)調(diào)程序員之間的工作而設(shè)計(jì)的,但它也可用于跟蹤文件的變更。它專注于速度、數(shù)據(jù)完整性和對(duì)分布式、非線性工作流的支持。

GitHub

GitHub 提供了 Git 分布式版本控制和源代碼管理功能,以及自有的一些特性。

GitLab

GitLab 的版本控制通過(guò)世界級(jí)的源代碼管理功能幫助你的開發(fā)團(tuán)隊(duì)共享、協(xié)作和最大化他們的生產(chǎn)力。

Bitbucket

Bitbucket 是 Atlassian 公司為使用 Mercurial 或 Git 版本控制系統(tǒng)的源代碼和開發(fā)項(xiàng)目提供的基于 Web 的版本控制代碼庫(kù)托管服務(wù)。

Subversion

Apache Subversion 是一種軟件版本控制系統(tǒng),采用了 Apache 開發(fā)源碼許可。軟件開發(fā)人員使用 Subversion 來(lái)維護(hù)文件的當(dāng)前和歷史版本,例如源代碼、Web 頁(yè)面和文檔。

5 構(gòu)建工具

為什么構(gòu)建工具對(duì) DevOps 來(lái)說(shuō)很重要?

一致的打包效果;

自動(dòng)化錯(cuò)誤探測(cè);

盡早發(fā)現(xiàn)質(zhì)量問(wèn)題。

構(gòu)建工具示例

Maven/Gradle

Maven 是一個(gè)主要用于 Java 項(xiàng)目的自動(dòng)化構(gòu)建工具。Maven 還可以用來(lái)構(gòu)建和管理用 C#、Ruby、Scala 和其他語(yǔ)言開發(fā)的項(xiàng)目。

Gradle 是一個(gè)開源的自動(dòng)化構(gòu)建系統(tǒng),基于 Apache Ant 和 Apache Maven 的概念,引入了一種基于 groovy 的領(lǐng)域特定語(yǔ)言。

MSBuild

Microsoft Build Engine,更廣為人知的名字是 MSBuild,是一個(gè)開源免費(fèi)的托管代碼和原生 C++ 代碼構(gòu)建工具集,是.Net Framework 的一部分。Visual Studio 就使用 MSBuild 作為構(gòu)建工具。

Rake

Rake 是一個(gè)軟件任務(wù)管理和自動(dòng)化構(gòu)建工具。用戶可以指定任務(wù)和描述依賴關(guān)系,還可以對(duì)同一個(gè)命名空間中的組任務(wù)指定和描述依賴關(guān)系。

JFrog Artifactory

JFrog Artifactory 是一種用于保存構(gòu)建過(guò)程所產(chǎn)生的用于發(fā)布和部署的二進(jìn)制文件的工具。Artifactory 提供了多種包格式支持,如 Maven、Debian、npm、Helm、Ruby、Python 和 Docker。

JFrog 提供了高可用性、復(fù)制、災(zāi)難恢復(fù)、可伸縮性,并可集成很多自有和云存儲(chǔ)產(chǎn)品。

Sonatype Nexus

Sonatype Nexus 是一個(gè)存儲(chǔ)庫(kù)管理器??捎糜诖?、收集和管理依賴項(xiàng),這樣就不用經(jīng)常為一堆的 jar 文件感到煩惱。它讓軟件的發(fā)行變得更容易。

在內(nèi)部,你可以配置構(gòu)建工具,把工件發(fā)布到 Nexus,然后其他開發(fā)人員就可以使用它們了。

NuGet

NuGet 是.Net 包管理器。NuGet 客戶端工具提供了生成和使用包的能力。

NuGet Gallery 是程序包作者和使用者的中心包倉(cāng)庫(kù)。

6 測(cè)試工具

為什么測(cè)試工具對(duì) DevOps 來(lái)說(shuō)很重要?

將注意力放在質(zhì)量上;

提升產(chǎn)品信心。

測(cè)試工具示例

JUnit

JUnit 是一個(gè)用于 Java 的單元測(cè)試框架。JUnit 在測(cè)試驅(qū)動(dòng)開發(fā)當(dāng)中扮演著非常重要的角色,它是單元測(cè)試框架家族 xUnit(源于 SUnit) 的一員。

xUnit.net

xUnit.net 是一個(gè)用于.Net Framework 的開源單元測(cè)試工具,由 NUnit 的原作者開發(fā)。

Selenium

Selenium 是用于測(cè)試 Web 應(yīng)用程序的框架。Selenium 提供了一個(gè)回放工具,用于編寫功能測(cè)試,省去了學(xué)習(xí)腳本語(yǔ)言的麻煩。

Jasmine

Jasmine 是一個(gè)開源的 JavaScript 測(cè)試框架。它的目標(biāo)是可以在任何支持 JavaScript 的平臺(tái)上運(yùn)行,不干擾應(yīng)用程序或 IDE,并具有易于閱讀的語(yǔ)法。它深受其他單元測(cè)試框架的影響,比如 Screw.Unit、JSSpec、JSpec 和 RSpec。

Cucumber

Cucumber 是一個(gè)支持行為驅(qū)動(dòng)開發(fā)的工具。Cucumber BDD 方法的核心是一個(gè)叫作 Gherkin 的語(yǔ)言解析器,可以用用戶能夠理解的邏輯語(yǔ)言來(lái)指定預(yù)期的軟件行為。

7 持續(xù)集成(CI)和持續(xù)部署(CD)

為什么持續(xù)集成和部署對(duì) DevOps 來(lái)說(shuō)很重要?

快速反饋;

減少缺陷和等待時(shí)間。

CI 工具示例

Jenkins

Jenkins 是一個(gè)免費(fèi)開源的自動(dòng)化服務(wù)器。Jenkins 幫助自動(dòng)化軟件開發(fā)過(guò)程中的非人為操作部分。它是一個(gè)基于服務(wù)器的系統(tǒng),運(yùn)行在 Servlet 容器中,比如 Apache Tomcat。

CircleCI

CircleCI 是全球最大的共享 CI/CD 平臺(tái),是代碼從想法變成可交付產(chǎn)品的中心樞紐。

作為最常用的 DevOps 工具之一,CircleCI 每天要處理超過(guò) 100 萬(wàn)個(gè)構(gòu)建任務(wù),它可以訪問(wèn)到工程團(tuán)隊(duì)協(xié)作以及代碼運(yùn)行的數(shù)據(jù)。Spotify、Coinbase、Stitch Fix 和 BuzzFeed 等公司都使用 CircleCI 來(lái)提高工程團(tuán)隊(duì)的工作效率,發(fā)布更好的產(chǎn)品。

Travis CI

Travis CI 是一個(gè)托管的 CI 服務(wù),用于構(gòu)建和測(cè)試托管在 GitHub 上的軟件項(xiàng)目。Travis CI 為私人項(xiàng)目提供各種付費(fèi)計(jì)劃和免費(fèi)開源計(jì)劃。TravisPro 部署在客戶自己的硬件上,提供專有版本的定制部署。

Concourse

Concourse 是一個(gè)用 Go 開發(fā)的自動(dòng)化系統(tǒng),最常用于 CI/CD,用于伸縮任何類型 (從簡(jiǎn)單到復(fù)雜的) 的自動(dòng)化管道。

AWS CodePipeline

AWS CodePipeline 是一個(gè)全托管的 CD 服務(wù),可以幫助你自動(dòng)化發(fā)布管道,以便快速可靠地更新應(yīng)用程序和基礎(chǔ)設(shè)施。

每當(dāng)發(fā)生代碼變更時(shí),CodePipeline 會(huì)根據(jù)你定義的發(fā)布模型自動(dòng)化發(fā)布過(guò)程的構(gòu)建、測(cè)試和部署階段,讓你能夠快速、可靠地交付特性和更新。

你可以輕松地將 AWS 代碼管道與第三方服務(wù) (如 GitHub) 或自定義插件集成。在使用 AWS CodePipeline 時(shí),你只需要為所使用的內(nèi)容付費(fèi),沒(méi)有預(yù)付費(fèi)用。

Azure Pipelines

Linux、macOS 和 Windows 建立云托管管道。構(gòu)建 Web、桌面和移動(dòng)應(yīng)用程序,并將其部署到云端或本地。

通過(guò)管道自動(dòng)化構(gòu)建和部署,減少在具體細(xì)節(jié)上花費(fèi)的時(shí)間,把更多的時(shí)間花在創(chuàng)造性的事情上。

CD 工具

為什么 CD 工具對(duì)于 DevOps 來(lái)說(shuō)很重要?

減少預(yù)發(fā)布庫(kù)存;

自動(dòng)化復(fù)雜的管道;

統(tǒng)一團(tuán)隊(duì)為客戶創(chuàng)造價(jià)值的目標(biāo)。

CD 工具示例

Spinnaker

Spinnaker 是一個(gè)免費(fèi)開源的 CD 軟件平臺(tái),最初由 Netflix 開發(fā),后被谷歌收購(gòu),并進(jìn)行了擴(kuò)展。

Spinnaker 是一個(gè)多云 CD 平臺(tái),用于快速發(fā)布軟件變更。它將強(qiáng)大而靈活的管道管理系統(tǒng)與主要云提供商的集成結(jié)合在了一起。

Octopus Deploy

Octopus Deploy 是一個(gè)自動(dòng)化的部署和發(fā)布管理工具,全球領(lǐng)先的 CD 團(tuán)隊(duì)都在使用它。

Octopus 是一個(gè)工具集,可以極大簡(jiǎn)化 DevOps 過(guò)程,通過(guò)云或虛擬機(jī)對(duì)大量微服務(wù)或應(yīng)用程序進(jìn)行持續(xù)測(cè)試和部署。

AWS CodeDeploy

AWS CodeDeploy 是一種全托管的部署服務(wù),可以將軟件部署自動(dòng)化到各種計(jì)算服務(wù),如 Amazon EC2、AWS Fargate、AWS Lambda 和本地服務(wù)器。

你可以使用 AWS CodeDeploy 來(lái)自動(dòng)化軟件部署,減少容易出錯(cuò)的手動(dòng)操作。

8 配置管理工具

配置管理工具為什么對(duì)于 DevOps 來(lái)說(shuō)很重要?

保持一致性;

基礎(chǔ)設(shè)施即代碼。

配置管理工具示例

Terraform

Terraform 是 HashiCorp 公司開發(fā)的開源基礎(chǔ)結(jié)構(gòu)即代碼 (IaC) 軟件工具。用戶可以使用一種高級(jí)配置語(yǔ)言 (叫作 Hashicorp 配置語(yǔ)言或 JSON) 來(lái)定義和提供數(shù)據(jù)中心基礎(chǔ)設(shè)施。

BOSH

BOSH 是一個(gè)將小型和大型云軟件的發(fā)布工程、部署和生命周期管理結(jié)合起來(lái)的項(xiàng)目。BOSH 可以基于數(shù)百個(gè) VM 配置和部署軟件。它還可以執(zhí)行監(jiān)空、故障恢復(fù)和軟件更新,沒(méi)有停機(jī)時(shí)間或者停機(jī)時(shí)間很短。

雖然開發(fā) BOSH 是為了部署云計(jì)算,但它也可以用于部署幾乎任何其他軟件 (例如 Hadoop)。BOSH 特別適合大型分布式系統(tǒng)。

此外,BOSH 還支持多種基礎(chǔ)設(shè)施即服務(wù) (IaaS) 提供商,如 VMware vSphere、谷歌云平臺(tái)、Amazon Web Services EC2、Microsoft Azure、OpenStack 和阿里巴巴云。BOSH 提供了一個(gè)云供應(yīng)商接口 (CPI),用戶可用它擴(kuò)展 BOSH,以便支持其他 IaaS 提供商,如 Apache CloudStack 和 VirtualBox。

Chef

Chef 是一個(gè)配置管理工具,用于處理物理服務(wù)器、虛擬機(jī)和云端的機(jī)器配置。很多公司用 Chef 控制和管理他們的基礎(chǔ)設(shè)施,如 Facebook、Etsy、Cheezburger 和 Indiegogo。

Chef 公司是持續(xù)自動(dòng)化軟件的領(lǐng)導(dǎo)者、應(yīng)用自動(dòng)化的革新者以及 DevOps 運(yùn)動(dòng)的發(fā)起者之一。Chef 與全球 1000 多家最具創(chuàng)新性的公司合作,提供快速交付軟件的實(shí)踐和平臺(tái),以實(shí)現(xiàn)他們的數(shù)字化轉(zhuǎn)型愿景。

Ansible

Ansible 是一款開源的軟件配置、配置管理和應(yīng)用程序部署工具。它運(yùn)行在 Unix 家族系統(tǒng)上,可以配置 Unix 家族系統(tǒng)和 Windows。它可以使用自己的聲明性語(yǔ)言來(lái)描述系統(tǒng)配置。

Puppet

Puppet 提供了定義系統(tǒng)需要哪些軟件和配置的能力,然后在初始設(shè)置之后維護(hù)指定的狀態(tài)。

Puppet 使用與 Ruby 類似的聲明性領(lǐng)域特定語(yǔ)言 (DSL) 為特定環(huán)境或基礎(chǔ)設(shè)施定義配置參數(shù)。Puppet 通過(guò)使用一個(gè)叫作 Facter 的實(shí)用程序來(lái)發(fā)現(xiàn)系統(tǒng)信息,F(xiàn)acter 是在安裝 Puppet 軟件包時(shí)一起安裝的。

Puppet 主節(jié)點(diǎn)通過(guò)清單來(lái)管理它所控制的所有節(jié)點(diǎn)的重要配置信息。

被主節(jié)點(diǎn)控制的其他節(jié)點(diǎn)安裝了 Puppet 并運(yùn)行 Puppet 代理 (一個(gè)守護(hù)進(jìn)程)。代理節(jié)點(diǎn)收集的有關(guān)節(jié)點(diǎn)的配置信息將發(fā)送給主節(jié)點(diǎn)。主節(jié)點(diǎn)根據(jù)應(yīng)該如何配置來(lái)編譯目錄,其他節(jié)點(diǎn)使用這些信息來(lái)更新自己的配置。

Puppet 使用了拉取模式,代理節(jié)點(diǎn)定時(shí)輪詢主機(jī),查詢特定于站點(diǎn)和特定于節(jié)點(diǎn)的配置。在這個(gè)基礎(chǔ)設(shè)施中,Puppet 代理應(yīng)用程序通常作為后臺(tái)服務(wù)運(yùn)行在托管節(jié)點(diǎn)上。

谷歌云部署管理器

谷歌云部署管理器是一種基礎(chǔ)設(shè)施管理服務(wù),讓谷歌云平臺(tái)資源的創(chuàng)建、部署和管理變得更簡(jiǎn)單。

9 云平臺(tái)

為什么云平臺(tái)對(duì) DevOps 來(lái)說(shuō)很重要?

友好的自動(dòng)化;

具有可觀察性的運(yùn)行時(shí)。

云平臺(tái)示例

Amazon Web Service

Amazon Web Service(AWS) 是一個(gè)安全的云服務(wù)平臺(tái),提供計(jì)算能力、數(shù)據(jù)庫(kù)存儲(chǔ)、內(nèi)容交付和其他幫助企業(yè)擴(kuò)大規(guī)模和增長(zhǎng)的功能。

簡(jiǎn)而言之,AWS 可以做以下這些事情:

在云端運(yùn)行 Web 和應(yīng)用服務(wù)器,托管動(dòng)態(tài)網(wǎng)站;

將所有文件安全地存儲(chǔ)在云端,這樣你就可以從任何地方訪問(wèn)它們;

使用托管數(shù)據(jù)庫(kù),如 MySQL、PostgreSQL、Oracle 或 SQL Server 來(lái)存儲(chǔ)信息;

使用內(nèi)容分發(fā)網(wǎng)絡(luò) (CDN) 在世界各地快速交付靜態(tài)和動(dòng)態(tài)文件;

批量發(fā)送電子郵件給你的客戶。

微軟 Azure

微軟 Azure 是微軟創(chuàng)建的云計(jì)算服務(wù),通過(guò)微軟數(shù)據(jù)中心構(gòu)建、測(cè)試、部署和管理應(yīng)用程序和服務(wù)。

微軟 Azure,原來(lái)叫作 Windows Azure,是微軟的公共云計(jì)算平臺(tái)。它提供一系列云服務(wù),包括計(jì)算、分析、存儲(chǔ)和網(wǎng)絡(luò)。用戶可以選擇這些服務(wù)來(lái)開發(fā)和擴(kuò)展新的應(yīng)用程序,或者在公共云中運(yùn)行現(xiàn)有的應(yīng)用程序。

谷歌云平臺(tái)

谷歌云平臺(tái)由谷歌提供,是一套云計(jì)算服務(wù),運(yùn)行在谷歌用來(lái)運(yùn)行其終端用戶產(chǎn)品 (如谷歌搜索、Gmail 和 YouTube) 相同的基礎(chǔ)設(shè)施上。

谷歌云平臺(tái)提供在 web 上部署應(yīng)用程序所需的計(jì)算資源,專注于為個(gè)人和企業(yè)提供一個(gè)構(gòu)建和運(yùn)行軟件的地方,并通過(guò) Web 連接軟件用戶。

你使用谷歌提供的云計(jì)算服務(wù)來(lái)迎接業(yè)務(wù)方面的挑戰(zhàn),包括數(shù)據(jù)管理、混合和多云、人工智能機(jī)器學(xué)習(xí)。

Pivotal Cloud Foundry

Pivotal Cloud Foundry (PCF) 是一個(gè)開源的多云應(yīng)用平臺(tái)即服務(wù) (PaaS),由 501 組織 Cloud Foundry Foundation 負(fù)責(zé)管理。該軟件最初由 VMware 開發(fā),后來(lái)轉(zhuǎn)到 Pivotal 軟件公司。2019 年底,隨著 VMware 收購(gòu) Pivotal,又被帶回到 VMware。

PCF 是一個(gè)用于部署、管理和持續(xù)交付應(yīng)用程序、容器和功能的多云平臺(tái)。PCF 允許開發(fā)人員快速部署和交付軟件,而不需要管理底層基礎(chǔ)設(shè)施。

Heroku

Heroku 是一個(gè)支持多種編程語(yǔ)言的云 PaaS。作為首批云平臺(tái)之一,Heroku 從 2007 年 6 月就開始開發(fā),當(dāng)時(shí)它只支持 Ruby 編程語(yǔ)言,但現(xiàn)在支持 Java Node.js、Scala、Clojure、Python、PHP 和 Go。

Heroku 是一個(gè)基于容器的云 PaaS。開發(fā)人員使用 Heroku 來(lái)部署、管理和擴(kuò)展現(xiàn)代應(yīng)用程序。這個(gè)平臺(tái)優(yōu)雅、靈活、易于使用,為開發(fā)人員提供了發(fā)布應(yīng)用程序最簡(jiǎn)單的途徑。

中國(guó)云廠商(編者補(bǔ)充)

阿里云、騰訊云、華為云、京東云等各類型廠商都是國(guó)內(nèi)用戶的可選項(xiàng)。

容器調(diào)度器

容器調(diào)度程序的主要任務(wù)是在最合適的主機(jī)上啟動(dòng)容器并將它們連接在一起。它必須通過(guò)自動(dòng)故障轉(zhuǎn)移來(lái)處理故障,并且當(dāng)單個(gè)實(shí)例有太多數(shù)據(jù)需要處理 / 計(jì)算時(shí),它需要能夠擴(kuò)展容器。

三個(gè)最流行的容器調(diào)度器是 Docker Swarm、Apache Mesos 和 Kubernetes。

Docker Swarm

Docker Swarm 是 Docker 開發(fā)的一種容器調(diào)度程序。這個(gè)集群解決方案提供了一些優(yōu)勢(shì),比如使用標(biāo)準(zhǔn) Docker API 等。

Apache Mesos

Mesos 的目的是構(gòu)建一個(gè)可擴(kuò)展、高效的系統(tǒng),可以支持大量的框架。這也是一個(gè)主要的問(wèn)題:一些框架,如 Hadoop 和 MPI,是獨(dú)立開發(fā)的——因此不可能在框架之間進(jìn)行細(xì)粒度的共享。

Mesos 的目的是添加一個(gè)薄薄的資源共享層,為框架提供訪問(wèn)集群資源的公共接口。Mesos 將調(diào)度控制委托給框架,因?yàn)楹芏嗫蚣芤呀?jīng)實(shí)現(xiàn)了復(fù)雜的調(diào)度。

根據(jù)集群上運(yùn)行的作業(yè)類型,框架可以分為四種,其中一些框架提供了原生 Docker 支持,比如 Marathon。在 Mesos 0.20.0 中添加了對(duì) Docker 容器的支持。

Kubernetes

Kubernetes 是一個(gè)用于編配 Docker 容器的系統(tǒng),它通過(guò)標(biāo)簽和 Pod 的概念將容器分為邏輯單元。Pod 是 Kubernetes 和其他兩種解決方案之間的主要區(qū)別——它們是一組容器集合,形成一起部署和調(diào)度的服務(wù)。與基于關(guān)聯(lián)性的容器 (如 Swarm 和 Mesos) 調(diào)度相比,這種方法簡(jiǎn)化了集群的管理。

Kubernetes 調(diào)度器的任務(wù)是監(jiān)控帶有空 PodSpec 的 Pod。NodeName 指定將容器安排在集群中的某個(gè)位置。

這是與 Swarm 和 Mesos 的不同之處,Kubernetes 允許開發(fā)者在運(yùn)行 Pod 時(shí)通過(guò)定義 PodSpec.NodeName 來(lái)繞過(guò)調(diào)度器。

調(diào)度器使用謂詞和優(yōu)先級(jí)來(lái)定義 Pod 應(yīng)該運(yùn)行在哪些節(jié)點(diǎn)上。我們可以使用新的調(diào)度器策略配置覆蓋這些默認(rèn)值。

我們可以通過(guò)命令行標(biāo)志 policy-config-file 指定一個(gè) JSON 文件,在啟動(dòng) Kubernetes 時(shí)將會(huì)使用該文件描述的謂語(yǔ)和優(yōu)先級(jí),調(diào)度器將使用這些定義好的策略。

10監(jiān)控和日志工具

為什么監(jiān)控和日志工具對(duì)于 DevOps 來(lái)說(shuō)很重要?

快速恢復(fù);

響應(yīng)速度;

透明性;

發(fā)生事故時(shí)減少人工干預(yù)。

監(jiān)控和日志工具示例

ELK

ELK 是三個(gè)開源產(chǎn)品的集合——Elasticsearch、Logstash 和 Kibana。它們都是由 Elastic 公司開發(fā)、管理和維護(hù)的。

E 代表 ElasticSearch——用于存儲(chǔ)日志;

L 代表 Logstash——用于傳輸、處理和存儲(chǔ)日志;

K 代表 Kibana——一個(gè)可視化工具 (Web 界面)。

Datadog

Datadog 是一個(gè)針對(duì)云規(guī)模應(yīng)用程序的監(jiān)控服務(wù),通過(guò)基于 SaaS 的數(shù)據(jù)分析平臺(tái)來(lái)監(jiān)控服務(wù)器、數(shù)據(jù)庫(kù)、工具和服務(wù)。

Datadog 應(yīng)用程序性能監(jiān)控 (APM 或跟蹤) 幫助用戶深入了解應(yīng)用程序性能——從自動(dòng)生成的儀表盤(監(jiān)控關(guān)鍵指標(biāo),如請(qǐng)求量和延遲)到單個(gè)請(qǐng)求的詳細(xì)跟蹤信息——與日志和基礎(chǔ)設(shè)施監(jiān)控信息并列展示。

當(dāng)向應(yīng)用程序發(fā)出請(qǐng)求時(shí),Datadog 可以看到分布式系統(tǒng)的跟蹤,并向用戶顯示關(guān)于這個(gè)請(qǐng)求的系統(tǒng)數(shù)據(jù)。

New Relic

New Relic 是一家總部位于加州舊金山的科技公司,它開發(fā)基于云的軟件,幫助網(wǎng)站和應(yīng)用程序所有者跟蹤服務(wù)性能。

New Relic 的應(yīng)用程序性能監(jiān)控軟件分析產(chǎn)品 (APM) 提供有關(guān) Web 應(yīng)用程序性能和最終用戶體驗(yàn)滿意度的實(shí)時(shí)和趨勢(shì)數(shù)據(jù)。

Prometheus

Prometheus 是一款用于事件監(jiān)控和警報(bào)的免費(fèi)應(yīng)用程序。它在時(shí)間序列數(shù)據(jù)庫(kù)中記錄實(shí)時(shí)指標(biāo),基于 HTTP 拉取模型,支持靈活的查詢和實(shí)時(shí)警報(bào)。

Prometheus 服務(wù)器的核心原理是抓取——也就是說(shuō),調(diào)用各個(gè)節(jié)點(diǎn)暴露出來(lái)的指標(biāo)端點(diǎn)。它定期收集這些指標(biāo)并將它們存儲(chǔ)在本地。

Zipkin

Zipkin 是一個(gè)分布式跟蹤系統(tǒng)。它用于收集診斷延遲問(wèn)題所需的時(shí)間數(shù)據(jù),提供了數(shù)據(jù)的收集和查找功能。

如果日志文件中有跟蹤 ID,則可以直接跳指定位置。否則的話,你可以基于服務(wù)、操作名稱、tagsm 和持續(xù)時(shí)間等屬性進(jìn)行查詢。它將為你匯總出一些有趣的數(shù)據(jù),例如花費(fèi)在服務(wù)上的時(shí)間百分比以及操作是否失敗。

Azure Monitor

Azure Monitor 提供了一個(gè)全面的解決方案,用來(lái)收集、分析和執(zhí)行來(lái)自云端和本地環(huán)境的遙測(cè)數(shù)據(jù),從而最大化應(yīng)用程序和服務(wù)的可用性和性能。

它可以幫助你了解應(yīng)用程序的執(zhí)行情況,并主動(dòng)識(shí)別影響它們的問(wèn)題以及它們所依賴的資源。

幾個(gè) Azure Monitor 的使用場(chǎng)景:

使用 Application Insights 檢測(cè)和診斷應(yīng)用程序和依賴項(xiàng)之間的問(wèn)題;

將基礎(chǔ)設(shè)施問(wèn)題與用于 VM 的 Azure Monitor 和用于容器的 Azure Monitor 關(guān)聯(lián)起來(lái);

使用日志分析深入監(jiān)控?cái)?shù)據(jù),進(jìn)行故障排除和深入診斷;

通過(guò)智能警報(bào)和自動(dòng)運(yùn)維支持大規(guī)模操作;

使用 Azure 儀表板和工作簿進(jìn)行可視化。

11 通信工具

為什么通信工具對(duì)于 DevOps 來(lái)說(shuō)很重要?

連接團(tuán)隊(duì);

減少等待時(shí)間;

改進(jìn)團(tuán)隊(duì)協(xié)作。

通信工具示例

Slack

Slack 是由 Slack 公司開發(fā)的即時(shí)通訊平臺(tái)。

Slack 本質(zhì)上是整個(gè)公司的一個(gè)聊天室,旨在取代電子郵件成為溝通和分享的主要方式。你可以用頻道進(jìn)行分組討論,也可以通過(guò)私有消息進(jìn)行信息、文件共享,等等。

微軟 Teams

微軟 Teams 是一個(gè)統(tǒng)一的通信和協(xié)作平臺(tái),結(jié)合了工作討論、視頻會(huì)議、文件存儲(chǔ)和應(yīng)用程序集成。

Teams 是一種基于聊天的協(xié)作工具,它為全球、遠(yuǎn)程和分布式的團(tuán)隊(duì)提供協(xié)作能力,并通過(guò)公共空間共享信息。你可以使用它提供的一些很酷的功能,比如文檔協(xié)作、一對(duì)一聊天、團(tuán)隊(duì)聊天,等等。

谷歌 Hangouts

谷歌 Hangouts 是谷歌開發(fā)的一款通訊軟件產(chǎn)品。Hangouts 最初是 Google+ 的一個(gè)功能,在 2013 年谷歌開始將 Google+ Messenger 和谷歌 Talk 的功能整合到 Hangouts 中,成為了一個(gè)獨(dú)立的產(chǎn)品。

Hangouts Chat 是進(jìn)行組織內(nèi)交流的一種有效方式。你可以與一名或多名同事發(fā)送信息,可以創(chuàng)建聊天室進(jìn)行多人討論,并使用機(jī)器人來(lái)進(jìn)行工作自動(dòng)化。你可以在電腦瀏覽器和 AndroidiOS 手機(jī) App 中使用 Hangouts Chat。

Zoom

Zoom Video Communications 是一家遠(yuǎn)程會(huì)議服務(wù)公司,總部設(shè)在加利福尼亞州的圣何塞。它提供了一種遠(yuǎn)程會(huì)議服務(wù),結(jié)合了視頻會(huì)議、在線會(huì)議、聊天和移動(dòng)協(xié)作。

Skype 更適合尋找整體商業(yè)解決方案的團(tuán)隊(duì),而 Zoom 更適合頻繁進(jìn)行視頻聊天和會(huì)議的團(tuán)隊(duì)。不過(guò),這兩種工具都不是專門為遠(yuǎn)程工作而構(gòu)建的。

中國(guó)版本推薦

騰訊會(huì)議、釘釘、飛書、WeLink 等。

12 知識(shí)分享工具

知識(shí)分享工具為什么對(duì)于 DevOps 來(lái)說(shuō)很重要?

減少知識(shí)浪費(fèi);

提高新員工的效率;

減少犯同樣的錯(cuò)誤。

知識(shí)分享工具示例

GitHub Pages

GitHub Pages 是一個(gè)靜態(tài)站點(diǎn)托管服務(wù),直接從 GitHub 上的存儲(chǔ)庫(kù)獲取 HTML、CSS 和 JavaScript 文件,可在構(gòu)建過(guò)程中運(yùn)行這些文件,然后發(fā)布網(wǎng)站。你可以在 GitHub Pages 示例集合中看到 GitHub Pages 站點(diǎn)的示例。

Confluence

Confluence 是一個(gè)由 Atlassian 開發(fā)并發(fā)布的協(xié)作程序。Atlassian 用 Java 編程語(yǔ)言開發(fā)了 Confluence,并于 2004 年首次發(fā)布。

Confluence 是一個(gè) Wiki 協(xié)作工具,用于幫助團(tuán)隊(duì)有效地協(xié)作和共享知識(shí)。你可以用 Confluence 捕獲項(xiàng)目需求、將任務(wù)分配給特定用戶,并用 Team Calendar 插件一次性管理多個(gè)日歷。

Jekyll

Jekyll 是一個(gè)支持博客的靜態(tài)站點(diǎn)生成器,用于個(gè)人、項(xiàng)目或組織站點(diǎn)。它是由 GitHub 聯(lián)合創(chuàng)始人 Tom Preston-Werner 用 Ruby 開發(fā)的,并采用了 MIT 開源許可。

Jekyll 是一個(gè)解析引擎,打包成 Ruby gem,用來(lái)基于動(dòng)態(tài)組件構(gòu)建靜態(tài)網(wǎng)站。

谷歌 Sites

谷歌 Sites 是谷歌提供的一個(gè)結(jié)構(gòu)化的 Wiki 和網(wǎng)頁(yè)制作工具。谷歌 Sites 的目標(biāo)是讓任何人都能夠創(chuàng)建支持不同編輯器協(xié)作的簡(jiǎn)單 Web 站點(diǎn)。

這些站點(diǎn)在每一個(gè)屏幕上(從桌面到智能手機(jī))看起來(lái)都很棒——做到這些都不需要學(xué)習(xí)設(shè)計(jì)或編程。

13 總結(jié)

這篇文章涵蓋的所有類別可以幫助你更好地實(shí)施 DevOps。其中任何一種都很有用,而且我認(rèn)為所有這些都是你需要的,幫助團(tuán)隊(duì)以可持續(xù)的方式向客戶交付價(jià)值,并幫助你脫穎而出。

我提到了 DevOps 工具鏈,比如規(guī)劃工具、問(wèn)題跟蹤工具、源代碼控制管理、構(gòu)建和測(cè)試代碼、持續(xù)集成和部署源代碼、管理配置、使用云平臺(tái),然后是監(jiān)控和日志,以及溝通和知識(shí)共享。

我希望你能夠喜歡這篇文章。DevOps 是一種令人興奮的工作方式,盡管它不是唯一的方式,甚至不是最好的方式。更好的東西可能會(huì)在未來(lái)出現(xiàn),但目前看來(lái),它似乎代表了一種很好的團(tuán)隊(duì)協(xié)作方式。它讓團(tuán)隊(duì)共同努力,交付價(jià)值,同時(shí)也幫助他們專注于客戶,而不僅僅是技術(shù)或內(nèi)部的東西,也包括了速度、學(xué)習(xí)以及公司的未來(lái)。
責(zé)任編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3327

    瀏覽量

    58859
  • 工具
    +關(guān)注

    關(guān)注

    4

    文章

    314

    瀏覽量

    28218
  • devops
    +關(guān)注

    關(guān)注

    0

    文章

    122

    瀏覽量

    12432

原文標(biāo)題:必備的DevOps工具鏈大盤點(diǎn)

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    最新視頻編碼標(biāo)準(zhǔn)H.264及其核心技術(shù)

    最新視頻編碼標(biāo)準(zhǔn)H.264及其核心技術(shù)H.264是ITU-T和ISO聯(lián)合研究制定的編碼效率高、網(wǎng)絡(luò)適應(yīng)性強(qiáng)的最新數(shù)字視頻編碼國(guó)際標(biāo)準(zhǔn).H.264是面向視頻電話、視頻會(huì)議等實(shí)際應(yīng)用的標(biāo)準(zhǔn),它能以低
    發(fā)表于 06-25 11:42

    SOC設(shè)計(jì)領(lǐng)域的核心技術(shù)-軟/硬件協(xié)同設(shè)計(jì)

    SOC設(shè)計(jì)領(lǐng)域的核心技術(shù)-軟/硬件協(xié)同設(shè)計(jì)摘要:基于IP庫(kù)的SOC必將是今天與未來(lái)微電子設(shè)計(jì)領(lǐng)域的核心。它既是一種設(shè)計(jì)技術(shù),也是一種設(shè)計(jì)方法學(xué)。一塊SOC上一定會(huì)集成各種純硬件IP、和作為軟件載體
    發(fā)表于 11-19 11:19

    藍(lán)牙核心技術(shù)概述

    藍(lán)牙核心技術(shù)概述(一):藍(lán)牙概述藍(lán)牙核心技術(shù)概述(二):藍(lán)牙使用場(chǎng)景藍(lán)牙核心技術(shù)概述(三): 藍(lán)牙協(xié)議規(guī)范(射頻、基帶鏈路控制、鏈路管理)藍(lán)牙核心技術(shù)概述(四):藍(lán)牙協(xié)議規(guī)范(HCI、
    發(fā)表于 11-24 16:06

    【原創(chuàng)】Android視頻直播核心技術(shù)

    【原創(chuàng)】Android視頻直播核心技術(shù)回復(fù)即可獲取下載鏈接[hide=d15]鏈接:http://pan.baidu.com/s/1cC6wbW 密碼:smj8 學(xué)習(xí)群:150923287 [/hide]
    發(fā)表于 07-26 17:43

    31歲無(wú)核心技術(shù),迷茫

    再有3個(gè)月31整,再有9月就到2019了?;厥装l(fā)現(xiàn),無(wú)核心技術(shù),身價(jià)也越來(lái)越編制,職位上升無(wú)望,改怎么辦?同齡的你,有什么高見?。?!期待您的回復(fù)。
    發(fā)表于 03-27 11:39

    云計(jì)算的五大核心技術(shù)

    云計(jì)算的核心技術(shù)有哪些?大數(shù)據(jù)云計(jì)算學(xué)習(xí)路線
    發(fā)表于 06-28 09:41

    五大核心技術(shù)如何實(shí)現(xiàn)物聯(lián)網(wǎng)

    以下是實(shí)現(xiàn)物聯(lián)網(wǎng)的五大核心技術(shù)核心技術(shù)之感知層:傳感器技術(shù)、射頻識(shí)別技術(shù)、二維碼技術(shù)、微機(jī)電系
    發(fā)表于 07-25 06:38

    MIMO之新一代移動(dòng)通信核心技術(shù)

    MIMO:新一代移動(dòng)通信核心技術(shù)
    發(fā)表于 07-17 16:38

    MLCC的主要材料和核心技術(shù)及LCC的優(yōu)點(diǎn)

    什么是MLCCMLCC的主要材料和核心技術(shù)及LCC的優(yōu)點(diǎn)
    發(fā)表于 02-05 06:59

    無(wú)線遠(yuǎn)程監(jiān)控系統(tǒng)主要包括哪些核心技術(shù)?

    無(wú)線遠(yuǎn)程監(jiān)控系統(tǒng)主要包括哪些核心技術(shù)
    發(fā)表于 05-25 06:45

    視頻標(biāo)準(zhǔn)核心技術(shù)對(duì)比分析哪個(gè)好

    視頻標(biāo)準(zhǔn)核心技術(shù)對(duì)比分析哪個(gè)好
    發(fā)表于 06-07 06:12

    ENC+ANC TWS耳機(jī)核心技術(shù)包括哪些?

    ENC+ANC TWS耳機(jī)核心技術(shù)包括哪些?
    發(fā)表于 07-12 06:10

    單片機(jī)應(yīng)用的核心技術(shù)是什么?

    單片機(jī)應(yīng)用的核心技術(shù)是什么?單片機(jī)神奇的工作原理是什么?匯編語(yǔ)言很難學(xué)怎么辦?
    發(fā)表于 11-02 06:17

    華為云ROMA應(yīng)用平臺(tái)基于DevOps技術(shù),解決多種云場(chǎng)景的核心技術(shù)問(wèn)題

    華為云ROMA應(yīng)用平臺(tái)基于DevOps技術(shù),可以使車企快速完成具體應(yīng)用的云化、微服務(wù)化,從而讓車企的軟件能夠跟得上商業(yè)環(huán)境的變化。
    的頭像 發(fā)表于 09-11 10:27 ?3316次閱讀

    目標(biāo)檢測(cè)與識(shí)別技術(shù)有哪些

    視頻中識(shí)別并定位感興趣的目標(biāo),通常包括目標(biāo)的類別和位置信息。目標(biāo)識(shí)別(Object Recognition)是指對(duì)檢測(cè)到的目標(biāo)進(jìn)行分類,確定
    的頭像 發(fā)表于 07-17 09:40 ?1277次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品