左移:SRE和开发人员如何最终同步工作

了解站点可靠性工程师如何“左移”以增强协作、可靠性和效率。

译自 Shifting Left: How SREs and Developers Can Finally Work in Sync,作者 Matar Peles。

站点可靠性工程师(SRE)和开发人员常常面临着如何在速度和稳定性之间取得平衡的挑战。大多数情况下,开发人员倾向于专注于构建功能和编写代码,而 SRE 则确保这些功能在生产环境中平稳运行。但是,当出现问题时,界限就会模糊——这就是问题开始的地方。

“左移”运动提供了一种前进的道路。它允许团队在开发过程的早期解决可靠性和操作问题。通过共享所有权,团队可以减少摩擦并更好地协同工作。

SRE 和开发人员之间的脱节

SRE 负责维护可靠的系统、监督正常运行时间、管理事件和处理云基础设施。开发人员专注于编写代码和交付功能。但是,这些角色经常重叠,从而在它们之间产生摩擦。

这种紧张关系源于优先级错位以及缺乏对彼此工作流程的了解。开发人员优先考虑交付功能,并且可能忽略生产需求,直到出现问题。虽然他们创建应用程序,但他们通常不会为其可靠性负责。相反,SRE 努力维护正常运行时间,但可能缺乏关于最近应用程序更改的上下文。这些动态会导致效率低下,例如:

  • 信息不完整导致 SRE 在事件期间由于缺乏对最近部署、依赖项或配置更改的了解而准备不足。
  • 所有权分散导致责任不明确,从而导致解决关键问题的时间延迟。
  • 缺乏共享框架阻碍了沟通和协调,尤其是在高压事件期间。
  • 产品所有者或业务利益相关者可能会在没有明确流程的情况下对 SRE施加额外压力,从而加剧本已紧张的局面。

尽管开发人员越来越多地拥抱左移运动,专注于生产需求、安全编码和利用 AI 工具来增强其工作流程,但这些努力是不够的。开发人员必须对他们的应用程序承担全部责任,包括代码和可靠性。此外,SRE 和开发人员必须在一个共享框架上进行协作,该框架具有统一的真相来源,用于服务所有权、健康状况和依赖关系。这个基础能够实现更快、更有效的工作流程,并减轻团队脱节。

分步指南:在事件管理中左移

考虑一下在高峰流量期间发生严重事件的情况。SRE 可能拥有所有基础设施指标,但缺乏对最近应用程序更新或依赖项的了解。另一方面,开发人员可能无法访问生产监控工具,这使得他们无法了解问题的根本原因。这种缺乏共享责任感会将可控的问题变成长时间的停机。

让我们探索一个分步指南,用于管理事件或停机,以演示左移的影响。

1. 主动预防

预防事件始于事件发生很久之前。团队可以采取一些主动步骤来确保生产准备就绪:

  • 定义所有权:使用统一的服务目录为每个服务建立明确的所有权,包括其依赖项、健康指标和升级路径。
  • 自动化就绪检查:实施生产就绪的自动化检查,例如确保正确的可观察性设置、验证 CI/CD 管道和检查过时的依赖项。
  • 主动监控:为潜在问题设置警报,例如错误率增加、响应时间缓慢或部署过程中的异常。这些警报允许团队在问题升级之前解决问题。

2. 检测和诊断问题

当事件发生时,快速检测和诊断至关重要:

  • 统一可见性:团队使用集中式门户访问实时指标、日志和依赖关系图。这种共享视图确保每个人都拥有评估问题所需的信息。
  • 所有权识别:服务目录会自动识别负责的团队或个人,并通过预配置的通信渠道(如 Slack 或 Teams)通知他们。
  • 跨职能洞察:开发人员和 SRE 都可以看到有关最近部署、配置更改和应用程序更新的相关详细信息,从而能够更快地进行根本原因分析。

3. 协调响应

拥有清晰的责任归属和诊断数据,团队可以专注于解决问题:

  • 自动化事件渠道:创建一个自动化通信渠道,将合适的利益相关者聚集在一起,并提供对相关工具和数据的访问权限。
  • 自助修复:开发人员使用预定义的工作流程来解决问题,例如回滚错误的部署、重启服务或扩展资源。这些操作可以直接从门户执行,减少对SRE干预的依赖。
  • 升级协议:如果问题需要专门的专业知识,SRE介入处理复杂问题或执行操作标准。

4. 事后改进

解决事件后,团队专注于持续改进:

  • 根本原因分析:团队协作了解出了什么问题,并在服务目录中记录他们的发现。
  • 工具增强:调整监控工具和自动化工作流程,以防止将来出现类似问题。
  • 流程改进:整合反馈以改进响应程序、培训和文档。

最终的解决方案是重新定义所有权,并让每个人都能访问他们需要的工具。SRE应该专注于设定标准和自动化可靠性任务,而开发人员应该端到端地拥有他们的应用程序,包括正常运行时间和健康状况。

统一的服务目录:向左迁移的关键

统一的服务目录可以弥合差距。它提供了对服务、其所有者及其依赖关系的清晰视图。这是实施“向左迁移”方法的重要组成部分。通过充当单一事实来源,它提供:

  • 清晰的所有权:确保每个服务都有一个明确的所有者和团队负责其健康和可靠性。
  • 全面的可见性:提供对依赖关系、配置和符合生产就绪标准的见解。
  • 高效的协作:支持自助服务操作和自动化工作流程,以实现更快、更有效的事件解决。

虽然服务目录至关重要,但它是更广泛的生态系统的一部分,其中包括自助服务工作流程、事件管理自动化和协作工具。这些功能共同使团队能够更高效、更自信地工作。

统一工具带来的实际收益

使用统一服务目录的团队在主动预防和被动恢复方面都看到了改进。以下是这些好处的更深入了解:

  • 主动预防事件:通过自动合规性跟踪,团队可以在问题升级之前识别并解决问题。例如,当应用程序不符合生产就绪标准时,例如缺少可观察性设置或过时的依赖项,团队可能会收到自动警报。通过在发布之前解决这些差距,团队避免了中断并确保了更顺利的发布。
  • 更快的恢复时间:在事件发生期间,例如关键服务在高峰流量事件期间出现故障时,开发人员可以快速访问自助服务工作流程来回滚更改、重启服务或扩展资源。开发人员无需等待SRE干预,即可在门户中遵循预定义的补救路径——只需单击一下即可回滚最近的部署或扩展资源。这大大减少了平均恢复时间 (MTTR)
  • 改进的协作:通过清晰地了解所有权,团队避免了在高压情况下出现混淆。例如,当发生故障时,统一门户会立即识别服务所有者并通过自动Slack渠道引入相关利益相关者。团队可以专注于解决问题,而不是争论谁应该采取行动。

想象一下,深夜发生严重中断。统一门户无需费力查找谁拥有受影响的服务,而是会自动为事件创建一个专用的Slack频道,通知服务所有者,并提供对关键指标、日志和依赖关系图的访问权限。几分钟内,团队可以有效地协作以解决问题,从而大大减少停机时间。这种简化的流程体现了向左迁移的强大功能:为团队配备快速、自信和高效行动的工具。

新的所有权模型

向左迁移支持共享责任模型。开发人员拥有他们的应用程序,包括可靠性。SRE在需要时提供指导、工具和高级支持。这种平衡确保每个人都能专注于他们最擅长的事情。

例如,开发人员在事件期间带头管理响应。他们使用服务目录提供的工具来诊断和修复问题。SRE仅在出现复杂问题或需要确保符合标准时才介入。这种方法减少了瓶颈,并使团队能够更有效地工作。

准备好向左迁移了吗?

统一的服务目录可以改变SRE和开发人员的协作方式。它促进协作,减少瓶颈并保持系统可靠性。

与同样在向左迁移的人们交流,他们也在Port’s community,或者看看如何使用Port’s live demo 向左迁移。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注