Summary Continuous integration systems are important for ensuring that you don’t release broken software. Some projects can benefit from simple, standardized platforms, but as you grow or factor in additional projects the complexity of checking your deployments grows. Zuul is a deployment automation and gating system that was built to power the complexities of OpenStack so it will grow and scale with you. In this episode Monty Taylor explains how he helped start Zuul, how it is designed for scale, and how you can start using it for your continuous delivery systems. He also discusses how Zuul has evolved and the directions it will take in the future. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. When you’re ready to launch your next app you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email hosts@podcastinit.com) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Monty Taylor about Zuul, a platform that drives continuous integration, delivery, and deployment systems with a focus on project gating and interrelated projects. Interview Introductions How did you get introduced to Python? Can you start by explaining what Zuul is and how the project got started? How do you view Zuul in the broader landscape of CI/CD systems (e.g. GoCD, Jenkins, Travis, etc.)? What is the workflow for someone who is defining a pipeline in Zuul? How are the pipelines tested and promoted? One of the problems that are often encountered in CI/CD systems is the difficulty of testing changes locally. What kind of support is available in Zuul for that? Can you describe the project architecture? What aspects of the architecture enable it to scale to large projects and teams? How difficult would it be to swap the Ansible integration for another orchestration tool? What would be involved in adding support for additional version control systems? What are your plans for the future of the project? Keep In Touch emonty on GitHub Website @e_monty on Twitter Picks Tobias Hitchhiker’s Guide To The Galaxy Monty Bojack Horseman Links Red Hat Zuul OpenStack Jim Blair Perl SNPP Rackspace NASA Drizzle Sun Microsystems MySQL Continuous Integration Continuous Delivery Launchpad Bzr Jenkins Jess Frazelle Graphite StatsD graphite.openstack.org grafana.openstack.org subunit Ansible Helm Software Factory Gerrit Git Perforce Subversion Zookeeper Gearman The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA