Session: Jenkins and Azure
Speaker: Michael Friedrich
There were a number of sessions this year on continuous integration (CI) and continuous deployment (CD) with a variety of tools that could be used to provide that functionality. These sessions were all extremely interesting and while they all made CI/CD seem like something that should only take at most 40 minutes to setup; they did provide some excellent insights into how those setup processes look and where to start looking; as well as how the outcomes of a setup of that nature can be.
This session was a great example setup that showed how Jenkins can be used to setup a “pipeline” for continuous integration. The pipeline concept was used to refer to the process of CI/CD from commit of code (start of pipeline) to the deployment of outcomes (end of pipeline) and how you can orchestrate the steps along that path (pipeline). In the past I’ve had a tendency to have that as a manual process that overtime becomes more and more automated as capabilities permit; but while I was doing that as a background process the tooling has come along very dramatically indeed!
One of the most impressive aspects of a pipeline is the insertion of quality gates. One that was shown was Sonar Qube that had some amazing capabilities including the ability to detect code smells, vulnerabilities, and technical debit. In addition to those assessments via analytics it also provided the ability to put gates on those; for example “if technical debit increases by more than 5% on a commit, fail the build”.
Now it does seem that all of that really stretches out the timeframes for setting up CI/CD, but the outcomes (and consistency driven from those outcomes) look to be more than enough of a benefit. We’ve started the process of product evaluation, with Jenkins and Bamboo looking to be the most likely candidates. While it seems like it might be pretty iterative at first, the target of a smooth build process that provides more certainty of code commits is exciting.
Overall it really looked like CI/CD has gone from a few clunky products and people having their own set of scripts and automation of builds to some very solid products that consistently deliver on their promise of improved software quality. I cannot wait to have my first commit rejected and improve my code quality!
Some additional sessions on CI/CD