祝坤荣
读完需要
7
分钟速读仅需 3 分钟
原文 ( https://dzone.com/articles/top-open-source-projects-for-sres-and-devops )
翻译: 祝坤荣
构建可伸缩与高可靠的软件系统是所有 SRE 的终极目标。跟着我们最近提供的博客给出的在监控,部署和运维领域的开源项目来进行持续学习。
想成为成功的 SRE 需要持续学习。现在有许多 SRE/DevOps 可使用的开源项目,每一种都是新的而让人兴奋的实现,其经常应对特定领域的挑战。这些开源项目帮你承担的重量让你可以干的更轻松些。除了这些开源项目,这里还有一个可以免费体验的持续学习平台 ( https://pluralsight.pxf.io/e4qgJg )。
/ 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( https://github.com/GoogleCloudPlatform/cloud-ops-sandbox )是一个让专家学习 Google 的 SRE 实践并通过 Ops Management(之前的 Stackdriver)来将其适配到他们自己云系统上的开源平台。它基于 Hipster Shop,一个原生微服务的云上平台。记住:它需要一个 Google 云服务的账号。
特性:
Demo Service - 设计上基于现代,云原生,微服务架构的一个应用。
一键部署 - 一个处理将服务部署到 Google 云平台的脚本。
Load Generator - 在 Demo Service 上制造模拟流量的部分。
/ 3.Kubernetes 版本检查 /
一个让你观察目前运行集群中镜像版本的 Kubernetes 工具 ( https://github.com/jetstack/version-checker#:~:text=version%2Dchecker%20is%20a%20Kubernetes,This%20tool%20is%20currently%20experimental )。这个工具可以让你在 Grafana 仪表盘上看到表格形式的当前镜像版本。
特性:
多个自部署的 registries 可以一次配好。
工具让你可以看到类似 Prometheus 指标的版本信息。
支持如 ACR,DockerHub,ECR 的 registries。
/ 4. Istio /
Istio( https://istio.io/ ) 是一个监控微服务间活动流量的开源框架,实现了策略,并使用标准方式聚合了遥测数据。Istio 的控制面板提供了一个在管理底层集群 Kubernetes 之上的抽象层。
特性:
对于 HTTP,gRPC,WebSocket,TCP 流量的自动负载均衡。
有丰富的规则路由,重试,故障转移,失败注入等控制。
有可拔插的策略层与配置 API 来支持访问控制,限流与配额。
对于集群内的所有流量都能自动度量,日志和追踪,这也包括了在进入集群和出集群的流量。
通过强壮的识别验证与授权保证了在集群中有安全的服务到服务的通信。
/ 5. Checkov /
Checkov(https://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 /
云原生的混沌工程( https://github.com/litmuschaos/litmus )
Limus 是一个云原生的混沌工程工具箱。Litmus 提供了在 Kubernetes 上编排混沌的工具,帮助 SRE 发现他们部署上的脆弱点。SRE 先在预发环境进行混沌测试,并最终在部署环境发现故障和脆弱点。修复这些问题可改进系统的可用性。
特性:
开发者可以在应用部署时将其像运行单元测试或集成测试时一样来进行混沌测试。
对于 CI 流水线构建者:在流水线阶段运行滚吨测试来发现 bug。
/ 7. Locust /
Locust(https://github.com/locustio/locust ) 是一个使用简单,可脚本化和灵活的性能测试应用。你的可以通过标准 Python 代码来定义你用户的行为,不需要用 clunky UI 或者领域特定语言。这让 Locust 在扩展性上很不错且开发者友好。
特性:
Locust 是分布式和可伸缩的 - 可以很容易的支持成百上千的用户。
其基于 Web 的 UI 可以展示实时的进度。
只要一点改动就可以测试任何系统。
/ 8. Prometheus /
Prometheus ( https://github.com/prometheus/prometheus ) 是一个云原生基金会项目,其是系统和服务的监控系统。它从配置好的目标位置抽取度量信息并显示结果。如果查询信息冲突了,它会触发通知。
特性:
一种多维度的数据模型(通过指标名称定义的时间序列和键值对集合的维度)
目标是通过服务发现或静态配置来发现的。
对于分布式存储没有依赖;单服务节点也可以。
PromQL,一个强大和灵活的查询语言
/ 9. Kube-monkey /
Kube-monkey( https://github.com/asobti/kube-monkey ) 是 Netflix‘s Chaos Monkey 的 Kubernetes 集群实现。随机删除 Kubernetes pods 来检测防失败资源并同时进行检测和验证。
特性:
Kube-monkey 使用 opt-in 模型操作并只会在特定已经接受 kube-monkey 可以终止集群 pod 的 Kubernetes 上运行。
基于你的需求高度定制运行日程。
/ 10. PowerfulSeal /
PowerfulSeal ( https://github.com/powerfulseal/powerfulseal )向 Kubernetes 集群注入故障,帮你尽快的识别问题。它解决混沌实验创建的场景。
特性:
与 Kubernetes,OpenStack,AWS,Azure,GCP 和本地机器兼容。
与 Prometheus 与 Datadog 集成收集度量指标。
支持自定义用例等多种模式。
/ 结论 /
通过开源技术的可扩展能力提供的便利,你可以加入适合你自定义架构的特性。这些开源项目有文档与开源社区的支持。由于微服务体系结构将主导云计算领域,监控和定位这些实例问题的可靠工具肯定会成为每个开发人员库的一部分。
本文来自祝坤荣(时序)的微信公众号「麦芽面包」
公众号 id「darkjune_think」
开发者/科幻爱好者/硬核主机玩家/业余翻译转载请注明。
微博:祝坤荣
B 站: https://space.bilibili.com/23185593/ ( https://space.bilibili.com/23185593/ )
交流 Email: zhukunrong@yeah.net