Jenkins World 2016 Wrap-up - Pipeline
|This is a guest post by Liam Newman, Technical Evangelist at CloudBees.|
As someone who has managed Jenkins for years and manually managed jobs, I think pipeline is fantastic. I spent much of the conference manning the Ask the Experts desk of the "Open Source Hub" and was glad to find I was not alone in that sentiment. The questions were not "Why should I use Pipeline?", but "How do I do this in Pipeline?"
Everyone was interested in showing what they have been able to accomplish, learning about best practices, and seeing what new features were on the horizon. The sessions and demos on Pipeline that I saw were all well attended, but no one could have seen all of them.
Here’s a recap of the some of the sessions on Jenkins Pipeline, with links to slides and videos shared by CloudBees:
Jesse Glick discussed the past, present, and future of Jenkins Pipeline in Directions for Pipeline. He reviewed a broad range of improvements made to Pipeline over the last year, including syntax, documentation, plugin support, and stability. He reviewed the changes currently underway. He also pointed out that many of the improvements have been driven by user feedback and invited everyone to continue to participate in making pipeline even better.
In Pipelining DevOps with Jenkins and AWS, Jimmy Ray of nextSource showed how Pipeline can be used to automate CI/CD build processes, and how to integrate Jenkins and Pipeline with AWS. He also discussed some admin-level considerations, such as how to install Jenkins on EC2 and the merits of "LTS" and "latest build".
Christopher Orr examined how to create "Continuous Build and Delivery Pipelines for Android" applications. He showed how to set up Android-capable build agents, ensure traceable application releases, reporting warnings, run various types of tests, and deploy and app to Google Play. This included live demonstrations and discussion of best practices.
Andrew Bayer presented A New Way to Define Jenkins Pipelines. He showed the next evolution for Pipeline, based on a simpler declarative model. This declarative syntax for Pipeline still supports the creation of complex pipelines, including complete build environments, post-build actions, and notifications, while also being easier to understand. This declarative syntax also makes in it easier to implement other interesting scenarios such as early validation of pipelines and a visual pipeline editor.
In Perfecting Your Development Tools: Updates to the Helix Plugin for Jenkins, Paul Allen of Perforce walked through using Perforce’s "Monorepo" model with Jenkins Pipeline. He explained in detail how to work with the Perforce "P4" plugin in Jenkins, including credential passing and workspace management. Of particular interest was his side-by-side comparison the various actions done with the Jenkins UI vs Pipeline.
Sam Van Oort demonstrated strategies for faster pipelines in The Need For Speed: Building Pipelines To Be Faster. He discussed various elements that contribute to making pipelines faster or slower, such a number of resources and latency. He then showed several best practices for constructing pipelines that have lower turnaround times and reduced resource use. He also reviewed plugins and tools that can help analyze and visualize pipeline performance, including the Pipeline Stage View plugin and Blue Ocean.
Bobby Sandell and James T. Nord talked about what not to do with Pipeline in No, You Shouldn’t Do That! Lessons from Using Pipeline. They told the story of their own experiences as early adopters of Jenkins Pipeline at CloudBees. They described a number of key scenarios they attempted to address, detailed various mistakes and false starts, and finally share what they learned in each case.
Alexandru Somai gave a lightning talk on his Google Summer of Code (GSoC) 2016 project, "External Workspace Manager Plugin for Jenkins Pipeline". The build workspace for Jenkins projects may become very large. Alex showed how the External Workspace Manager plugin addresses this issue, adding support for managing and reusing the same workspace between multiple pipeline builds.
A recording of his presentation for GSOC is available here.
How to Do Continuous Delivery with Jenkins Pipeline, Docker and Kubernetes, presented by James Strachan of Red Hat, showed how to use Jenkins Pipeline with Docker and Kubernetes to implement a complete end-to-end continuous delivery and continuous improvement system using open source software for both microservices and monolithic applications. He demonstrated how to create or import projects, and have them automatically build, run system and integration tests, stage, and finally deploy. He also showed to manage and update those deployed applications using continuous delivery practices.