DevOps 和 SRE 的十大開源項目
作者 | Nir Sharma
譯者 | Sambodhi
策劃 | 田曉旭
構建可擴展的、高可靠性的軟件系統是每個 SRE 的終極目標。本文概述了在監控、部署和維護領域中最受歡迎的幾個開源項目。
在本文中,我們將介紹在監控、部署和維護領域中最受歡迎的幾個開源項目。在這些項目中,有一些項目是模擬網絡流量的項目,並可以讓你爲不可預測的(混沌)事件進行建模,從而可以開發出可靠的系統。
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
-
對 HTTP、gRPC、WebSocket 和 TCP 流量進行自動負載均衡。
-
通過豐富的路由規則、重試、故障切換和故障注入對流量行爲進行細粒度控制。
-
支持訪問控制、速率限制和配額的可插拔策略層和配置 API。
-
集羣內所有流量的自動度量、日誌和跟蹤,包括集羣入口和出口。
-
集羣中的安全服務到服務通信具有強大的基於身份的身份驗證和授權。
特點:
-
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 結語
開源技術的最大好處在於它的可擴展性。如果需要,你可以在工具中添加功能,使其更適合你的定製架構。這類開源項目擁有廣泛的支持文檔和用戶社區。由於微服務架構將在雲計算領域佔據主導地位,用於監控和排除這些實例的可靠工具肯定會成爲每個開發人員的必備工具。
作者介紹:
Nir Shrma,Squadcast 技術內容撰稿人。
原文鏈接:
https://dzone.com/articles/top-open-source-projects-for-sres-and-devops
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/2jEUO9eNJ-LwZzE3B0y53g