SRE和DevOps值得关注的十大开源项目

Tommy744
• 阅读 1585

构建可扩展且高度可靠的软件系统是每个SRE的最终目标。

在SRE/DevOps领域中,有大量出色的开源项目,每个项目都有新颖而激动人心的解决方案。在本文中,我们将会介绍一些在监视,部署和维护领域最受欢迎的开源项目。

1. Cloudprober

Cloudprober可以主动跟踪和监视应用程序,并帮助你提前发现故障。它使用“活动(active)”监视模型来检查你的组件是否按预期运行。例如,它会主动运行探针,以确保你的前端是否可以访问你的后端。同样,可以运行探针来验证你的本地系统是否可以真正访问你的云虚拟机。通过这种跟踪方法,可以轻松地跟踪应用程序的配置,还可以轻松定位系统中发生的问题。

特征:

  • 能与Prometheus和Grafana等开源监视系统集成。Cloudprober也可以导出探测结果。
  • 目标自动发现。为GCE和Kubernetes提供了开箱即用的支持;其他云服务可以轻松配置。
  • 部署简单。它可以通过Docker容器快速部署。
  • 占用空间小。Cloudprober镜像大小很小,仅包含静态编译的二进制文件,并且它需要非常少的CPU和RAM就能运行大量的探针。

SRE和DevOps值得关注的十大开源项目

2.Cloud Operations Sandbox(Alpha)

Cloud Operations Sandbox是一个开源平台,可以通过该平台了解Google服务的可靠性工程实践,还可以使用Cloud Operations工具套件,并将其应用于云服务。注意:这需要一个Google云服务帐户。

特征:

  • 演示服务—基于现代云原生微服务架构设计的应用程序。
  • 一键式部署-通过脚本将服务部署到Google Cloud Platform的工作。
  • 负载生成器-在演示服务上模拟流量的组件。

SRE和DevOps值得关注的十大开源项目

3. Kubernetes的版本检查器

这是一个Kubernetes工具,可以帮助你查看集群中运行的镜像的版本。该工具还允许你在Grafana仪表板上,以表格查看镜像版本。

特征:

  • 可以一次设置多个镜像仓库。
  • 使你可以将版本信息视为Prometheus指标。
  • 支持诸如ACR,DockerHub,ECR之类的镜像仓库。

SRE和DevOps值得关注的十大开源项目

4.Istio

Istio是一个开源框架,用于监视微服务流量,实施策略以及以标准化方式汇总遥测数据。Istio的控制平面上为集群管理(例如Kubernetes)提供了一个抽象层。

特征:

  • 支持HTTP,gRPC,WebSocket和TCP通信的负载均衡。
  • 通过丰富的路由规则,重试,故障转移和故障注入对流量行为进行细粒度控制。
  • 可插拔的策略层和配置API,支持访问控制,速率限制和配额。
  • 集群的入口和出口,以及集群内所有流量指标,日志和跟踪信息。
  • 基于身份的验证和授权,保障了服务间通信的安全。

SRE和DevOps值得关注的十大开源项目

5. Checkov

Checkov是“基础结构即代码”的实践,它是一个静态代码检查工具,能够扫描Terraform,Cloud Details,Cubanet,Serverless或ARM模型云基础架构,并能够检测配置是否有误。

特征:

  • 超过400条内置规则涵盖了AWS,Azure和Google Cloud的最佳安全实践。
  • 能够监视Terraform管理的IaaS,PaaS或SaaS的开发,维护和更新。
  • 能够在EC2用户数据,Lambda上下文和Terraform程序中检测AWS凭证。

SRE和DevOps值得关注的十大开源项目

6.Litmus

Litmus是一个云原生混沌工程。Litmus提供了一些工具来协调Kubernetes上的混沌情况,以帮助SRE发现其部署中的漏洞。SRE首先使用Litmus进行混沌测试,然后使用它来发现故障和漏洞,提高系统的弹性。

特征:

  • 开发人员可以在应用程序开发期间运行混沌测试,作为单元测试或集成测试的扩展。
  • 对于CI流水线构建者:当应用程序遇到流水线中的故障时,可以运行混沌测试以查找错误。

SRE和DevOps值得关注的十大开源项目

7.Locust

Locust是一个易于使用,可编写脚本且灵活的性能测试工具。你可以使用Python代码自定义操作,而不是使用笨拙的UI。这使Locust可以扩展且并对开发人员友好。

特征:

  • Locust具有分布式和可扩展性,可轻松支持成百上千的用户。
  • UI界面,可实时显示进度。
  • 稍加修改就可以测试任何系统。

SRE和DevOps值得关注的十大开源项目

8.Prometheus

Prometheus是Cloud Native Computing Foundation项目,是一个系统和服务监视系统。它在特定时间从已配置的目标中提取指标,测试规则并显示结果。如果违反了指定条件,它将触发警告通知。

特征:

  • 多维数据模型(由度量标准定义的时间序列)。
  • 通过服务发现或静态配置发现目标。
  • 不依赖于分布式存储;单个节点是具有自治能力。
  • PromQL,一种强大而灵活的查询语言。

SRE和DevOps值得关注的十大开源项目

9.Kube-monkey

Kube-monkeyNetflix的Chaos Monkey在Kubernetes集群中的实现方式。对一个系统进行压力测试的一种万无一失的方法是随机打碎东西。这就是Netflix的Chaos Monkey背后的理论,这是一种混沌工程工具。

特征:

  • Kube-monkey的工作方式是在你指定的集群中随机破坏pod,并且可以在特定的时间窗口内进行微调。
  • 可根据你的要求,进行高度可定制。

SRE和DevOps值得关注的十大开源项目

10.PowerfulSeal

PowerfulSeal会将故障注入Kubernetes集群中,从而帮助你尽快识别问题。它使创建完整的混沌工程成为可能。

特征:

  • 与Kubernetes,OpenStack,AWS,Azure,GCP和本地环境兼容。
  • 可以与PrometheusDatadog集成以进行指标收集。
  • 通过自定义用例,支持多种模式。

SRE和DevOps值得关注的十大开源项目

结论

开源技术的最大好处是它们的可扩展性。你可以根据需要向该工具添加功能,以更好地适应你的基础架构。

由于微服务架构成为主流,因此使用可靠的工具来监视和诊断系统,必将成为每个开发人员的必备技能。

译文链接:https://dzone.com/articles/top-open-source-projects-for-sres-and-devops

本文转自 https://www.kubernetes.org.cn/9046.html,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
金旋 金旋
2个月前
2023老男孩Linux云计算SRE工程师85期
//下仔のke:https://yeziit.cn/15036/SRE(SiteReliabilityEngineering)是一种工程实践,旨在确保软件系统的可靠性和稳定性。SRE结合了软件开发、可靠性工程和系统运维的实践,旨在构建可靠、可扩展和可维护的
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
2年前
DOIS 2019 DevOps国际峰会北京站来袭~
DevOps国际峰会是国内唯一的国际性DevOps技术峰会,由OSCAR 联盟指导、DevOps时代社区与高效运维社区联合主办,共邀全球80余名顶级专家畅谈DevOps体系与方法、过程与实践、工具与技术。会议召开时间:2019070508:00至2019070618:00结束会议召开地点:北京主办单位:DevOps
Stella981 Stella981
2年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这