Continuous integration is a DevOps software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run
Continuous deployment is a software development practice where code changes are automatically prepared for a release and deployed to production.
The commit triggers a job in Jenkins to run test. Once passed, it will trigger a separate downstream task to deploy the application to all the instances using a Ansible playbook
Access to the web application is restricted to cloudfront endpoints
The Jenkins job will pull in the latest cloudformation template to update the minimum number of instance to 2