为平台团队提供构建编排功能的工作流程和检查表。
译自 The Pillars of Platform Engineering: Part 5 — Orchestration 。
本指南概述了平台工程中六大技术领域中的开发者体验工作流程和检查表步骤。该系列分六部分发布,第一部分介绍了该系列,并着重于安全性。第五部分讨论编排。完整的 PDF 版本包含平台工程的六大大支柱的完整指导方针. 大纲和检查表,可供下载:
当您要部署应用程序时,如果采用分布式应用程序. 微服务,或者希望实现跨云基础设施的弹性,使用工作负载编排器将更容易。
Kubernetes 和 HashiCorp Nomad 等工作负载编排器比传统技术提供更多优势。实现这些优势的工作量可能不同。例如,重构为容器化和采用 Kubernetes 可能需要更高工作量,而使用像 HashiCorp Nomad 这样面向各类工作负载的编排器可能需要较少工作量。无论哪种情况,工作负载编排器可实现:
编排器提供优化算法,以最有效的方式将工作负载分配到基础设施资源中(例如装箱. 扩展. 亲和力. 反亲和力. 自动缩放. 动态应用调整大小等),这可以降低成本。它们自动化分布式计算和弹性策略,开发者不需要了解底层工作机制。
与其他平台支柱一样,主要目标是标准化工作流程,编排器是现代平台团队统一部署工作流程以消除基于工单的流程的常见方式。
选择编排器时,确保它足够灵活,能处理环境的未来扩展和异构工作流非常重要。编排器还必须能够处理多租户并轻松集成跨多个内部数据中心和多云环境。
需要注意的是,并非所有系统都可以容器化,或转移到像供应商提供的单体设备或应用等现代编排器,因此平台团队识别其他团队优化编排器参与度和自动化的机会非常重要,这符合其他平台支柱的原则。现代编排器提供广泛的本地功能。尽管不同系统之间具体实现和功能各有不同,但存在许多核心要求。
典型的编排工作流程应遵循以下八个步骤:
(注:开发人员可能具有直接的网络控制平面访问权限,这取决于分配给他们的基于角色的访问控制。)
编排流程示意图
成功的编排需要: