Continuous Delivery (CD) /Continuous Integration (CI)These days, CI/CD now is essential for achieving a smooth stream of release cycles for developers. An infrastructure to deploy and test the applications is no big deal as architects are using virtualized infrastructure along with automation tools, which automate application delivery and container management.
Using vRA with JenkinsOne of the big advantages of Jenkins is that a variety of plugins are available to integrate it with third-party tools like JBoss, Apache Tomcat, Pivotal Cloud Foundry, Email Configurators, etc. The software helps developers to find and solve defects in a code base rapidly by automating testing of their builds.
Now think of a case, where your organization is using vRA, for rapid resource provisioning and deploying applications and services over the same. vRA provides you different types of blueprints, which are complete specifications of software/runtime stack which will be installed and configured along with VM provision.
What we can achieve with Jenkins and vRA is a minimum divergence between the application deployments and blueprints provisions through vRA. We can use the vRealize Automation Jenkins plugin, which enables Jenkins to provision vRealize Automation 7 Blueprints and deploy builds over it.
Using this solution, developers will just have to make changes in their source code and push it to configured SCM tool like GIT, and the latter parts like generating build, deployment, testing will be carried out by the Jenkins and vRA as a resource provisioning backend for providing the VM and underlying runtime environment for the application.
Use CaseA practical use case will be deploying and testing the LAMP Application on VM using vRA.
The below steps will create an automated environment for using the app with Jenkins and vRA:
- Write the application using IDE, E.g. Eclipse.
- Configure IDE (Eclipse) to integrate it with SCM, like GIT. (GIT plugin for eclipse) and build tools like Maven to create an application build/artifact.
- Configure the Jenkins server, by installing GIT and vRA plugins.
- On vRA, create a cloud endpoint for VM provisioning (vSphere or AWS) and import the LAMP Blueprint.
- Create a JOB, and configure it with application GIT repository, and specifying vRA details along with LAMP Blueprint.
- Run a build and test the applications with a variety of parameters and test cases.
SummaryTo leverage DevOps fully, starting from code change to build, deploy, test, and destroy, using infrastructure automation tools like vRealize Automation, Jenkins provides a good way to achieve this.
Thinking out of the box, and assuming to build and test the applications with different blueprints, which orchestrates configuration management tools like Foreman Puppet, Chef, Docker, this solution reduces 70% of developer's effort to deploy and test applications with no time.