平台工程:从平台架构师看开发人员控制平面


对于那些刚刚进入云原生领域的人来说,在一个完全云原生的组织中大规模“左移”的概念可能听起来很未来。对于在生产环境中运行 Kubernetes 多年的云原生领导者来说,左移正在顺利进行。北欧的初创挑战者银行 Lunar 就是这样的组织之一。
本文讨论Lunar 的架构、开发人员对生命周期的所有权、Lunar 集中工具的方法、构建与购买决策过程、开发人员控制平面概念以及处于云原生金融科技技术前沿的挑战和好处。
几个关键主题:

  • 始终保持教育:支持所有这些转变的是开发人员技能提升的需要。处于云原生创新前沿的组织需要准备好通过文档、自助服务记录和面对面/虚拟培训来支持各级动手开发人员教育。
  • 快速入职是一项竞争优势:在 Lunar,入职提供了一个服务目录,该目录提供对不同图书馆的参考,以及如何创建服务的不同变体,以及其他团队如何创建类似事物的示例。Lunar 使用 Backstage 帮助快节奏的工程师入职。它使人们能够清楚地了解存在哪些服务以及它们的作用,这不仅有利于公司的新开发人员,也有利于整个公司。
  • 定义“铺平道路”平台可减少工具蔓延:在 Lunar,并没有强制要求使用特定技术,但提供自以为是的“铺平道路”采用工具和集中工具加速了开发人员的提升和生产力。在某种程度上,定义路径简化了开发人员的升级,但它也有助于平台团队对抗工具蔓延。
  • 创建固执己见的工作流支持良好的开发人员体验: Lunar 创建了 Shuttle,这是一个 CLI,用于处理许多项目之间的共享构建和部署工具,无论项目使用什么技术。Lunar 平台团队还在云采用之旅的早期就采用了对开发人员友好的 GitOps 工作流程(使用 Flux 和自定义发布管理器)。
  • 使开发人员拥有所有权是速度和安全性的关键: “你构建它,你运行它”的口头禅不仅仅是理论上的。像 Lunar 这样的组织每天都以这种方式运作。期望开发人员拥有完整的软件生命周期,但要授权他们这样做,它必须是可管理的。平台团队需要为左移奠定基础,让开发人员更容易编码、发布和运行。如果做得正确,这应该可以帮助组织实现云原生开发的速度优势,并获得快速的反馈循环,而不会产生任何不利影响。