SRE和DevOps值得關注的十大開源項目
構建可擴展且高度可靠的軟件系統(tǒng)是每個SRE的最終目標。
在SRE/DevOps領域中,有大量出色的開源項目,每個項目都有新穎而激動人心的解決方案。在本文中,我們將會介紹一些在監(jiān)控,部署和運維領域最受歡迎的開源項目。
1. Cloudprober
Cloudprober可以主動跟蹤和監(jiān)控應用程序,并幫助你提前發(fā)現(xiàn)故障。它使用“活動(active)”監(jiān)控模型來檢查你的組件是否按預期運行。例如,它會主動運行探針,以確保你的前端是否可以訪問你的后端。同樣,可以運行探針來驗證你的本地系統(tǒng)是否可以真正訪問你的云虛擬機。通過這種跟蹤方法,可以輕松地跟蹤應用程序的配置,還可以輕松定位系統(tǒng)中發(fā)生的問題。
特征:
- 能與Prometheus和Grafana等開源監(jiān)控系統(tǒng)集成。Cloudprober也可以導出探測結果。
- 目標自動發(fā)現(xiàn)。為GCE和Kubernetes提供了開箱即用的支持;其他云服務可以輕松配置。
- 部署簡單。它可以通過Docker容器快速部署。
- 占用空間小。Cloudprober鏡像大小很小,僅包含靜態(tài)編譯的二進制文件,并且它需要非常少的CPU和RAM就能運行大量的探針。
2.Cloud Operations Sandbox(Alpha)
Cloud Operations Sandbox是一個開源平臺,可以通過該平臺了解Google服務的可靠性工程實踐,還可以使用Cloud Operations工具套件,并將其應用于云服務。注意:這需要一個Google云服務帳戶。
特征:
- 演示服務—基于現(xiàn)代云原生微服務架構設計的應用程序。
- 一鍵式部署-通過腳本將服務部署到Google Cloud Platform的工作。
- 負載生成器-在演示服務上模擬流量的組件。
3. Kubernetes的版本檢查器
這是一個Kubernetes工具,可以幫助你查看集群中運行的鏡像的版本。該工具還允許你在Grafana儀表板上,以表格查看鏡像版本。
特征:
- 可以一次設置多個鏡像倉庫。
- 使你可以將版本信息視為Prometheus指標。
- 支持諸如ACR,DockerHub,ECR之類的鏡像倉庫。
4.Istio
Istio是一個開源框架,用于監(jiān)控微服務流量,實施策略以及以標準化方式匯總遙測數(shù)據(jù)。Istio的控制平面上為集群管理(例如Kubernetes)提供了一個抽象層。
特征:
- 支持HTTP,gRPC,WebSocket和TCP通信的負載均衡。
- 通過豐富的路由規(guī)則,重試,故障轉移和故障注入對流量行為進行細粒度控制。
- 可插拔的策略層和配置API,支持訪問控制,速率限制和配額。
- 集群的入口和出口,以及集群內(nèi)所有流量指標,日志和跟蹤信息。
- 基于身份的驗證和授權,保障了服務間通信的安全。
5. Checkov
Checkov是“基礎結構即代碼”的實踐,它是一個靜態(tài)代碼檢查工具,能夠掃描Terraform,Cloud Details,Cubanet,Serverless或ARM模型云基礎架構,并能夠檢測配置是否有誤。
特征:
- 超過400條內(nèi)置規(guī)則涵蓋了AWS,Azure和Google Cloud的最佳安全實踐。
- 能夠監(jiān)控Terraform管理的IaaS,PaaS或SaaS的開發(fā),維護和更新。
- 能夠在EC2用戶數(shù)據(jù),Lambda上下文和Terraform程序中檢測AWS憑證。
6.Litmus
Litmus是一個云原生混沌工程。Litmus提供了一些工具來協(xié)調Kubernetes上的混沌情況,以幫助SRE發(fā)現(xiàn)其部署中的漏洞。SRE首先使用Litmus進行混沌測試,然后使用它來發(fā)現(xiàn)故障和漏洞,提高系統(tǒng)的彈性。
特征:
- 開發(fā)人員可以在應用程序開發(fā)期間運行混沌測試,作為單元測試或集成測試的擴展。
- 對于CI流水線構建者:當應用程序遇到流水線中的故障時,可以運行混沌測試以查找錯誤。
7.Locust
Locust是一個易于使用,可編寫腳本且靈活的性能測試工具。你可以使用Python代碼自定義操作,而不是使用笨拙的UI。這使Locust可以擴展且并對開發(fā)人員友好。
特征:
- Locust具有分布式和可擴展性,可輕松支持成百上千的用戶。
- UI界面,可實時顯示進度。
- 稍加修改就可以測試任何系統(tǒng)。
8.Prometheus
Prometheus是Cloud Native Computing Foundation項目,是一個系統(tǒng)和服務監(jiān)控系統(tǒng)。它在特定時間從已配置的目標中提取指標,測試規(guī)則并顯示結果。如果違反了指定條件,它將觸發(fā)警告通知。
特征:
- 多維數(shù)據(jù)模型(由度量標準定義的時間序列)。
- 通過服務發(fā)現(xiàn)或靜態(tài)配置發(fā)現(xiàn)目標。
- 不依賴于分布式存儲;單個節(jié)點是具有自治能力。
- PromQL,一種強大而靈活的查詢語言。
9.Kube-monkey
Kube-monkey是Netflix的Chaos Monkey在Kubernetes集群中的實現(xiàn)方式。對一個系統(tǒng)進行壓力測試的一種萬無一失的方法是隨機打碎東西。這就是Netflix的Chaos Monkey背后的理論,這是一種混沌工程工具。
特征:
- Kube-monkey的工作方式是在你指定的集群中隨機破壞pod,并且可以在特定的時間窗口內(nèi)進行微調。
- 可根據(jù)你的要求,進行高度可定制。
10.PowerfulSeal
PowerfulSeal會將故障注入Kubernetes集群中,從而幫助你盡快識別問題。它使創(chuàng)建完整的混沌工程成為可能。
特征:
- 與Kubernetes,OpenStack,AWS,Azure,GCP和本地環(huán)境兼容。
- 可以與Prometheus和Datadog集成以進行指標收集。
- 通過自定義用例,支持多種模式。
結論
開源技術的最大好處是它們的可擴展性。你可以根據(jù)需要向該工具添加功能,以更好地適應你的基礎架構。
由于微服務架構成為主流,因此使用可靠的工具來監(jiān)控和診斷系統(tǒng),必將成為每個開發(fā)人員的必備技能。