How We Use Terraform At Slack
Oct 25, 2022

Summary
This post details the evolution of Slack's Terraform state file management, including the transition from a single state file to a distributed model with dedicated accounts for teams and services. It describes the use of Jenkins pipelines for deployment, the shift in ownership of Terraform states and pipelines to service owners, and the storage of state files in S3 with DynamoDB for locking. The post also covers the creation of 'Ops' boxes for developer testing and prototyping, and the strategies for managing multiple Terraform and provider versions, including the development of a Golang tool for upgrade management.