Jenkins is the way to automate everything for a digital transformation journey

Payments Journey Optimization

Submitted By Jenkins User Sachidananda Pattnaik
UK-based information technology, consulting, and business process services company harnesses the power of Jenkins.
Industries: Banking & Finance
Programming Languages: Java, Node.js, Python
Version Control Systems: GitHub, GitLab
Community Support: Jenkins Users Google Group or IRC Chat, Jenkins.io websites & blogs, Networking at Jenkins event

With Jenkins, continuous deployment enables continuous feedback for more bug-free releases.

Background: As part of the digital transformation of the bank, the domestic payments on internet banking needed more dynamic changes with user experience and digital features. And to achieve this, the application has been migrated from a large monolithic architecture to microservice oriented, and then again to containerized application structure. 

To maintain the accelerated pace and meet all delivery demands, the SDLC process needed to be more agile and automated. Jenkins came to the rescue and we have tried to automate all the individual phases of our route to live with the optimal level of automation of the "continuous everything" model. 

Goals:  Optimizing the domestic internet banking payments system.

"Because of Jenkins we have reduced more than 70% of manual and maintenance work and the team can now focus on more innovative ideas. Jenkins is a reliable tool to help us get continuous feedback in the sprint cycle which helps the team deliver user stories faster."
image— Sachidananda Pattnaik, DevOps Engineer, Wipro Technologies

Solution & Results: Jenkins fits our working model to incorporate CI/CD on-demand and integrate into all the other value stream tools for auditing, release management, monitoring, and the logging process. Jenkins is the core of all the delivery models and it gives endless scope to implement much automation.

Our application has faced many hurdles and we have resolved each retrospective aspect of application delivery improvement using Jenkins. Below I will list out our solutions:

  1. We have created a CI Pipeline with all the development and dependency tools integrated by using Maven, Git, Nexus, and SonarQube. 

  2. We have integrated our CD pipeline with UrbanCode for continuous deployment. 

  3. We have integrated with Saucelabs and Selenium for our BDD scripts for automated testing. 

  4. We have integrated with Veracode for our SAST scanning. 

  5. Separate integration has been done with Splunk for a real-time log dashboard for debugging incidents. 

  6. Performance testing has been automated with Jenkins integration with the Performance Center tool. 

  7. Apart from integration, we have automated all our infrastructure with a pipeline running Ansible scripts. 

  8. We have managed all our Kubernetes clusters with a triggered pipeline to maintain the desired state.

Here are the capabilities we relied on:

  • Integrated Plugins and easy configuration has helped set up all the Pipeline. 

  • Parameterised Jenkins jobs were a great help to make the pipeline reusable. 

  • Scheduler features to run cron job were a real time-saver

Our results were outstanding:

  • Nightly Build and Scheduler job has saved many man-hours 

  • Containerized deployment has resolved many environmental issues 

  • Continuous deployment has given continuous feedback for more bug-free releases 

  • Cloud-native plugins helped connect applications in the cloud 

  • Application SDLC has been more Agile than before