2 Project
When we arrived to the scene the Cloud backend was still in its early stages. As the first step we imported the existing, quite elaborate AWS configurations to Terraform to get them under configuration management. As the backend applications ran on EC2 instances we used Puppet to manage them. We also packaged the Cloud applications and placed them into package repositories.
After the initial Cloud backend setup and identical staging environment was built alongside the original production deployment. This, coupled with CI/CD, enabled developing the Cloud as a whole without affecting production at all. In production, releases were done more carefully with Ansible playbooks.