This thread tracks the evolution of Slack's infrastructure management, focusing on the use of Terraform and network architecture. Initial posts detailed foundational architecture and challenges with single AWS accounts. This post details the "Shipyard" platform, a next-generation EC2 platform that treats infrastructure as deployable artifacts rather than mutable instances. It brings modern deployment practices like immutability, progressive rollouts, and automated safety directly to EC2 instances, supporting multi-architecture and multi-OS, metrics-driven deployments with safety controls, fast and predictable provisioning via layered images, simplified configuration management by shifting from continuous enforcement to image baking and provisioning, real-time inventory and fleet visibility via the Peekaboo system, and short-lived, continuously refreshed instances. The platform uses a shared "slack-zero" base image built with AWS Image Builder and service-specific images built on top, separating instance preparation into baking and provisioning phases. Deployments are handled through controlled replacements using AWS Instance Refresh and Karpenter, with emergency fixes managed via AWS Systems Manager.
All Slack trails