Shipyard:我们如何构建 Slack 的下一代 EC2 平台
Overview & Introduction
概述与介绍
Archie GunasekaraStaff Software Engineer, Cloud
Archie Gunasekara,云团队 Staff 软件工程师

Over the past few years, we’ve been on a journey to modernise how we run Amazon Elastic Compute Cloud (EC2) instances at Slack.
在过去几年里,我们一直致力于实现 Slack 运行 Amazon Elastic Compute Cloud (EC2) 实例方式的现代化。
In our first post, Advancing Our Chef Infrastructure, we shared how we moved from a single Chef stack to a resilient, multi-stack setup with versioned cookbook deployments and safer promotion workflows. This afforded us far more reliability and operational control across tens of thousands of EC2 instances.
在我们的第一篇文章推进我们的 Chef 基础设施中,我们分享了如何从单一的 Chef 堆栈迁移到具有版本化 Cookbook 部署和更安全提升工作流的弹性多堆栈设置。这使我们在数万个 EC2 实例上获得了更高的可靠性和操作控制力。
Subsequently, in Advancing Our Chef Infrastructure: Safety Without Disruption, we tackled deployment risk without the need for teams to rewrite their cookbooks. By introducing split production environments, signal-based Chef runs, and smarter rollout mechanisms, we dramatically reduced the impact radius of failures while keeping our legacy platform stable. These changes allowed us to safely operate our EC2 ecosystem at scale while we plan the future at a relaxed pace.
随后,在推进我们的 Chef 基础设施:无中断的安全保障一文中,我们解决了部署风险,而无需团队重写他们的 cookbooks。通过引入拆分生产环境、基于信号的 Chef 运行以及更智能的发布机制,我们在保持传统平台稳定的同时,大幅缩小了故障的影响半径。这些变更使我们能够安全地大规模运行 EC2 生态系统,同时从容地规划未来。
But as we kept improving, a bigger truth became clear.
但随着我们不断改进,一个更大的真相变得清晰起来。
Even with safer rollouts, better orchestration, and stronger guardrails, the old model—continuously updating long-lived EC2 instances—was hitting its limits. Service-level deployments were tricky, infrastructure drift was inevitable, and coordinating changes across multiple layers added complexity. Containers solved this for some classes of workloads, but not everything could migrate easily.
即使有了更安全的发布、更好的编排和更强的防护栏,旧模式——持续更新长期运行的 EC2 实例——也达到了其极限。服务级部署很棘手,基础设施漂移不可避免,跨多个层协调变更增加了复杂性。容器为某些类型的工作负载解决了这个问题,但并非所有东西都能轻松迁移。
We needed a new approach—one that brought modern deployment practices like immu...