DevOps: 每個階段最常用的工具有哪些?

語言: CN / TW / HK

帶有DevOps特性的工具列表每天都在增長,瞭解團隊的需求對於使用正確的服務來促進新應用程式的開發非常重要。本文將按類別瞭解不同的 Devops 工具,以提高團隊的生產力和協作。如果沒有開發團隊和運維人員之間真正的合作願望,這些工具的部署是沒有用的。

Devops 文化及其好處

DevOps是“開發人員”和“運維”這兩個詞的組合。它是一種協作文化,旨在使開發團隊和運營部門之間的流程自動化,以促進軟體的開發、測試和交付。
在之前的文章中,我們看到傳統上這些團隊的利益是相反的:開發人員應該創造價值並使產品/服務更具創新性,而運營人員的目標是保持基礎設施的穩定性。
Devops 文化的優勢是多方面的。DevOps 協作允許更快 、更高質量的釋出。Devops 團隊在保持基礎架構質量和穩定性的同時更頻繁地交付。良好的Devops 策略基於運維人員和開發人員之間的廣泛協作、更好的溝通以及更好的團隊績效。

Devops 中使用的不同工具

Devops 團隊每天使用各種工具來完成各種任務和任務。我們在此處準備了這些工具的(非詳盡的)列表。

原始碼管理工具

Devops 協作的第一步是讓開發團隊和運維人員在單一原始碼管理工具上保持一致。它是一個版本控制工具:任何程式碼修改都會導致新版本的建立。從歷史上看,運維人員不使用這種工具,因為自動化程度很低,一切都是手動的,因此沒有程式碼。但是,一旦有了程式碼,最好的做法是分享它並讓您的同行對其進行審查。這就是程式碼管理工具發揮作用的地方。
程式碼管理有兩種型別:

  • Git和Subversion等工具,用於建立檔案歷史記錄:此時,您的檔案已發生此類更改。Subversion 是一個比 Git 更老、效率更低的工具。

  • Github、Gitlab和Bitbucket等工具用於共享其程式碼,以及隨之而來的歷史。它們基於 Git,並且可以擁有程式碼的歷史並對其進行多次處理。如果說 Github 在歷史上是壟斷的,那麼 Gitlab 越來越受歡迎,尤其要感謝Gitlab CI的高效。

持續整合/持續部署測試

持續整合和持續部署( CI/CD )工具可實現原始碼更改測試的自動化。實際上,CI/CD 工具通過減少建立新功能所需的時間來實現應用程式的現代化。
有許多 CI/CD 工具。最常用的平臺之一是Jenkins,這是一個開源工具(雖然可能很難開始使用)。
還有付費解決方案,例如GitlabCI(我們在 Padok 使用)、Bamboo、TeamCity、Concourse、CircleCI或Travis CI。
雲提供商,尤其是谷歌和 AWS,也提供了他們自己的持續整合和部署工具。

容器

容器使隔離應用程式及其執行所需的所有元素成為可能。容器的使用使得從開發人員的程式碼到生產儘可能“iso”成為可能,並且在生產時沒有意外。
Docker 將應用程式在這些虛擬容器中的部署自動化和標準化,並在這一領域的工具中脫穎而出。Docker 的替代品是RKT,它是 CoreOS 基金會推動的標準。
使用容器時,對編排的需求會很快出現。
編排容器可以更輕鬆地部署和管理它們。市場上使用最廣泛的編排器是Kubernetes,但還有其他的,例如MesOs和Docker-Swarm。

雲提供商

雲提供商為企業和個人提供遠端儲存解決方案。如今,三大巨頭共享雲服務市場:谷歌雲平臺、Azure 和 AWS。通過提供最廣泛的服務,AWS 無疑是該市場的全球領導者。
當我們談論雲提供商時,我們會想到負載均衡服務。負載均衡服務的任務是將負載分佈在不同的裝置上,從而提高響應時間。HAproxy是負載均衡中的參考。

自動化和配置管理

自動化有助於消除 DevOps 團隊的重複性任務。
Devops 中存在幾種型別的自動化:

  • 在伺服器上設定自動配置

  • 自動化伺服器操作

根據現有基礎設施和公司需求,存在多種工具:

  • Terraform:基礎設施供應;

  • Ansible:從伺服器的配置管理;

  • Puppet:從伺服器的配置管理;

  • Salt:從伺服器的配置管理。

監控和警報

監視和警報工具使您能夠對基礎架構有一個概覽,以解決出現的問題並提高效能。
開源Prometheus應用程式和Grafana服務允許您監控 Kubernetes 叢集。通過耦合三個工具,ELK(Elasticsearch、Logstash 和 Kibana)是一個強大的日誌分析解決方案。您可以單獨發揮每個工具的效能並使其適應您的需求:Logstash 用於規範化/傳送日誌,Elasticsearch 用於儲存,Kibana 用於視覺化。ELK 允許進行日誌分析(取證)和聚合(儀表板)。

專案管理工具

要進行軟體的開發,依靠 Devops 團隊中通用的專案管理工具似乎是必不可少的。
Jira是一種敏捷專案管理工具,可幫助規劃、跟蹤和管理軟體開發專案。使用 Jira,開發團隊的每個成員都可以跟蹤專案的進度並設定 sprint 優先順序。
另一方面,Trello因其在管理專案的各種任務方面的直觀性和簡單性而脫穎而出。

祕密管理

隨著對更高效安全的需求,新的祕密管理工具出現了,例如Vault。Vault 允許靜態和動態組織祕密。
Secrets,Kubernetes 祕密管理服務是 Vault 的替代品。