DevOps 和SRE 的十大開源項目

作者 | Nir Sharma 譯者 | Sambodhi 策劃 | 田曉旭
構(gòu)建可擴(kuò)展的、高可靠性的軟件系統(tǒng)是每個 SRE 的終極目標(biāo)。本文概述了在監(jiān)控、部署和維護(hù)領(lǐng)域中最受歡迎的幾個開源項目。
成功的 SRE 之路就在于不斷的學(xué)習(xí)。對于 SRE/DevOps 來說,目前已經(jīng)有許多優(yōu)秀的開源項目,每個項目都有新的、激動人心的實(shí)現(xiàn),而且常常會面對獨(dú)特的挑戰(zhàn)。這些開源項目完成了繁重的工作,因此你可以更輕松地完成自己的工作。
在本文中,我們將介紹在監(jiān)控、部署和維護(hù)領(lǐng)域中最受歡迎的幾個開源項目。在這些項目中,有一些項目是模擬網(wǎng)絡(luò)流量的項目,并可以讓你為不可預(yù)測的(混沌)事件進(jìn)行建模,從而可以開發(fā)出可靠的系統(tǒng)。
Cloudprober
Cloudprober 是一種主動 跟蹤 和監(jiān)控的應(yīng)用,它能在客戶之前發(fā)現(xiàn)故障。它采用“主動”監(jiān)控模型,以檢查組件是否按預(yù)期運(yùn)行。例如,它主動運(yùn)行探針,以確保前端是否可以訪問后端。同樣,也可以運(yùn)行探針來驗(yàn)證內(nèi)部系統(tǒng)是否能夠真正訪問云內(nèi)虛擬機(jī)。這種跟蹤方法使得跟蹤應(yīng)用程序的配置變得非常簡單,并且與實(shí)現(xiàn)無關(guān),使你能夠輕松地確定系統(tǒng)中發(fā)生了哪些故障。
特點(diǎn):
與 Prometheus 和 Grafana 的開源監(jiān)控棧的原生集成。Cloudprober 也可以導(dǎo)出探測結(jié)果。 對于云目標(biāo),自動發(fā)現(xiàn)目標(biāo)。對 GCE 和 Kubernetes 提供開箱即用的支持;其他云服務(wù)也可以輕松配置。 在易于部署方面作出重大承諾。Cloudprober 完全用 Go 編寫,并被編譯成靜態(tài)二進(jìn)制文件。通過 Docker 容器可以快速部署它。除了大多數(shù)更新之外,Cloudprober 通常不需要重新部署或重新配置,因?yàn)橛凶詣影l(fā)現(xiàn)目標(biāo)。 Cloudprober Docker 鏡像非常小,并且只包含靜態(tài)編譯的二進(jìn)制文件,而且即使運(yùn)行大量的探測,也只需非常少量的 CPU 和內(nèi)存。
使用 IDEA 解決 Java8 的數(shù)據(jù)流問題,極大提升生產(chǎn)力!!
Cloud Operations Sandbox (Alpha)
Cloud Operations Sandbox 是一個開源平臺,它讓專家們了解谷歌的服務(wù)可靠性工程實(shí)踐,并使用 Ops Management(以前的 Stackdriver)將其調(diào)整到他們的云系統(tǒng)中。它基于 Hipster Shop,一個基于云的原生微服務(wù)平臺。注意:這需要谷歌云服務(wù)賬戶。
特點(diǎn):
演示服務(wù):一個設(shè)計在現(xiàn)代云本微服務(wù)架構(gòu)上的應(yīng)用程序。 一鍵部署:一個腳本處理將服務(wù)部署到谷歌云平臺的工作。 負(fù)載生成器:在演示服務(wù)上生成模擬流量的部件。
Version Checker for Kubernetes
Kubernetes 實(shí)用工具 允許你觀察集群中運(yùn)行的映像的現(xiàn)有版本。該工具還允許你在 Grafana 儀表板上以表格形式查看當(dāng)前鏡像版本。
特點(diǎn):
可同時設(shè)置多個自托管注冊中心。 該實(shí)用程序允許將版本信息視為 Prometheus 度量。 支持諸如 ACR、DockerHub、ECR 之類的注冊中心。
當(dāng)MyBatis 3.5.X遇上JDK8竟然出現(xiàn)了性能問題,全項目組都得加班~
Istio
Istio 是一個開放的框架,用于合并微服務(wù)、通過微服務(wù)監(jiān)控流量移動、執(zhí)行策略以及以標(biāo)準(zhǔn)化的方式聚合遙測數(shù)據(jù)。Istio 的控制平面在集群管理的底層平臺(如 Kubernetes)上提供了一個抽象層。
特點(diǎn):
對 HTTP、gRPC、WebSocket 和 TCP 流量進(jìn)行自動負(fù)載均衡。 通過豐富的路由規(guī)則、重試、故障切換和故障注入對流量行為進(jìn)行細(xì)粒度控制。 支持訪問控制、速率限制和配額的可插拔策略層和配置 API。 集群內(nèi)所有流量的自動度量、日志和跟蹤,包括集群入口和出口。 集群中的安全服務(wù)到服務(wù)通信具有強(qiáng)大的基于身份的身份驗(yàn)證和授權(quán)。
Checkov
Checkov 是一個基礎(chǔ)設(shè)施即代碼的靜態(tài)代碼審查工具。它掃描 Terraform、Cloud Details、Cubanet、Serverless 或 ARM 模型云基礎(chǔ)設(shè)施,并檢測安全和合規(guī)性配置錯誤。
特點(diǎn):
400 多條內(nèi)置規(guī)則涵蓋了 AWS、Azure 和谷歌云的最佳保護(hù)和安全實(shí)踐。 評估 Terraform 提供商設(shè)置以監(jiān)視 Terraform 管理的 IaaS、PaaS 或 SaaS 開發(fā)、維護(hù)和更新。 檢測 EC2 用戶數(shù)據(jù)、Lambda 上下文變量和 Terraform 提供商中的 AWS 憑證。
一項無聊的研究與論文,導(dǎo)致整個大學(xué)被Linux封殺!
Litmus
Litmus 是一個基于云的混沌建模工具包。Litmus 提供了在 Kubernetes 上編排混沌的工具,以幫助 SRE 發(fā)現(xiàn)部署中的漏洞。SRE 使用 Litmus 進(jìn)行混沌測試,首先在暫存區(qū),最后在開發(fā)區(qū)中發(fā)現(xiàn)故障和漏洞。修復(fù)這些缺陷,從而提高系統(tǒng)的彈性。
特點(diǎn):
開發(fā)人員可以在應(yīng)用開發(fā)過程中運(yùn)行混沌測試,作為單元測試或集成測試的擴(kuò)展。 對于 CI 管道構(gòu)建器:當(dāng)應(yīng)用程序在管道中遭遇故障路徑時,將混沌作為管道階段運(yùn)行,以查找錯誤。
Spring在Java領(lǐng)域的統(tǒng)治地位:86% 的Java開發(fā)者依賴它!
Locust
Locust 是一個簡單易用、可編寫腳本且靈活的性能測試應(yīng)用程序。你可以在標(biāo)準(zhǔn)的 Python 代碼中定義用戶的行為,而不是使用笨重的 UI 或特定領(lǐng)域的語言。這使得 Locust 具有可擴(kuò)展性和開發(fā)者友好性。
特點(diǎn):
Locust 是分布式和可擴(kuò)展的,可輕松支持?jǐn)?shù)百或數(shù)千名用戶。 基于 Web 的用戶界面,實(shí)時顯示進(jìn)度。 只要稍加修整,就能測試任何系統(tǒng)。
SQL 語句中 left join 后用 on 還是 where,區(qū)別大了!
Prometheus
云原生計算基礎(chǔ)項目 Prometheus 是一個系統(tǒng)和服務(wù)監(jiān)控系統(tǒng)。它在特定時間從配置的目標(biāo)提取度量,測試規(guī)則,并顯示結(jié)果。如果違反指定的條件,它將觸發(fā)通知。
特點(diǎn):
多維數(shù)據(jù)模型(由度量名稱和一組鍵 / 值維度定義的時間序列)。 通過服務(wù)發(fā)現(xiàn)或靜態(tài)配置發(fā)現(xiàn)目標(biāo)。 不依賴于分布式存儲;單個服務(wù)器節(jié)點(diǎn)是自治的。 PromQL,一種強(qiáng)大而靈活的查詢語言,可以利用這種維度。
Kube-monkey
Kube-monkey 是 Netflix 的 Chaos Monkey 的 Kubernetes 集群實(shí)現(xiàn)。Kubernetes POD 的隨機(jī)刪除有助于創(chuàng)建抗故障資源,并同時驗(yàn)證它們。
特點(diǎn):
Kube-monkey 采用的是選擇加入模式,并且只針對 Kubernetes 用戶的終止,這些用戶已經(jīng)明確接受 Kube-monkey 將終止他們的 pod。 根據(jù)你的需求高度定制的調(diào)度功能。
Spring Boot 庫存管理系統(tǒng),拿來學(xué)習(xí)真香
PowerfulSeal
PowerfulSeal 將故障注入到 Kubernetes 集群中,幫助盡快識別問題。它使描繪完全混沌實(shí)驗(yàn)的場景得以創(chuàng)建。
特點(diǎn):
兼容 Kubernetes、OpenStack、AWS、Azure、GCP 和本地機(jī)器。 與 Prometheus 和 Datadog 連接以收集度量。 自定義用例允許多種模式。
黑客用GitHub服務(wù)器挖礦,三天跑了3萬個任務(wù),代碼驚現(xiàn)中文
結(jié)語
開源技術(shù)的最大好處在于它的可擴(kuò)展性。如果需要,你可以在工具中添加功能,使其更適合你的定制架構(gòu)。這類開源項目擁有廣泛的支持文檔和用戶社區(qū)。由于微服務(wù)架構(gòu)將在云計算領(lǐng)域占據(jù)主導(dǎo)地位,用于監(jiān)控和排除這些實(shí)例的可靠工具肯定會成為每個開發(fā)人員的必備工具。
往期推薦
免費(fèi)領(lǐng)取:字節(jié)跳動高階算法大全
喜歡的這里報道
↘↘↘



