当前位置: 首页 > 科技观察

SRE和DevOps的十大开源项目

时间:2023-03-17 16:59:40 科技观察

【.com快译】因为构建可扩展和高可靠的软件系统是每个SRE(SiteReliabilityEngineering,网站可靠性工程)的最终目标,所以目前有大量汇集业界优秀的SRE/DevOps开源项目和软件产品,供用户学习使用。下面,我们将向您介绍十大在监控、部署和维护方面最流行的开源项目。它们将通过模拟网络流量并允许用户模拟不可预测(或混杂)的事件来实现可靠系统项目的开发。1、Cloudprober作为主动跟踪监控应用,可以比用户更早发现网站的各种故障。它通常使用“主动”监视来检查目标组件是否按预期运行。例如,它会主动运行各种“探测”以确定网站的前端是否可以访问其后端。同样,它可以运行探测来验证本地系统是否真的可以访问云中的目标虚拟机。通过这种跟踪方式,用户可以方便地跟踪独立实现模式下应用的相关配置,及时发现系统中潜在的问题。特点:Cloudprober不仅可以实现与Prometheus、Grafana等开源监控栈的原生集成,还可以导出各种检测结果。Cloudprober具有自动发现云服务目标的特性,为GCE和Kubernetes提供了开箱即用的支持,以及对其他云服务的简单配置。为了简化部署,Cloudprober完全用Go编写并编译成静态二进制文件。可以通过各种Docker容器快速部署。由于具有自动发现功能,Cloudprober不仅可以完成大部分更新操作,而且通常不需要重新部署和配置。Cloudprober的Docker镜像文件比较小,只包含一个静态编译的二进制文件。同时,在运行大量探针时只需要少量的CPU和RAM。图片来源——https://github.com/google/cloudprober2。CloudOperationsSandbox(Alpha)作为一个开源平台,CloudOperationsSandbox允许用户了解Google服务可靠性工程(ServiceReliabilityEngineering)的实践,并使用OpsManagement(以前称为Stackdriver)来管理其云系统。显然,它需要用户拥有谷歌云服务账户,才能使用基于HipsterShop的各种原生微服务。特点:提供基于云原生和微服务架构设计的应用和demo程序。通过脚本处理,一键部署服务到谷歌云平台。它的Demo服务可以生成负载生成器,即:模拟流量的组件。图片来源——https://github.com/GoogleCloudPlatform/cloud-ops-sandbox3。VersionCheckerforKubernetes是一个Kubernetes工具,可以让用户观察集群中正在运行的镜像版本。同时,该工具还允许用户在Grafana仪表盘上以表格形式查看当前镜像版本。特点:能够同时设置多个自托管镜像注册表。版本信息可以作为Prometheus的相关指标,支持ACR、DockerHub、ECR等镜像注册中心。图片来源——https://github.com/jetstack/version-checker4。作为一个开放的框架,Istio可以用来合并微服务,根据微服务监控流量传输,实现各种策略,并以标准化的方式聚合各种遥测数据。Istio的控制平面为底层平台上的集群管理(如Kubernetes)提供了一个抽象层。特点:可为HTTP、gRPC、WebSocket、TCP通信提供自动负载均衡。通过丰富的路由规则、重试、故障转移和故障注入,可以实现对各种流量行为的细粒度控制。提供可嵌入的策略层和API配置,支持访问控制、速率限制和配额。自动为集群内以及集群的入口和出口处的所有流量提供指标、日志和跟踪。通过强身份验证和授权实现跨集群的安全服务到服务通信。图片来源--https://istio.io/5。CheckovCheckov是一个基础架构即代码(Infrastructure-as-Code)类型的静态代码检查工具。它不仅可以扫描Terraform、CloudDetails、Cubanet、无服务器和ARM模型等云基础设施,还可以检测它们的安全性和合规性错误配置。特点:内置400多条规则,涵盖AWS、Azure、GoogleCloud的安全防护和实践。通过评估TerraformProvider的各种设置,能够监控Terraform管理的IaaS、PaaS或SaaS的开发、维护和更新。能够检测EC2用户数据、Lambda上下文变量和Terraform提供程序中的AWS凭证。图片来源-https://www.checkov.io/6。LitmusLitmus是一个基于云原生混沌工程建模的工具集。Litmus通过提供各种工具来协助SRE(站点可靠性工程师)发现其部署中的漏洞,从而在Kubernetes上协调混杂。也就是说,SRE会先在暂存区使用Litmus进行混沌测试,然后在开发过程中用它来发现故障和漏洞,进而实施解决方案,提高系统的健壮性。特点:开发人员可以在应用程序开发期间运行Chaos测试,并将其作为单元或集成测试的扩展。当应用程序在管道中遇到失败路径时,CI(持续集成)管道的构建者可以运行混沌测试来查找错误。图片来源-https://github.com/litmuschaos/litmus7。LocustLocust是一个易于使用、可编写脚本且灵活的性能测试应用程序。您可以使用标准Python代码定义用户行为,而无需复杂的UI(用户界面)或特定于领域的语言。这使得Locust既可扩展又对开发人员友好。特点:Locust具有分布式和可扩展性,用户可以轻松上手。基于Web的UI,可以实时显示进度。通过微小的修改,可以测试各种各样的系统。图片来源-https://github.com/locustio/locust8。Prometheus是云原生计算基金会的一个项目。Prometheus可用于监控各种系统和服务。它从配置的目标中提取指标,测试不同的规则,并在给定时间显示结果。如果发现任何违反指定条件的行为,它会立即触发通知。特点:提供多维数据模型(包括由指标名称和键/值集定义的时间序列)。目标是通过服务发现或静态配置发现的。不依赖分布式存储,单个服务器节点具有自主性。使用强大而灵活的查询语言——PromQL。图片来源-https://github.com/prometheus/prometheus9。Kube-monkeyKube-monkey是Netflix的ChaosMonkey(https://netflix.github.io/chaosmonkey/)的Kubernetes集群实现。它有助于创建强大的资源并通过随机删除Kubernetespod来验证它们。特点:kube-monkey不仅可以按需启用,还可以只对Kubernetes(k8s)用户终止pod。可按需定制各种功能。图片来源-https://www.slideshare.net/arungupta1/chaos-engineering-with-kubernetes10。PowerfulSealPowerfulSeal可以向Kubernetes集群注入故障,帮助用户尽快找出问题的根源。同时,它可以创建具有完整描述的混沌实验方案。特点:兼容Kubernetes、OpenStack、AWS、Azure、GCP和localhost。可以通过连接Prometheus和Datadog(https://www.datadoghq.com/)来收集相关指标。允许用户使用多种模式并针对各种用例进行自定义。图片来源--https://github.com/powerfulseal/powerfulseal总结由于微服务架构在云计算领域持续占据主导地位,我们往往需要借助可靠的工具对实例进行监控,及时响应运行故障调查。开源技术的最大优势来自可扩展性。您可以根据需要向该工具添加功能,以更好地适应您的自定义架构。鉴于以上介绍的十个开源项目都有广泛的支持文档和用户社区,大家可以根据项目实际进行选择。原标题:Top10OpenSourceProjectsforSREsandDevOps,作者:NirSharma