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