- December 18, 2017
- Posted by: Chetan Suri
- Category: Featured
Continuous Delivery (CD) /Continuous Integration (CI)
These days, CI/CD now is essential for achieving 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 Jenkins
One 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 type of blueprints, which are complete specification of software/runtime stack which will be installed and configured along with VM provision.
What we can achieve with Jenkins and vRA is 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 application.
A practical use case will be deploying and testing the LAMP Application on VM using vRA.
Below steps will create an automated environment for using 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 tool 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 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 variety of parameters and test cases.
To leverage DevOps fully, starting from code change to build, deploy, test, and destroy, using infrastructure automation tools like vRealize Automation, Jenkins provide a good way to achieve this.
Thinking out of box, and assuming to build and test the applications with different blueprints, which orchestrates configuration management tools like Forman Puppet, Chef, Docker, this solutions reduces 70% of developers effort to deploy and test applications with no time.