DevOps:每個(gè)階段最常用的工具有哪些?
帶有DevOps特性的工具列表每天都在增長(zhǎng),了解團(tuán)隊(duì)的需求對(duì)于使用正確的服務(wù)來(lái)促進(jìn)新應(yīng)用程序的開(kāi)發(fā)非常重要。本文將按類(lèi)別了解不同的 Devops 工具,以提高團(tuán)隊(duì)的生產(chǎn)力和協(xié)作。
如果沒(méi)有開(kāi)發(fā)團(tuán)隊(duì)和運(yùn)維人員之間真正的合作愿望,這些工具的部署是沒(méi)有用的。
Devops 文化及其好處
DevOps是“開(kāi)發(fā)人員”和“運(yùn)維”這兩個(gè)詞的組合。它是一種協(xié)作文化,旨在使開(kāi)發(fā)團(tuán)隊(duì)和運(yùn)營(yíng)部門(mén)之間的流程自動(dòng)化,以促進(jìn)軟件的開(kāi)發(fā)、測(cè)試和交付。
在之前的文章中,我們看到傳統(tǒng)上這些團(tuán)隊(duì)的利益是相反的:開(kāi)發(fā)人員應(yīng)該創(chuàng)造價(jià)值并使產(chǎn)品/服務(wù)更具創(chuàng)新性,而運(yùn)營(yíng)人員的目標(biāo)是保持基礎(chǔ)設(shè)施的穩(wěn)定性。
Devops 文化的優(yōu)勢(shì)是多方面的。DevOps 協(xié)作允許更快 、更高質(zhì)量的發(fā)布。Devops 團(tuán)隊(duì)在保持基礎(chǔ)架構(gòu)質(zhì)量和穩(wěn)定性的同時(shí)更頻繁地交付。良好的Devops 策略基于運(yùn)維人員和開(kāi)發(fā)人員之間的廣泛協(xié)作、更好的溝通以及更好的團(tuán)隊(duì)績(jī)效。
Devops 中使用的不同工具
Devops 團(tuán)隊(duì)每天使用各種工具來(lái)完成各種任務(wù)和任務(wù)。我們?cè)诖颂帨?zhǔn)備了這些工具的(非詳盡的)列表。
源代碼管理工具
Devops 協(xié)作的第一步是讓開(kāi)發(fā)團(tuán)隊(duì)和運(yùn)維人員在單一源代碼管理工具上保持一致。它是一個(gè)版本控制工具:任何代碼修改都會(huì)導(dǎo)致新版本的創(chuàng)建。從歷史上看,運(yùn)維人員不使用這種工具,因?yàn)樽詣?dòng)化程度很低,一切都是手動(dòng)的,因此沒(méi)有代碼。但是,一旦有了代碼,最好的做法是分享它并讓您的同行對(duì)其進(jìn)行審查。這就是代碼管理工具發(fā)揮作用的地方。
代碼管理有兩種類(lèi)型:
Git和Subversion等工具,用于創(chuàng)建文件歷史記錄:此時(shí),您的文件已發(fā)生此類(lèi)更改。Subversion 是一個(gè)比 Git 更老、效率更低的工具。
Github、Gitlab和Bitbucket等工具用于共享其代碼,以及隨之而來(lái)的歷史。它們基于 Git,并且可以擁有代碼的歷史并對(duì)其進(jìn)行多次處理。如果說(shuō) Github 在歷史上是壟斷的,那么 Gitlab 越來(lái)越受歡迎,尤其要感謝Gitlab CI的高效。
持續(xù)集成/持續(xù)部署測(cè)試
持續(xù)集成和持續(xù)部署( CI/CD )工具可實(shí)現(xiàn)源代碼更改測(cè)試的自動(dòng)化。實(shí)際上,CI/CD 工具通過(guò)減少創(chuàng)建新功能所需的時(shí)間來(lái)實(shí)現(xiàn)應(yīng)用程序的現(xiàn)代化。
有許多 CI/CD 工具。最常用的平臺(tái)之一是Jenkins,這是一個(gè)開(kāi)源工具(雖然可能很難開(kāi)始使用)。
還有付費(fèi)解決方案,例如GitlabCI(我們?cè)?Padok 使用)、Bamboo、TeamCity、Concourse、CircleCI或Travis CI。
云提供商,尤其是谷歌和 AWS,也提供了他們自己的持續(xù)集成和部署工具。
容器
容器使隔離應(yīng)用程序及其運(yùn)行所需的所有元素成為可能。容器的使用使得從開(kāi)發(fā)人員的代碼到生產(chǎn)盡可能“iso”成為可能,并且在生產(chǎn)時(shí)沒(méi)有意外。
Docker 將應(yīng)用程序在這些虛擬容器中的部署自動(dòng)化和標(biāo)準(zhǔn)化,并在這一領(lǐng)域的工具中脫穎而出。Docker 的替代品是RKT,它是 CoreOS 基金會(huì)推動(dòng)的標(biāo)準(zhǔn)。
使用容器時(shí),對(duì)編排的需求會(huì)很快出現(xiàn)。
編排容器可以更輕松地部署和管理它們。市場(chǎng)上使用最廣泛的編排器是Kubernetes,但還有其他的,例如MesOs和Docker-Swarm。
云提供商
云提供商為企業(yè)和個(gè)人提供遠(yuǎn)程存儲(chǔ)解決方案。如今,三大巨頭共享云服務(wù)市場(chǎng):谷歌云平臺(tái)、Azure 和 AWS。通過(guò)提供最廣泛的服務(wù),AWS 無(wú)疑是該市場(chǎng)的全球領(lǐng)導(dǎo)者。
當(dāng)我們談?wù)撛铺峁┥虝r(shí),我們會(huì)想到負(fù)載均衡服務(wù)。負(fù)載均衡服務(wù)的任務(wù)是將負(fù)載分布在不同的設(shè)備上,從而提高響應(yīng)時(shí)間。HAproxy是負(fù)載均衡中的參考。
自動(dòng)化和配置管理
自動(dòng)化有助于消除 DevOps 團(tuán)隊(duì)的重復(fù)性任務(wù)。
Devops 中存在幾種類(lèi)型的自動(dòng)化:
- 在服務(wù)器上設(shè)置自動(dòng)配置
- 自動(dòng)化服務(wù)器操作
根據(jù)現(xiàn)有基礎(chǔ)設(shè)施和公司需求,存在多種工具:
- Terraform:基礎(chǔ)設(shè)施供應(yīng);
- Ansible:從服務(wù)器的配置管理;
- Puppet:從服務(wù)器的配置管理;
- Salt:從服務(wù)器的配置管理。
監(jiān)控和警報(bào)
監(jiān)視和警報(bào)工具使您能夠?qū)A(chǔ)架構(gòu)有一個(gè)概覽,以解決出現(xiàn)的問(wèn)題并提高性能。
開(kāi)源Prometheus應(yīng)用程序和Grafana服務(wù)允許您監(jiān)控 Kubernetes 集群。通過(guò)耦合三個(gè)工具,ELK(Elasticsearch、Logstash 和 Kibana)是一個(gè)強(qiáng)大的日志分析解決方案。您可以單獨(dú)發(fā)揮每個(gè)工具的性能并使其適應(yīng)您的需求:Logstash 用于規(guī)范化/發(fā)送日志,Elasticsearch 用于存儲(chǔ),Kibana 用于可視化。ELK 允許進(jìn)行日志分析(取證)和聚合(儀表板)。
項(xiàng)目管理工具
要進(jìn)行軟件的開(kāi)發(fā),依靠 Devops 團(tuán)隊(duì)中通用的項(xiàng)目管理工具似乎是必不可少的。
Jira是一種敏捷項(xiàng)目管理工具,可幫助規(guī)劃、跟蹤和管理軟件開(kāi)發(fā)項(xiàng)目。使用 Jira,開(kāi)發(fā)團(tuán)隊(duì)的每個(gè)成員都可以跟蹤項(xiàng)目的進(jìn)度并設(shè)置 sprint 優(yōu)先級(jí)。
另一方面,Trello因其在管理項(xiàng)目的各種任務(wù)方面的直觀性和簡(jiǎn)單性而脫穎而出。
秘密管理
隨著對(duì)更高效安全的需求,新的秘密管理工具出現(xiàn)了,例如Vault。Vault 允許靜態(tài)和動(dòng)態(tài)組織秘密。
Secrets,Kubernetes 秘密管理服務(wù)是 Vault 的替代品。