Continuous Delivery demo using Amazon Web Services
This demo uses:
- Amazon CodePipeline for orchestration
- Docker for container support
- Jenkins for continuous integration
- SonarQube for static code analysis
- Amazon CloudFormation for provisioning
- Amazon ECS & ECR for EC2 Docker support
Sample pipeline:
- Automatically build on commit, run unit tests and perform static code analysis
- Automatically build and push a docker image and deploy to a QA environment
- Allow deployment to the production environment
Sample application: aws-continuous-delivery-demo-app.
To create the continuous delivery pipeline and servers:
./create.sh
This will create:
- The ECR Docker repositories for the project, Jenkins and Sonarqube
- An ECS service for the build server
- A Jenkins Docker image
- Having the Jobs created automatically
- Having all the required plugins and tools setup
- Using authentication
- A SonarQube Docker image
- Having all the required plugins setup
- Using authentication
- ECS clusters for the QA and production environments
- The CodePipeline continuous delivery pipeline
The setup is performed using Amazon command line tools to ensure full reproducibility.
To install AWS CLI, follow the instructions for your OS on this page.
On MacOs:
brew install awscli
To configure AWS CLI:
aws configure
Use json
as default output format
To install Amazon ECS CLI, follow the instructions for your OS on this page.
On MacOs:
sudo curl -o /usr/local/bin/ecs-cli https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-darwin-amd64-latest
sudo chmod +x /usr/local/bin/ecs-cli
To install Docker, follow the instructions for your OS on this page.
To delete all the AWS resources created by this demo:
./delete.sh