Skip to content

jumal/aws-continuous-delivery-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWS Continuous Delivery Demo

License

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

Continuous Delivery Pipeline

Sample application: aws-continuous-delivery-demo-app.

Usage

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

Prerequisites

The setup is performed using Amazon command line tools to ensure full reproducibility.

Amazon Command Line Tools

AWS CLI

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

Amazon ECS CLI

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

Docker

To install Docker, follow the instructions for your OS on this page.

Cleanup

To delete all the AWS resources created by this demo:

./delete.sh