Building and Deploying a Static Application using Jenkins and Docker in AWS
Although there are many ways to deploy the Jenkins open source automation server on Amazon Web Services AWS , this whitepaper focuses on two specific approaches. First, the traditional deployment on top of Amazon Elastic Compute Cloud Amazon EC2 . Second, the containerized deployment that leverages Amazon EC2 Container Service Amazon EBS . These approaches enable customers to take advantage of the continuous integration continuous delivery CI CD capabilities of Jenkins. Using an extensive plugin system, Jenkins offers options for integrating with many AWS services and can morph to fit most use cases. Suppose you’ve built a new application for your client, or maybe yourself, and have managed to get a good user base that likes your application. You’ve gathered feedback from your users, and you go to your developers and ask them to build new features and make the application ready for deployment. With that ready, you can either stop the entire application and deploy the new version or build a zero downtime CI CD deployment pipeline which would do all the tedious work of pushing a new release to users without manual intervention. we will talk exactly about the latter, how we can have a continuous deployment pipeline of a three tier web application built in Node.js on AWS Cloud using Terraform as an infrastructure orchestrator. We’ll be using Jenkins for the continuous deployment part and Bitbucket to host our codebase. we will look into setting up a Jenkins server which will be used for our CI CD pipeline. We will be using Terraform and AWS for setting this up as well. The Terraform code for setting Jenkins is inside the folder Jenkins setup. we have the AMIs for the API and web modules, we will trigger a build to run Terraform code for setting up the entire application and later go through the components in Terraform code which makes this pipeline deploy the changes with zero downtime of service. The first thing is that Terraform provides these lifecycle configuration blocks for resources within which you have an option create before destroy as a flag which literally means that Terraform should create a new resource of the same type before destroying the current resource.
Jenkins, AWS Cloud, web application built, configuration, CI CD deployment pipeline, plugin system, Amazon EC2, Amazon EBS
Malathi. S | Ganeshan. M