Continuous delivery with Jenkins, Terraform, AWS ECS, and Docker

Continuous delivery with Jenkins, Terraform, AWS ECS, and Docker

In this tutorial, we’ll cover from beginning to end, setting up a scalable AWS ECS cluster running your PHP application. We will cover creating a Jenkins server via Terraform and setting up a continuous delivery pipeline within it. We’ll use Jenkins to manage your cloud infrastructure & environments using some open source Terraform scripts. We’ll go through the steps needed to get your PHP app packaged in a Docker image and deployed to AWS Elastic Container Service. You’ll see how to match your environments as closely as possible from local to live and some things to watch out for in this workflow. You’ll need an AWS, Docker.io, and GitHub account for this Tutorial. For a meaningful setup you’ll want a paid AWS account and if you want private repositories/images, then you’ll want a paid Github and Docker Hub account also. At the end of this tutorial, you’ll be able to push some code to GitHub and your Jenkins instance will automatically pick that change up to test, build, plan, and deploy your PHP application to the cloud. We’ll also show you how to rollback code; update composer dependencies; build Docker images; manage resources; and setup RC, QA, staging, and other environments. Please come prepared by pre-signing up for these accounts and having an editor capable of editing PHP, Groovy, Bash, Dockerfile, HCL (Terraform), and JSON.