# Shipyard: How We Built Slack’s Next-Generation EC2 Platform

[Slack](https://yomu.fyi/company/slack) · Archie Gunasekara · Jul 14, 2026

**Type:** Problem & solution

## Summary

Slack developed Shipyard to modernize its EC2 infrastructure by replacing continuously updated, mutable instances with immutable deployable artifacts. The platform adopts a layered image architecture starting with a standardized base image called slack-zero, which is built using AWS Image Builder and consumed by downstream service-specific machine images. Rather than running periodic Chef jobs in the background, configuration management is restricted to image baking and initial instance provisioning phases. Fleet management is handled through the Peekaboo inventory system, metric-driven progressive rollouts via Gondola, and automated instance rotation managed by a lifecycle component known as the Reaper. Developers validate cookbook updates prior to merging using Ship Quick, which provisions real infrastructure across dedicated worker fleets to verify provisioning workflows.

## Context

Continuously updating long-lived EC2 instances across tens of thousands of machines led to configuration drift, complex service-level deployments, and operational overhead. While containerization addressed these issues for certain workloads, critical components such as Kubernetes worker nodes and egress network stacks could not migrate easily.

## Approach / What changed

Slack built Shipyard, an EC2 platform that treats instances as immutable artifacts using a layered AMI model anchored by a shared base image named slack-zero. Configuration execution was moved from periodic background runs to image baking and provisioning phases, complemented by automated instance recycling through the Reaper, fleet visibility via Peekaboo, and pull request testing through Ship Quick.

## Takeaways

- Base images named slack-zero are built using AWS Image Builder, which updates SSM parameters and triggers EventBridge and Lambda workflows to rebuild downstream service AMIs.
- The Reaper component enforces instance rotation and immutability with configurable rate limits across services, regions, and availability zones, alongside an emergency pause mechanism using an S3 control object.
- Ship Quick tests cookbook changes on real infrastructure by routing jobs to Longshoremen worker fleets split between vanilla Ubuntu for base images and slack-zero for service images.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [AWS](https://yomu.fyi/topic/aws), [CI/CD](https://yomu.fyi/topic/ci-cd), [Deployment](https://yomu.fyi/topic/deployment), [Reliability](https://yomu.fyi/topic/reliability)

[Read original post](https://slack.engineering/shipyard-how-we-built-slacks-next-generation-ec2-platform)
