SRE與DevOps的10大開源專案

語言: CN / TW / HK

原文: http://dzone.com/articles/to...

翻譯: 祝坤榮

構建可伸縮與高可靠的軟體系統是所有SRE的終極目標。跟著我們最近提供的部落格給出的在監控,部署和運維領域的開源專案來進行持續學習。

想成為成功的SRE需要持續學習。現在有許多SRE/DevOps可使用的開源專案,每一種都是新的而讓人興奮的實現,其經常應對特定領域的挑戰。這些開源專案幫你承擔的重量讓你可以乾的更輕鬆些。除了這些開源專案,這裡還有一個可以免費體驗的持續學習平臺。

1.CLoudprober

Cloudprober是一個聚焦於在你的客戶發現前定位故障的主動追蹤與監控的應用。它使用一種‘主動’的監控模型來對你執行的元件是否符合預期來進行檢查。它主動執行探針,比如,確保你的前端可以訪問你的後端。同樣的,探針也可以用來確保你的系統可以到達你雲上的虛機VM。這種追蹤方式更簡單,並與實現獨立,跟蹤你應用的配置來讓你簡單的發現系統中哪裡出問題了。

特性:

  • 與開源監控棧Prometheus和Grafana原生整合。Cloudprober也可以匯出探針結果。
  • 對於雲上的目標,自動發現目標。對於GCE與Kubernetes可開箱即用;其他雲服務也可以通過簡單的配置來完成。
  • 在部署上極簡單。Cloudprober用Go編寫並編譯成一個可執行的二進位制包。它可以快速通過Docker容器部署。對於更新,由於其自動發現基本上不需要重新部署和重配置Cloudprober。
  • Cloudprober Docker映象很小,只包含了一個靜態編譯後的二進位制檔案,它只需要很小的CPU和RAM來執行大數量的探針。

2. Cloud Operations Sandbox(Alpha)

Cloud Operations Sandbox( http://github.com/GoogleClou... )是一個讓專家學習Google的SRE實踐並通過Ops Management(之前的Stackdriver)來將其適配到他們自己雲系統上的開源平臺。它基於Hipster Shop,一個原生微服務的雲上平臺。記住:它需要一個Google雲服務的賬號。

特性:

  • Demo Service - 設計上基於現代,雲原生,微服務架構的一個應用。
  • 一鍵部署 - 一個處理將服務部署到Google雲平臺的指令碼。
  • Load Generator - 在Demo Service上製造模擬流量的部分。

3.Kubernetes版本檢查

一個讓你觀察目前執行叢集中映象版本的Kubernetes工具( http://github.com/jetstack/v... ,This%20tool%20is%20currently%20experimental.)。這個工具可以讓你在Grafana儀表盤上看到表格形式的當前映象版本。

特性:

  • 多個自部署的registries可以一次配好。
  • 工具讓你可以看到類似Prometheus指標的版本資訊。
  • 支援如ACR,DockerHub,ECR的registries。

4. Istio

Istio(http://istio.io/)是一個監控微服務間活動流量的開源框架,實現了策略,並使用標準方式聚合了遙測資料。Istio的控制面板提供了一個在管理底層叢集Kubernetes之上的抽象層。

特性:

  • 對於HTTP,gRPC,WebSocket,TCP流量的自動負載均衡。
  • 有豐富的規則路由,重試,故障轉移,失敗注入等控制。
  • 有可拔插的策略層與配置API來支援訪問控制,限流與配額。
  • 對於叢集內的所有流量都能自動度量,日誌和追蹤,這也包括了在進入叢集和出叢集的流量。
  • 通過強壯的識別驗證與授權保證了在叢集中有安全的服務到服務的通訊。

5. Checkov

Checkov( http://www.checkov.io/ )是一個基礎設施即程式碼的靜態程式碼review工具。它掃描Terraform,Cloud Details,Cubanet,Serverless,或者ARM模型的雲基礎設施,檢查安全與錯誤配置。

特性:

  • 超過400條內建的規則覆蓋了AWS,Azure,Google雲的最佳保護與安全實踐。
  • Terraform供應商配置可監控Terraform管理的IaaS,PaaS,或SaaS部署,維護和更新。
  • 檢測EC2 使用者資料,Lambda上下文變數,Terraform供應商中的AWS身份資訊。

6. Litmus

雲原生的混沌工程( http://github.com/litmuschao...

Limus是一個雲原生的混沌工程工具箱。Litmus提供了在Kubernetes上編排混沌的工具,幫助SRE發現他們部署上的脆弱點。SRE先在預發環境進行混沌測試,並最終在部署環境發現故障和脆弱點。修復這些問題可改進系統的可用性。

特性:

  • 開發者可以在應用部署時將其像執行單元測試或整合測試時一樣來進行混沌測試。
  • 對於CI流水線構建者:在流水線階段執行滾噸測試來發現bug。

7. Locust

Locust( http://github.com/locustio/l... )是一個使用簡單,可指令碼化和靈活的效能測試應用。你的可以通過標準Python程式碼來定義你使用者的行為,不需要用clunky UI或者領域特定語言。這讓Locust在擴充套件性上很不錯且開發者友好。

特性:

  • Locust是分散式和可伸縮的 - 可以很容易的支援成百上千的使用者。
  • 其基於Web的UI可以展示實時的進度。
  • 只要一點改動就可以測試任何系統。

8. Prometheus

Prometheus( http://github.com/prometheus... ,一個雲原生基金會專案,是系統和服務的監控系統。它從配置好的目標位置抽取度量資訊並顯示結果。如果查詢資訊衝突了,它會觸發通知。

特性:

  • 一種多維度的資料模型(通過指標名稱定義的時間序列和鍵值對集合的維度)
  • 目標是通過服務發現或靜態配置來發現的。
  • 對於分散式儲存沒有依賴;單服務節點也可以。
  • PromQL,一個強大和靈活的查詢語言

9. Kube-monkey

Kube-monkey( http://github.com/asobti/kub... 是Netflix‘s Chaos Monkey的Kubernetes叢集實現。隨機刪除Kubernetes pods來檢測防失敗資源並同時進行檢測和驗證。

特性:

  • Kube-monkey使用opt-in模型操作並只會在特定已經接受kube-monkey可以終止叢集pod的Kubernetes上執行。
  • 基於你的需求高度定製執行日程。

10. PowerfulSeal

PowerfulSeal( http://github.com/powerfulse... 向Kubernetes叢集注入故障,幫你儘快的識別問題。它解決混沌實驗建立的場景。

特性:

  • 與Kubernetes,OpenStack,AWS,Azure,GCP和本地機器相容。
  • 與Prometheus與Datadog整合收集度量指標。
  • 支援自定義用例等多種模式。

結論

通過開源技術的可擴充套件能力提供的便利,你可以加入適合你自定義架構的特性。這些開源專案有文件與開源社群的支援。由於微服務體系結構將主導雲端計算領域,監控和定位這些例項問題的可靠工具肯定會成為每個開發人員庫的一部分。

本文來自祝坤榮(時序)的微信公眾號「麥芽麵包」,公眾號id「darkjune_think」

開發者/科幻愛好者/硬核主機玩家/業餘翻譯

轉載請註明。

微博:祝坤榮

B站: http://space.bilibili.com/23...

交流Email: [email protected]