Every few years the development environment evolves, and we on the cusp of the next evolution. A panel of Jenkins industry experts discussed the previous, current, and future phases in The Evolution of CI/CD, a virtual roundtable hosted by Incredibuild. The panel included Jim Shelton, head of community at Incredibuild; Kohsuke Kawaguchi, Co-CEO at Launchable; Oleg Nenashev, Principal Software Engineer at CloudBees; Ewelina Wilkosz, Technical Specialist at Verifa; and Dori Exterman, Chief Technology Officer at Incredibuild.
Continuous Integration and Continuous Delivery (CI/CD) is the fundamental DevOps approach to incremental code changes made frequently and reliably. Ewelina explained that when she started out, her experience with CI/CD was that it happened behind closed doors; her visibility into the operations and delivery was muddled and the process was detached:
“There was a wall between developers and the operations people that were maintaining the continuous integration system for them.”
With the adoption of Jenkins, the CI/CD pipeline turned from a barricading wall to more of a glass door, with increased observability provided to team members. Developers were able to get feedback faster.
CI/CD Pipeline Advances Development Cycles
As CI/CD evolves, it has further broken down the wall between development and operations, empowering developers to spend the bulk of their time enhancing business applications. Typically, the gains have come by automating various parts of the build, test, and deploy processes.
The development environment evolution to containers and microservices makes it easier for corporations to build and enhance enterprise applications. Rather than work with one large monolithic block of code, developers link small pieces of functionality together in an ad hoc fashion and then rely on automated testing to determine how well the code functions.
Tools, including Jenkins, have helped to relieve programmers of often repetitive, mundane data entry. This evolution in CI/CD tools have spawned a huge ecosystem of solutions that are now producing data insights. While the tool specification advancements have been quite helpful in solving select, long-standing problems, they are not a cure-all.
“We still need a more holistic approach to DevOps,” said Incredibuild’s Exterman.
CI/CD Issues: Tool Expansion and Test Flakiness Create Confusion
The progress of speeding up delivery has subsequently identified areas that still fall short within CI/CD.
“In order to move toward some way or another of continuous delivery, development managers must eliminate the human factors from the equation and rely on end-to-end automation processes,” explained Incredibuild’s Exterman.
Manual input is still needed in many stages, with testing a very challenging area. Tests show problems, but developers do not know how serious the issues are or how much work is needed to fix them. One reason is DevOps teams work with a number of ad hoc development solutions that address unique application requirements. Organizations often rely on three generations of development tools, and each one has a wide range of solutions for the many steps that occur during development. Because the tools house information in a siloed manner, trouble-shooting becomes quite complex.
Application design, compiled in a free fashion at run time, introduces flaky test results, errors that arise sporadically and are difficult to identify. “Now, you see teams at leading-edge companies, like Google and Dropbox, studying the flakiness found in software testing and trying to create tools that address it, so we test smarter,” explained Launchable’s Kawaguchi.
The Future of CI/CD: Data-Driven DevOps
CI/CD set lofty goals. Jenkins provided organizations with version control capabilities and a rich CI/CD ecosystem. Now, the industry needs to streamline testing by reducing development tool complexity. Tools are generating ample data, but the next evolution is efficiently taking that data and using it to drive DevOps to even faster CI/CD cycles.
Reaching this next evolution of data drive DevOps and CI/CD cycles has the potential to flip the traditional development script from having employees ensure that current systems keep running to spending the bulk of their time enhancing business applications.