当前位置:主页 > 查看内容

针对SREs和DevOps的十大开源项目

发布时间:2021-04-16 00:00| 位朋友查看

简介:【51CTO.com快译】由于构建可扩展、且高度可靠的软件系统,是每个SRE(Site Reliability Engineering,网站可靠性工程)的最终目标,因此目前业界有着大量出色的SRE/DevOps开源项目与软件产品,可供用户学习与使用。 下面,我们将向您介绍十种在监控、部署和维……

【51CTO.com快译】由于构建可扩展、且高度可靠的软件系统,是每个SRE(Site Reliability Engineering,网站可靠性工程)的最终目标,因此目前业界有着大量出色的SRE/DevOps开源项目与软件产品,可供用户学习与使用。

下面,我们将向您介绍十种在监控、部署和维护领域,最受欢迎的开源项目。它们将能够通过模拟网络流量,并方便用户对不可预测(或混杂)的事件进行建模,以开发出可靠的系统项目。

1. Cloudprober

作为一种主动性的跟踪和监控应用程序,Cloudprober可以早于用户发现网站上的各种故障。它通常使用“主动”监控的模式,来检查目标组件是否能够按照预期运行。例如,它会主动运行各种“探针”,以判断网站的前端是否可以访问其后端。同样,它也可以运行某个探针,来验证本地系统是否可以真正访问到云端的目标虚拟机。通过这种跟踪方法,用户可以采取独立的实现方式,轻松地跟踪应用程序的相关配置,并及时发现系统中的潜在问题。

特征:

  • Cloudprober不但能够与Prometheus和Grafana之类的开源监控栈实现原生集成,也可以导出各种探测的结果。
  • 通过自动发现云服务目标的特性,Cloudprober为GCE和Kubernetes提供了开箱即用的支持,以及针对其他云服务的轻松配置。
  • 为了简化部署,Cloudprober由Go语言完全编写,并被编译成了一个静态的二进制文件。它可以通过各种Docker容器快速完成部署。由于具有自动发现功能,Cloudprober不但可以完成大部分更新操作,而且通常不需要被重新部署与配置。
  • Cloudprober的Docker镜像文件比较小,仅包含了一个经过静态编译的二进制文件。同时,它在运行大量探针时,仅需少量CPU和RAM。

图片来源--https://github.com/google/cloudprober

2. Cloud Operations Sandbox(Alpha)

作为一个开源平台,Cloud Operations Sandbox可以让用户了解Google服务可靠性工程(Service Reliability Engineering)的各项实践,并使用Ops Management(以前被称为Stackdriver)来管理其云端系统。显然,它需要用户拥有一个Google云服务帐户,才能基于Hipster Shop使用各种原生的微服务。

特征:

  • 提供基于云原生、微服务架构设计的应用和Demo程序。
  • 通过脚本处理,将服务一键式部署到Google云平台。
  • 其Demo服务可以生成负载生成器,即:模拟流量的部件。

图片来源--https://github.com/GoogleCloudPlatform/cloud-ops-sandbox

3. Version Checker for Kubernetes

作为一款Kubernetes工具,它可以让用户观察到群集中正在运行的镜像版本。同时,该工具也允许用户在Grafana仪表板上,以表格的格式查看当前镜像的版本。

特征:

  • 能够一次性设置多个自托管的镜像注册中心。
  • 可以将版本信息作为Prometheus的相关指标
  • 支持诸如ACR、DockerHub、以及ECR之类的镜像注册中心。

图片来源--https://github.com/jetstack/version-checker

4. Istio

作为一个开放的框架,Istio可被用于合并微服务,根据微服务来监控流量的转移,实施各项策略,以及采取标准化的方式,汇总各种遥测数据(telemetry data)。Istio的控制层面能够在底层平台上,为群集管理(如Kubernetes)提供一个抽象层。

特征:

  • 能够为HTTP、gRPC、WebSocket、以及TCP通信,提供自动化的负载均衡。
  • 可以通过丰富的路由规则、重试、故障转移、以及故障注入,对各种流量行为进行细粒度的控制。
  • 提供可嵌入式的策略层和API配置,支持访问控制、速率限制和配额。
  • 自动提供群集内、以及群集出入口处,所有流量的各项指标、日志和跟踪。
  • 通过强大的身份验证和授权,在群集中实现安全的服务间(service-to-service)通信。

图片来源--https://istio.io/

5. Checkov

Checkov是一种基础架构即代码(Infrastructure-as-Code)类型的静态代码检查工具。它不但能够扫描Terraform、Cloud Details、Cubanet、无服务器、以及ARM Models等云端基础架构,而且可以检测它们的安全性、以及合规性方面的配置错误。

特征:

  • 拥有超过400条内置的规则,涵盖了针对AWS、Azure、以及Google Cloud的安全保护与实践。
  • 能够通过评估Terraform Provider的各种设置,监控由Terraform管理的IaaS、PaaS或SaaS的开发、维护和更新。
  • 能够检测EC2 Userdata中的AWS凭证、Lambda的上下文变量、以及Terraform Providers。

图片来源--https://www.checkov.io/

6. Litmus

Litmus是基于云原生混沌工程建模的工具集。Litmus通过提供各种工具,来协调Kubernetes上的混杂情况,以协助SRE(网站可靠性工程师)发现其部署中的漏洞。也就是说,SRE首先会使用Litmus在staging区域进行混沌测试,然后在开发过程中,使用它来发现故障和漏洞,进而通过实施解决方案,来提高系统的鲁棒性。

特征:

  • 开发人员可以在应用开发期间运行混沌测试,并作为单元测试或集成测试的一种扩展。
  • 当应用遇到管道中的故障路径时,CI(持续集成)管道的构建者可以运行混沌测试,来查找错误。

图片来源--https://github.com/litmuschaos/litmus

7. Locust

Locust是一个易于使用的,可编写脚本且灵活的性能测试应用程序。您可以使用标准的Python代码定义用户的行为,而无需使用复杂的UI(用户接口)或特定域的语言。这使得Locust既可以扩展,又对开发人员十分友好。

特征:

  • Locust具有分布式和可扩展性的特点,用户可以轻松地上手使用。
  • 基于Web的UI,可以实时显示进度。
  • 只要稍加修改,就可以测试多种系统。

图片来源--https://github.com/locustio/locust

8. Prometheus

作为Cloud Native Computing Foundation的项目,Prometheus可以被用来监控各种系统与服务。它能够在指定时间,从已配置的目标中提取各项指标,测试不同的规则,并显示结果。如果发现任何违反了指定条件的情况,它会立即触发通知。

特征:

  • 提供多维的数据模型(包括由度量标准名称和键/值集所定义的时间序列)。
  • 通过服务发现或静态配置,来发现目标。
  • 不依赖于分布式存储,且单个服务器节点具有自治能力。
  • 使用一种强大而灵活的查询语言--PromQL。

图片来源--https://github.com/prometheus/prometheus

9. Kube-monkey

Kube-monkey是Netflix’s Chaos Monkey(https://netflix.github.io/chaosmonkey/)的一种Kubernetes集群实现。它通过随机删除Kubernetes Pod,来协助创建鲁棒的资源,并对其进行验证。

特征:

  • Kube-monkey不但可以按需启用,并且可以仅针对Kubernetes(k8s)用户去终止pod。
  • 可按需定制的各项功能。

图片来源--https://www.slideshare.net/arungupta1/chaos-engineering-with-kubernetes

10. PowerfulSeal

PowerfulSeal能够通过将故障注入Kubernetes集群中,以协助用户尽快地识别出问题的根源。同时,它能够创建具有完整描述的混沌实验方案。

特征:

  • 可与Kubernetes、OpenStack、AWS、Azure、GCP、以及本地主机相兼容。
  • 可通过与Prometheus和Datadog(https://www.datadoghq.com/)连接,以收集相关指标。
  • 允许用户使用多种模式,并自定义各种用例。

图片来源--https://github.com/powerfulseal/powerfulseal

小结

由于微服务架构在云计算领域持续占据着主导地位,因此我们往往需要通过可靠的工具,来监控实例,并及时对运行中的故障予以排查。开源技术的最大优势来源于可扩展性。您可以按需向工具中添加各种功能,以更好地适应自定义的体系架构。鉴于上述介绍的十种开源项目,都有着广泛的支持文档和用户社区,您可以根据实际项目,进行选用。

原文标题:Top 10 Open Source Projects for SREs and DevOps,作者: Nir Sharma

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】


本文转载自网络,原文链接:https://www.51cto.com/
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐