DevOps 和SRE 的十大開源專案

語言: CN / TW / HK

作者介紹:Nir Shrma,Squadcast 技術內容撰稿人。

原文連結:http://dzone.com/articles/top-open-source-projects-for-sres-and-devops

構建可擴充套件的、高可靠性的軟體系統是每個 SRE 的終極目標。本文概述了在監控、部署和維護領域中最受歡迎的幾個開源專案。

成功的 SRE 之路就在於不斷的學習。對於 SRE/DevOps 來說,目前已經有許多優秀的開源專案,每個專案都有新的、激動人心的實現,而且常常會面對獨特的挑戰。這些開源專案完成了繁重的工作,因此你可以更輕鬆地完成自己的工作。

在本文中,我們將介紹在監控、部署和維護領域中最受歡迎的幾個開源專案。在這些專案中,有一些專案是模擬網路流量的專案,並可以讓你為不可預測的(混沌)事件進行建模,從而可以開發出可靠的系統。

1Cloudprober

Cloudprober 是一種主動 跟蹤 和監控的應用,它能在客戶之前發現故障。它採用“主動”監控模型,以檢查元件是否按預期執行。例如,它主動執行探針,以確保前端是否可以訪問後端。同樣,也可以執行探針來驗證內部系統是否能夠真正訪問雲內虛擬機器。這種跟蹤方法使得跟蹤應用程式的配置變得非常簡單,並且與實現無關,使你能夠輕鬆地確定系統中發生了哪些故障。

特點:

  • 與 Prometheus 和 Grafana 的開源監控棧的原生整合。Cloudprober 也可以匯出探測結果。

  • 對於雲目標,自動發現目標。對 GCE 和 Kubernetes 提供開箱即用的支援;其他雲服務也可以輕鬆配置。

  • 在易於部署方面作出重大承諾。Cloudprober 完全用 Go 編寫,並被編譯成靜態二進位制檔案。通過 Docker 容器可以快速部署它。除了大多數更新之外,Cloudprober 通常不需要重新部署或重新配置,因為有自動發現目標。

  • Cloudprober Docker 映象非常小,並且只包含靜態編譯的二進位制檔案,而且即使執行大量的探測,也只需非常少量的 CPU 和記憶體。

2Cloud Operations Sandbox (Alpha)

Cloud Operations Sandbox 是一個開源平臺,它讓專家們瞭解谷歌的服務可靠性工程實踐,並使用 Ops Management(以前的 Stackdriver)將其調整到他們的雲系統中。它基於 Hipster Shop,一個基於雲的原生微服務平臺。注意:這需要谷歌雲服務賬戶。

特點:

  • 演示服務:一個設計在現代雲本微服務架構上的應用程式。

  • 一鍵部署:一個指令碼處理將服務部署到谷歌雲平臺的工作。

  • 負載生成器:在演示服務上生成模擬流量的部件。

3Version Checker for Kubernetes

Kubernetes 實用工具 允許你觀察叢集中執行的映像的現有版本。該工具還允許你在 Grafana 儀表板上以表格形式檢視當前映象版本。

特點:

  • 可同時設定多個自託管註冊中心。

  • 該實用程式允許將版本資訊視為 Prometheus 度量。

  • 支援諸如 ACR、DockerHub、ECR 之類的註冊中心。

4Istio

Istio 是一個開放的框架,用於合併微服務、通過微服務監控流量移動、執行策略以及以標準化的方式聚合遙測資料。Istio 的控制平面在叢集管理的底層平臺(如 Kubernetes)上提供了一個抽象層。

特點:

  • 對 HTTP、gRPC、WebSocket 和 TCP 流量進行自動負載均衡。

  • 通過豐富的路由規則、重試、故障切換和故障注入對流量行為進行細粒度控制。

  • 支援訪問控制、速率限制和配額的可插拔策略層和配置 API。

  • 叢集內所有流量的自動度量、日誌和跟蹤,包括叢集入口和出口。

  • 叢集中的安全服務到服務通訊具有強大的基於身份的身份驗證和授權。

5Checkov

Checkov 是一個基礎設施即程式碼的靜態程式碼審查工具。它掃描 Terraform、Cloud Details、Cubanet、Serverless 或 ARM 模型雲基礎設施,並檢測安全和合規性配置錯誤。

特點:

  • 400 多條內建規則涵蓋了 AWS、Azure 和谷歌雲的最佳保護和安全實踐。

  • 評估 Terraform 提供商設定以監視 Terraform 管理的 IaaS、PaaS 或 SaaS 開發、維護和更新。

  • 檢測 EC2 使用者資料、Lambda 上下文變數和 Terraform 提供商中的 AWS 憑證。

6Litmus

Litmus 是一個基於雲的混沌建模工具包。Litmus 提供了在 Kubernetes 上編排混沌的工具,以幫助 SRE 發現部署中的漏洞。SRE 使用 Litmus 進行混沌測試,首先在暫存區,最後在開發區中發現故障和漏洞。修復這些缺陷,從而提高系統的彈性。

特點:

  • 開發人員可以在應用開發過程中執行混沌測試,作為單元測試或整合測試的擴充套件。

  • 對於 CI 管道構建器:當應用程式在管道中遭遇故障路徑時,將混沌作為管道階段執行,以查詢錯誤。

7Locust

Locust 是一個簡單易用、可編寫指令碼且靈活的效能測試應用程式。你可以在標準的 Python 程式碼中定義使用者的行為,而不是使用笨重的 UI 或特定領域的語言。這使得 Locust 具有可擴充套件性和開發者友好性。

特點:

  • Locust 是分散式和可擴充套件的,可輕鬆支援數百或數千名使用者。

  • 基於 Web 的使用者介面,實時顯示進度。

  • 只要稍加修整,就能測試任何系統。

8Prometheus

雲原生計算基礎專案 Prometheus 是一個系統和服務監控系統。它在特定時間從配置的目標提取度量,測試規則,並顯示結果。如果違反指定的條件,它將觸發通知。

特點:

  • 多維資料模型(由度量名稱和一組鍵 / 值維度定義的時間序列)。

  • 通過服務發現或靜態配置發現目標。

  • 不依賴於分散式儲存;單個伺服器節點是自治的。

  • PromQL,一種強大而靈活的查詢語言,可以利用這種維度。

9Kube-monkey

Kube-monkey 是 Netflix 的 Chaos Monkey 的 Kubernetes 叢集實現。Kubernetes POD 的隨機刪除有助於建立抗故障資源,並同時驗證它們。

特點:

  • Kube-monkey 採用的是選擇加入模式,並且只針對 Kubernetes 使用者的終止,這些使用者已經明確接受 Kube-monkey 將終止他們的 pod。

  • 根據你的需求高度定製的排程功能。

10PowerfulSeal

PowerfulSeal 將故障注入到 Kubernetes 叢集中,幫助儘快識別問題。它使描繪完全混沌實驗的場景得以建立。

特點:

  • 相容 Kubernetes、OpenStack、AWS、Azure、GCP 和本地機器。

  • 與 Prometheus 和 Datadog 連線以收集度量。

  • 自定義用例允許多種模式。

11結語

開源技術的最大好處在於它的可擴充套件性。如果需要,你可以在工具中新增功能,使其更適合你的定製架構。這類開源專案擁有廣泛的支援文件和使用者社群。由於微服務架構將在雲端計算領域佔據主導地位,用於監控和排除這些例項的可靠工具肯定會成為每個開發人員的必備工具。

 

文章來自網路,如有侵權,將第一時間刪除內容。