We divided a project into multiple services running in Docker containers. We used Ansible to create base Docker images and Docker Compose to configure and run the containers. Bitbucket Pipelines was used to build and deploy the containers to Amazon ECS, which runs the containers across an auto-scaling group of EC2 instances behind a load balancer. Nginx maps requests to the appropriate versioned PHP-FPM container based on the Accept header to support API versioning.