随着技术的不断发展,DevOps 和 SRE(网站可靠性工程师) 领域的专业人员需要紧跟时代并了解推动行业前进的工具和实践。
下面将详细介绍2023年应该注意的15个基本工具,这些工具有助于进行图表化、部署、测试、监控、分流、通信和告警。
监控及可观测性
监测和可观测性是任何 DevOps 和 SRE 战略的关键组成部分,它们允许组织收集有关其系统性能和行为的数据,并识别和解决任何可能迅速出现的问题。
通过实施有效的监控和可观测性做法,各组织可以确保其系统运行顺畅,任何问题都能被迅速发现和解决,从而使它们能够向用户提供高质量的服务。
SigNoz
SigNotz 是一个开源的 APM (应用程序性能监控)工具,可以将其用作 Datadog 和 NewRelic 等其他工具的替代品,它可以非常方便地监视应用程序并进行故障排除。
此外,SigNoz 还集成了 OpenTelemery,支持各种语言和框架来实现它,比如 Java、 Ruby、 Python、 Elixir 等等。
Elastic APM
正如名称中所述,这是另一个 APM 软件,主要区别在于Elastic APM 有两种风格:SaaS 版和自托管的开源版本。
Elastic APM 可以与一系列应用程序集成,包括 Web 服务器、数据库和消息代理,并且可以与 Elastic Stack 无缝地工作,后者是一套用于收集、存储和分析数据的工具。
应用平台
这部分是一些基本工具,可以将应用程序部署到生产环境或在本地成功地进行快速测试。
这里不会讨论其他更广为人知的工具,如 Kubernetes、 Docker 和 Ansible,因为它们已经在许多其他文章中被提到过。
Kind
KIND (Kubernetes IN Docker)是一个使用 Docker 集装箱化运行本地 Kubernetes 集群的工具,允许开发人员在本地 Kubernetes 环境中测试他们的应用程序,而无需设置单独的集群。这对于测试依赖于多个微服务的应用程序或在本地环境中开发和调试应用程序尤其有用。
Podman
Podman 是一个容器管理工具,作为 Docker 的替代品,它使用户能够在 Linux 系统上创建和管理容器。
与使用守护进程来管理容器的 Docker 不同,Podman 直接与容器运行时通信来创建和管理容器,所以不需要启动或管理像 Docker 守护进程这样的守护进程。
此外,Podman 不需要 root 访问权限,因此它被认为比 Docker 更安全。
Terraform
这是一个用于基础设施的工具,能够使用易于阅读和理解的配置文件创建和管理云和内部资源。可以使用这些配置文件来定义和版本化基础设施,然后使用统一的过程在整个生命周期中提供和管理它。
Terraform 既可以处理低级资源(如计算、存储和网络) ,也可以处理高级资源(如 DNS 条目和软件即服务(SaaS)特性)。
Chat and ChatOps
聊天应用程序对 DevOps 和 SRE 团队越来越重要,因为它们是实时通信和聊天运维(ChatOps)所必需的。
ChatOps 是一种将基于聊天的通信与运维任务相结合的协作模型,旨在通过允许团队通过聊天来管理其基础设施和应用程序,从而提高团队的效率和有效性。
Mattermost
Mattermost 是 Slack 的一个开源自托管替代品,可以通过聊天、语音和视频实现团队协作,是为开发人员、 DevOps 和 SRE 团队设计的。
Mattermost 可以和 Jira、 Gitlab、 Github 和 Jenkins 等很多其它工具进行集成,这使得开发团队能够直接从聊天中执行关键的操作。
Airplane
Airplane 是一个 SaaS 工具,使用它可以更快地构建内部工具和工作流。
使用 Airlane,可以快速生成支持 UI 和授权逻辑,以执行后端或基础设施任务,如发布、重新启动服务或扩展试用。
由于可以和 Slack 集成的强大性,就可以在 Slack 中运行这些任务,或者直接从聊天界面授权它们。
事故管理
事故管理对于任何成功的 DevOps 或 SRE 团队都是至关重要的,它包括识别、响应和解决组织系统或过程中的问题或事件。
有效的事件管理有助于最小化这些事件对业务的影响,减少解决这些事件所需的时间,并提高整个系统的可靠性。
Grafana Incident
Grafana 实验室在2022年推出了他们的事件管理平台 Grafana Incident,通过自动化事件管理的日常任务使得对事件的反应更快,这有助于专注于实际解决问题。
Incident.io
这是 Grafana Incident 的替代方案,可以直接从 Slack 关注事件管理,使得采用变得容易。此工具还将帮助团队通过自动生成的事后剖析、时间线和 Insights 指示板从事件中学习。
Statuspal
这个 SaaS 工具可以帮助团队有效地与涉众(不管是客户还是员工)沟通事件,它提供了许多自动化和集成功能,使得能够在事件通信中节省时间,并将重点放在修复上。
CState
CState 是事件通信的一个极简主义和开源的替代品,它一个有趣的地方是基于 Hugo (静态站点生成器)。由于这一点,它可以很容易地通过各种提供商托管,如 Github 或 Netlify,并运行非常快,由于静态结构的网站。
图表
能够有效地记录诸如 CI/CD 管道、网络基础设施、系统组件依赖性等内容,是 DevOps/SRE 角色的关键职责。下列工具允许将图表作为代码,使您能够将图表保存为存储库的一部分并与团队成员协作。
D2
D2是一种新的、声明性的绘图语言,它可以使绘制技术图简单易行,它是 Terrastruct 的一部分,可以开始免费使用它。
D2 语法直观,易于入门。
Mingrammer/diagrams
使用Mingrammer,您可以使用 Python 代码绘制云系统架构,它是专门为了建立新系统架构的原型而创建的,不需要设计工具,但是它也可以用来描述或可视化现有的系统架构。
CI/CD
持续集成/持续交付是一种软件开发实践,旨在简化和自动化软件的构建、测试和部署过程。
CI/CD 实践,或 CI/CD 流水线,构成了现代 DevOps 业务的主干。
以下工具同时提供 SaaS 和自托管两种选项。
GitLab
GitLab 是一个基于 Web 的 Git 存储库管理器,提供源代码管理(SCM)、持续集成等功能。它旨在托管和管理 Git 存储库,并促进整个 DevOps 生命周期,包括规划、开发、测试和部署。
GitLab CI/CD 是 GitLab 的一个特性,它可以帮助团队自动化软件的构建、测试和部署过程。它被集成到 GitLab 平台中,并允许用户定义作业管道,每当代码更改被推送到存储库时,这些作业管道将自动运行。
Jenkins
Jenkins 是一个开源自动化服务器,帮助团队自动化软件开发过程的一部分,它支持构建、测试和部署软件,以及自动化与开发和操作相关的其他任务。
Jenkins 被设计成易于使用,并且可以通过网页界面或用多种语言编写脚本进行配置。它集成了广泛的工具和服务,使其成为寻求实现 CI/CD 过程的团队的流行选择。
结论
随着每年越来越多的 DevOps 和 SRE 工具的出现,我们很难跟上它们的步伐,所以这些工具特别引起了我们的注意,我们相信它们可以为您提供最大的价值。