Blog Post

Continuous delivery using Jenkins DSL , KMS, ECS, and Cloudformation

08Dec,16 Post Image

We build deployment pipelines and continuous delivery for organizations that want to increase their productivity. Here are some of the challenges that our clients commonly face:

  • Building Jenkins and installing plugins itself normally isn’t infrastructure as code
  • We always need solution for encrypting secrets for Jenkins
  • Some time build fails due to resource constraints

With the release of ecs-refarch-cloudformation, AWS created a blueprint to run micro services on ECS using Cloud-formation. It uses YAML format to manage cloud formation—much better than dealing with JSON.
We extended the same blueprint and added Jenkins master and slave. Master is also running on ECS. Slaves are auto scaling, and ALB is in front of it.

Why run Jenkins in ECS?
  1. You can Scale up and down based on the build load
  2. You’ll be able to Build Jenkins just like any other service. Official Jenkins image has built in support to install plugins
  3. Jenkins Jobs are part of the container. Official Jenkins image also makes it as to add seed jobs to as part of the run time.
  4. No additional effort required to get centralized logging for Jenkins build , logs are easily be shipped to
    CloudWatch
Architecture:

jenkins-architecture-overview

Jenkins pipeline output:

Jenkins-pipeline-output

How to get started:

Here is the link to the code repo. Follow the Readme and comment if there are any issues.

We would like to know if you have similar setup or you have questions regarding this setup. Pull requests are
welcomed 😃

Subscribe to Our Newsletter