Background: Working for an international network and communication enterprise, it is essential to have a complete analytics solution that generates insights by analyzing unstructured text data for informed decision-making. It is equally important to allow teams to build applications across platforms continuously. For this, we turned to Jenkins since it is a very popular Java-based, open-source, continuous integration (CI) server.
Goals: Building reliable insight artifacts.
Solution & Results: To gain visibility into our DevOps process, we used the Artifacts for Insight product. It is built as jar packages -- wrapped as docker images -- then published as helm charts and deployed as internal profiles. Building and releasing all of the insight artifacts to release repo from a single job was something we'd been hoping for, and that is precisely what happened.
We thought it would take a long time to build and perform the operations because there is no support from Artifactory to promote different types of artifacts simultaneously. Releasing activities like publishing, testing, and promoting everything with just one-click seemed daunting. But it was all made easy with the help of Jenkins's automated promotion option. And before promoting to releases, we were able to test by deploying in test clusters based on just a few input parameters.
"Jenkins is a very popular Java-based, open-source, CI server that allows teams to continuously build applications across platforms.
What's great about Jenkins is that it gives you the option to create a downstream/upstream job and report the results back to the parent job. With the help of integrated Ansible plugins, we were able to test the candidate artifacts first in our test cluster. Based on the results from the test job, the rest of the promotion stages worked smoothly. All I had to do was define the logical flow, and with the help of the Jenkins syntax generator, I was able to quickly arrive at the pipeline code.
Even when the jobs failed, and we had to scroll through thousands of lines of console output, Blue Ocean came to the rescue. It has such a well-designed UI, making it easy to visualize the earliest possible stage in which to repair the issue.
Surprisingly it took less time than we thought. When we want to publish a release package, we simply need to click that one 'BUILD' button.
And the results are long-lasting, including: