Jenkins is the way to revolutionize loyalty programs

White-labeled loyalty apps

Submitted By Jenkins User Gabriel Rosales
Rethinking the world’s best loyalty programs requires testing everything to increase overall product quality and deploying as many times as you’d like.
Organization: Global white-label solutions for fintech and e-commerce loyalty programs.
Industries: Fintech
Programming Languages: Java, Typescript
Version Control Systems: BitBucket Server
Community Support: Jenkins.io websites & blogs, spoke with colleagues and peers

Building a CI/CD platform to support the development of white-label solutions for loyalty program providers worldwide.

Background: Software architect Gabriel Rosales, along with colleagues Neo Wu and  Mort Zeng, work for a fintech company that is on a mission to help the best loyalty programs around the world thrive. How? By enabling their digital platforms to redeem points for products on their member’s favorite online stores. The company provides white-label solutions to a broad range of loyalty programs around the world. 

"Our code base is the same for each white-label product, though each needs to be correctly configured before building the docker image and before being deployed to Kubernetes," said Gabriel. "Manually configuring each white-label product would be time-consuming and error-prone, so we needed a way to do it right and fast."

Goals:  From a "big picture" perspective, we were mostly looking to empower our business development team.

"Everything works out of the box. Configuration-as-Code support made the difference as we could easily configure, maintain & deploy the same Jenkins solution through different k8s clusters."
image— Gabriel Rosales, Software Architect

Solution & Results:  We started to test out different CI/CD alternatives, as we needed to find one that gave us enough customization and features within our allowed cost allocation. 

After our testing, we decided to get our hands on Jenkins and set up the appropriate pipelines to achieve the following: 

  1. Increase our overall product quality by running automated testing for each commit. (If someone breaks the build we get notified through Slack!) 

  2. Allow us to deploy as many times as we want (actually for every commit that gets green on our testing stage!) 

  3. Properly configure the required assets before building each white-label product.

  4. Automatically build the appropriate docker image. 

  5. Automatically deploy the finished docker image to the appropriate k8s cluster.

For key capabilities, we used both Git and Slack integrations, Pipelines, the Configuration-as-Code plugin, and BlueOcean-- which has a very nice UI!

All in all, with Jenkins, we saw:

  • greatly reduced build times

  • fully automated deployment (no more human mistakes in the process)