Synthèse
At the foundation of the Shipyard is a shared base image called “slack-zero.” This is the core machine image built by Slack’s Compute Platform Team and maintained collaboratively with our security and monitoring teams. Operating system baseline and hardening Networking and service discovery configuration Monitoring and security agents Common tooling and foundational system configuration You can think of slack-zero similarly to how teams use a base Docker image or how we start from a vendor-suppl
At the foundation of the Shipyard is a shared base image called “slack-zero. ” This is the core machine image built by Slack’s Compute Platform Team and maintained collaboratively with our security and monitoring teams. Operating system baseline and hardening Networking and service discovery configuration Monitoring and security agents Common tooling and foundational system configuration You can think of slack-zero similarly to how teams use a base Docker image or how we start from a vendor-supplied Ubuntu image and layer additional components on top. It provides a standardised, trusted foundation that every service inherits, while still allowing teams to customize their own runtime environment on top of it. Base images are treated as immutable but ephemeral.
When foundational components need to change—such as a security patch, monitoring update, or networking improvement—a new slack-zero image is produced. Downstream service images can then rebuild on top of the updated base to inherit the latest fixes and improvements. To build slack-zero, we use AWS Image Builder rather than Packer. Image Builder provides several built-in advantages over our previous approach with Packer, including: Lifecycle Management: Old AMIs are automatically cleaned up using lifecycle policies, helping reduce storage costs. AWS System Manager (SSM) Parameter Publishing: Each new slack-zero image updates an SSM parameter that indicates the latest available AMI for an account.
Service pipelines read this parameter to ensure they always build on the most up-to-date base. Event-Driven Automation: When a slack-zero image finishes baking successfully, EventBridge and Lambda automatically trigger downstream pipelines in service owner accounts so dependent images can be rebuilt. Built-in Testing: Before an AMI is published, Image Builder launches temporary instances and runs validation tests.