建議收藏!2020 年必備的幾個 DevOps 工具
開發(fā)和構(gòu)建工具 自動化測試工具 部署工具 運(yùn)行時 DevOps 工具 協(xié)作 DevOps 工具
開發(fā)和構(gòu)建工具

源代碼控制管理(SCM) 持續(xù)集成(CI) 數(shù)據(jù)管理

成熟度 - 該產(chǎn)品自2013年以來一直投放市場,并且非常穩(wěn)定并且得到了很好的支持。 開源 - Gitlab的免費(fèi)版沒有削減開發(fā)團(tuán)隊(duì)所需的核心功能。每個付費(fèi)層都提供了附加功能,這些附加功能可根據(jù)組織的規(guī)模和需求帶來極高的價值。 易用的 CI — 市場上沒有其他工具可以像Gitlab-CI一樣直接將持續(xù)集成直接嵌入到您的SCM中。使用Docker構(gòu)建進(jìn)行臨時構(gòu)建的能力提供了無憂的構(gòu)建作業(yè),并且內(nèi)置的報告使調(diào)試構(gòu)建失敗變得容易。無需復(fù)雜的集成和業(yè)務(wù)流程就可以對多種工具進(jìn)行編排。 無限集成 - Gitlab提供了每個核心DevOps類別中所需工具的輕松集成。這使開發(fā)人員和操作人員在任何環(huán)境中都可以使用一個真實(shí)的來源來獲取與其應(yīng)用程序相關(guān)的信息。
GitHub - GitHub一直是小型和早期開發(fā)商店的出色SaaS源代碼管理系統(tǒng)。但是,對于需要在網(wǎng)絡(luò)中保留其IP的大型企業(yè),GitHub的唯一選擇是.OVA不支持高可用性的虛擬機(jī)。這使其難以維護(hù)on-prem,并且只能在中型組織中運(yùn)行,然后服務(wù)器本身才開始崩潰。它缺少GitHub Actions(直到最近,但仍不在本地版本中)或CI-as-Code,這意味著您始終需要帶上自己的CI工具并管理該集成。最后,它比任何Gitlab定價都昂貴。 Jenkins — 盡管Jenkins已經(jīng)成為持續(xù)集成工具的默認(rèn)標(biāo)準(zhǔn),但它始終缺少源代碼控制元素。意味著,您將始終使用Jenkins 和 SCM工具。當(dāng)像GitLab這樣的工具同時提供這兩種功能時,這簡直是不必要的復(fù)雜。它可怕的UX使得現(xiàn)代Web應(yīng)用程序有很多不足之處。 BitBucket/Bamboo — 我不得不說,這是一個自動失敗者,考慮到您需要兩種工具來完成Gitlab的一項(xiàng)工作。盡管BitBucket云支持Gitlab-CI / GitHub Action功能,但沒有一家公司(規(guī)模超過一家初創(chuàng)公司)可以輕易采用它。用于本地的 BitBucket服務(wù)器甚至不支持BitBucket管道!
2020年排名第一的數(shù)據(jù)管理工具:FlywayDB

數(shù)據(jù)庫版本控制 - FlyWay允許您簡單地創(chuàng)建數(shù)據(jù)庫版本,跟蹤數(shù)據(jù)庫遷移以及輕松地前滾或后退架構(gòu)更改,而無需某些定制解決方案。 二進(jìn)制或內(nèi)置 - 您可以選擇在應(yīng)用程序啟動時或作為二進(jìn)制可執(zhí)行文件運(yùn)行Flyway。在代碼中使用此工具,以便它在啟動時檢查版本功能并運(yùn)行適當(dāng)?shù)倪w移,從而使數(shù)據(jù)庫和應(yīng)用程序版本保持同步。您也可以臨時運(yùn)行cmd行,從而在不重建整個應(yīng)用程序的情況下為現(xiàn)有數(shù)據(jù)庫提供了靈活性。
LiquiBase — Liquibase是相似的,實(shí)際上,如果有人在我的組織中工作過,那么我很樂意通過FlyWay對該工具進(jìn)行標(biāo)準(zhǔn)化。 Flocker - 這可能僅適用于容器化的應(yīng)用程序-在容器中運(yùn)行數(shù)據(jù)庫非常困難,必須精心計(jì)劃才能成功執(zhí)行。我建議將RDS之類的服務(wù)用于數(shù)據(jù)庫,而不要嘗試運(yùn)行存儲在容器中的關(guān)鍵數(shù)據(jù)。
自動化測試工具

單元測試 - 這是所有自動化測試的基礎(chǔ)。就數(shù)量而言,與其他類型相比,您應(yīng)該擁有最多的單元測試。這些測試應(yīng)由軟件開發(fā)人員編寫和運(yùn)行,以確保應(yīng)用程序的一部分(稱為“單元”)符合其設(shè)計(jì)并按預(yù)期運(yùn)行。 組件測試 — 組件測試的主要目的是驗(yàn)證測試對象的輸入/輸出行為。這樣可以確保測試對象的功能按照所需規(guī)范正確運(yùn)行。 集成測試 — 這是測試階段,在此階段中,各個軟件模塊被組合在一起并作為一個整體進(jìn)行測試。 端到端測試 - 此層是不言自明的。我們正在研究從頭到尾的應(yīng)用程序流程,并使其表現(xiàn)出預(yù)期的效果。

行為驅(qū)動的開發(fā) — Cucumber用于BDD測試,它已成為一種入門測試框架(與傳統(tǒng)的測試驅(qū)動開發(fā)相比)。 動態(tài)文檔 - 記錄您所做的事情總是很痛苦。由于您的測試被定義為代碼,因此Cucumber測試會自動生成文檔以進(jìn)行匹配以確保它們始終保持同步。 支持 - 這里有很多工具可供選擇,但是當(dāng)情況變得嚴(yán)重時,您需要工具維護(hù)者的認(rèn)真支持。黃瓜擁有足夠的資金和支持結(jié)構(gòu)來維持該工具的未來幾年。
端到端測試工具
功能測試 負(fù)載測試

廣泛的文檔 - 此工具已經(jīng)存在了一段時間,因此有許多在線資源可幫助您確定如何配置負(fù)載測試。 易于使用 — 盡管有多種API測試工具可用,但擁有一個用于多種服務(wù)的接口可以使構(gòu)建測試變得簡單。
Selenium - Selenium是該領(lǐng)域的另一個出色工具。如果您正在構(gòu)建和運(yùn)行基于Java的應(yīng)用程序,則建議使用它。但是,如果您要使用多種技術(shù)來處理一個完整的Web應(yīng)用程序,那么對于非Java語言的用戶來說可能會有些笨拙。
2020年排名第一的端到端測試工具 — 負(fù)載測試:LoadRunner

廣泛的文檔 - 該工具已經(jīng)存在了一段時間,因此有許多在線資源可以幫助您確定如何配置負(fù)載測試。 協(xié)議支持 - 從ODBC到AJAX,再到HTTPS以及您的應(yīng)用程序可能在某處使用的其他晦澀協(xié)議,LoadRunner支持該協(xié)議。我們要避免串接多個負(fù)載測試工具-這只會增加復(fù)雜性。
部署工具

構(gòu)件管理 配置管理 部署方式
2020年排名第一的工件管理工具:Nexus

技術(shù)支持 - 該產(chǎn)品自2013年以來一直投放市場,并且非常穩(wěn)定且得到了很好的支持。 開源 - Gitlab的免費(fèi)版本沒有削減開發(fā)團(tuán)隊(duì)需要的核心功能。每個付費(fèi)層均提供附加功能,這些附加功能可帶來最大價值,具體取決于組織的規(guī)模和需求。
2020年排名第一的配置管理工具:Ansible

無狀態(tài) - Ansible劇本是從操作員機(jī)器上運(yùn)行的,并命中服務(wù)器目標(biāo)。我不在乎遠(yuǎn)程對象的狀態(tài),這使得使用Packer之類的工具來構(gòu)建可部署對象變得更加容易。 開源 - 和CentOS一樣,Ansible也由RedHat維護(hù)。該企業(yè)及其高級支持人員可以幫助維護(hù)社區(qū),并確保高質(zhì)量,易于使用的模塊。 分子測試 — 因?yàn)榕渲霉芾砗推渌魏螙|西一樣都是代碼,所以如果不對其進(jìn)行測試,我們將無所不能。用于測試Ansible角色的分子框架可以無縫地工作,以確保我們的按代碼配置質(zhì)量一樣高,并遵循與應(yīng)用程序代碼相同的CI / CD管道。 YAML — 與其他工具相比,YAML更加容易使您頭腦清醒。由于配置管理對于采用DevOps的任何人來說通常都是新事物,因此這使其成為關(guān)鍵賣點(diǎn)。
OpsCode Chef - 我以廚師食譜開發(fā)人員的身份開始了DevOps生涯。露比和廚師很親密,我的心。但是,它們根本無法解決當(dāng)今無狀態(tài),云原生應(yīng)用程序的問題。對于更傳統(tǒng)的遺留應(yīng)用程序來說,這是一個很好的工具,但是本文將重點(diǎn)放在未來。 Puppet — Puppet從未成長為一個龐大的社區(qū),特別是與Chef and Ansible相比。它非常適合配置和裸機(jī),但不支持Web應(yīng)用程序類型的配置管理。
2020年排名第一的部署工具:Terraform

開源 — 同樣,很難敲響免費(fèi)工具。社區(qū)支持是一流的。
AWS CloudFormation — 即使您僅在AWS云環(huán)境中工作,您也可能會在職業(yè)生涯中繼續(xù)前進(jìn),而不是去那里。將您的技能和知識整合到一個平臺中可能會有風(fēng)險。此外,許多新的AWS服務(wù)通常在CloudFormation中可用之前作為Terraform模塊提供。
運(yùn)行時DevOps工具

X 即服務(wù) 編排 監(jiān)控方式 日志記錄
2020年排名第一的X-as-a-Service工具:Amazon Web Services

行業(yè)標(biāo)準(zhǔn) - 如果您有在AWS中構(gòu)建應(yīng)用程序的經(jīng)驗(yàn),那么您基本上可以在任何地方找到工作。企業(yè)喜歡AWS,而創(chuàng)業(yè)公司喜歡AWS的低成本。 Free-Tier — 與其他所有功能相比,AWS的業(yè)務(wù)確實(shí)如此。讓我使用該服務(wù)并查看其工作原理,然后再決定將數(shù)千美元投入可能有巨大陷阱的事物中。我從未為POC構(gòu)建的任何產(chǎn)品都超過免費(fèi)套餐限制。
Azure – 自最初發(fā)布以來,Azure已經(jīng)走了很長一段路,值得稱贊。但是,區(qū)分自身的需求已導(dǎo)致其對服務(wù)的名稱進(jìn)行了怪異的命名,而這些服務(wù)要難一點(diǎn)了-到底什么是“ blob存儲”?盡管.NET代碼在Microsoft生態(tài)系統(tǒng)中效果更好,但不太可能僅將.NET用于應(yīng)用程序的各個方面。 Heroku — 簡而言之,除了在Heroku上的個人項(xiàng)目外,我什么都不會運(yùn)行。透明度不高,企業(yè)沒有理由將其用作平臺。這對于在博客中演示某些內(nèi)容非常有用,但對于實(shí)際應(yīng)用程序來說,非常感謝!
2020年排名第一的編排工具:OpenShift

內(nèi)置的安全性 - 管理K8安全性幾乎需要博士學(xué)位。必須仔細(xì)考慮并考慮所有細(xì)節(jié)。默認(rèn)情況下,OpenShift所采用的安全機(jī)制減少了開發(fā)人員的工作量,并為他們的應(yīng)用程序提供了更安全的平臺。 多合一解決方案 – 與默認(rèn)不包含負(fù)載平衡工具的香草K8不同,OpenShift擁有一切。我可以使用它來托管我的容器,構(gòu)建容器,運(yùn)行CI / CD工具,協(xié)調(diào)外部流程,管理機(jī)密等等。盡管GUI仍然需要做更多的工作,但API優(yōu)先的方法意味著一切都可以編寫腳本,并且與K8的其他GUI不同,它使學(xué)習(xí)Kubernetes的基礎(chǔ)知識變得更加簡單,而無需首先獲得該學(xué)位!
Docker Swarm - Docker swarm嘗試通過刪除大量內(nèi)容來簡化K8。這對于較小的應(yīng)用程序非常有用,但對于企業(yè)應(yīng)用程序則根本不起作用。此外,AWS ECS之類的服務(wù)采用了類似的方法,但是使我可能正在與之交互的其他服務(wù)(Lambda,IAM等)的使用變得更容易。
2020年排名第一的監(jiān)控工具:New Relic

易用性 - 我在擔(dān)任系統(tǒng)工程師時曾使用過許多監(jiān)視工具,但從未遇到過像New Relic這樣易于使用的監(jiān)視工具。這是一個SaaS,因此不必設(shè)置服務(wù)器組件也很不錯。 端到端可見性 - 其他工具嘗試監(jiān)視應(yīng)用程序的一個特定方面。無論是CPU利用率還是網(wǎng)絡(luò)流量,所有這些層都可以協(xié)同工作,以使您的應(yīng)用正常運(yùn)行。New Relic使您能夠組合所有數(shù)據(jù)以真實(shí)了解正在發(fā)生的事情。
Zabbix — Zabbix是我最喜歡的監(jiān)視系統(tǒng),但是由于缺乏向云原生環(huán)境和APM空間發(fā)展的能力,因此使其滯后。它仍然可以很好地監(jiān)視傳統(tǒng)的服務(wù)器基礎(chǔ)結(jié)構(gòu),僅此而已。 DataDog - 此工具過于側(cè)重于管理生產(chǎn)應(yīng)用程序的過程視角,而對代碼本身的關(guān)注不足。在真正的DevOps團(tuán)隊(duì)中,有開發(fā)人員參與生產(chǎn),我們無需依靠繁瑣的工具來提供世界一流的支持。
2020年排名第一的測井工具:Splunk

行業(yè)標(biāo)準(zhǔn) —企業(yè)喜歡Splunk,他們也有錢為此付出代價。雖然初創(chuàng)企業(yè)可能難以證明其成本合理,但許多概念和技能可以轉(zhuǎn)移到開源替代方案中。 可支持性 -簡單地說,它可以正常工作。它具有許多默認(rèn)值和即用型功能,因此您不必花費(fèi)大量時間閱讀文檔并嘗試使一些沒有明確說明的內(nèi)容能夠正常工作。
ELK Stack - ElasticSearch,LogStash和Kibana,雖然似乎總是很酷,因?yàn)樗鼈儾幌蚰杖∈褂觅M(fèi)用,但隨著日志集的增長和機(jī)上越來越多的應(yīng)用程序的維護(hù),它的確變得更加困難您的工具。與使用Splunk相比,我在構(gòu)建任何類型的儀表板之前花了更多的時間來設(shè)置工具。
協(xié)作DevOps工具

問題跟蹤 聊天操作 文獻(xiàn)資料
2020年排名第一的問題跟蹤工具:Jira

行業(yè)標(biāo)準(zhǔn) — 同樣,就像許多工具一樣,Jira到處都有使用。小型團(tuán)隊(duì)可以使用便宜的許可證并獲得所需的一切,而企業(yè)可以為任何人負(fù)擔(dān)得起許可證。 集成 - 在這個領(lǐng)域處于領(lǐng)先地位并且快速增長意味著第三方工具會選擇您首先構(gòu)建本機(jī)集成,而它們只會增加您工具的價值,而Jira就是這種情況。我們可以與現(xiàn)成的列表中的所有其他工具集成,而無需進(jìn)行任何定制。
Trello — Trello成為免費(fèi)使用的看板工具,因此迅速流行。但是,一旦事情開始擴(kuò)展,并且您從數(shù)十個問題擴(kuò)展到數(shù)千個問題,Trello將變得難以導(dǎo)航,搜索和報告。 Pivotal Tracker - 在初創(chuàng)公司工作期間,我非常喜歡該工具。但是,他們更多地關(guān)注產(chǎn)品管理,而不是技術(shù)任務(wù)。盡管從Jira進(jìn)行產(chǎn)品管理比較困難,但是仍然可以完成此過程,而不必獲取完全獨(dú)立的工具。
2020年排名第一的ChatOps工具:MatterMost

開源 - MatterMost的開源版本非常適合小型或大型團(tuán)隊(duì)。與Slack的免費(fèi)層會丟失歷史記錄不同,您自己運(yùn)行服務(wù)器意味著您擁有數(shù)據(jù)。 集成 - 因?yàn)锳PI幾乎100%基于Slack API,所以幾乎所有Slacks集成都可以直接與MatterMost一起使用。
Slack - 松弛很棒,但是它們已經(jīng)變得如此龐大,需要開始獲利。他們業(yè)務(wù)的付費(fèi)階段即將到來,并且剝奪了Slack用來免費(fèi)提供的許多價值,最關(guān)鍵的是聊天記錄。 Microsoft Teams - 嘗試將Microsoft產(chǎn)品與非Microsoft本地產(chǎn)品集成-祝您好運(yùn)。這就是我要說的!
2020年排名第一的文檔工具:Confluence

易于管理 - 大多數(shù)自托管工具的啟動和運(yùn)行可能有些復(fù)雜,并且大規(guī)模維護(hù)它們需要一些特定知識。開箱即用的Confluence服務(wù)器非常適合10個用戶或10,000個用戶。 插件- 盡管創(chuàng)建具有默認(rèn)融合功能的漂亮且易于瀏覽的文檔已經(jīng)很不錯了,但是擁有用于幾乎所有內(nèi)容的插件的能力釋放了Wiki的潛力。
Read the docs — 非常適合開源公共代碼,但永遠(yuǎn)不會考慮在這里存儲關(guān)鍵的應(yīng)用程序知識。 MarkDown — 盡管非常適合于記錄有關(guān)我的代碼的內(nèi)容,但很難將體系結(jié)構(gòu),過程或其他類型的文檔直接放入MarkDown格式中。 Jekyll — 在記錄技術(shù)知識時,我并不想簡單地構(gòu)建一個新的靜態(tài)站點(diǎn),以便在每次更改時進(jìn)行部署。簡單的Confluence版本管理系統(tǒng)使內(nèi)部文檔的處理變得更加容易。
總結(jié) 2020 年最佳
開發(fā)和構(gòu)建工具 自動化測試工具 部署工具 運(yùn)行時工具 協(xié)作工具
來源:https://segmentfault.com/a/1190000022908614
本文版權(quán)歸原作者所有,如有問題請聯(lián)系我刪除。

評論
圖片
表情
