A few weeks ago, my colleague Brian Dawson and I were invited to present on Scaling Jenkins for Continuous Delivery with Microsoft Azure in Microsoft’s Reactor space. Azure is Microsoft’s public cloud offering and one of the many tools available to Jenkins users for adding elastic compute capacity, among other things, to their build/test/deploy infrastructure. While our presentations are applicable to practically any cloud-based Jenkins environment, Thiago Almeida and Oguz Pastirmaci from Microsoft were also on-hand and presented some interesting Azure-specific offerings like Azure Container Service with Jenkins.
To kick-off the meetup we asked attendees a few polling questions and received very telling responses:
How big is your Development/IT organization?
What is your role?
By show of hands do you practice CI/CD/DevOps/etc?
At what scale (tooling and practice)?
The responses indicated that the majority of attendees were from small to medium organizations where they practiced Continuous Delivery across multiple teams. A notable 25% or greater attendees considered themselves "fullstack" or participating in all of the roles of Developer, QA, and Operations. Interesting when paired with the high number (~80%) of those who practice CD. This is likely because modern teams, with mature CD practices, tend to blur the traditional lines of Developer, QA and Operations. However, In my experience, while this is often the case for small to medium companies in large organizations team members tend to fall into the traditional roles, with CD providing the practice and platform to unify teams across roles.
After gauging the audience, Thiago and Brian reviewed Continuous Delivery (CD) and implementing it at scale. They highlighted the fact that CD is being rapidly adopted across teams and organizations, providing the ability: to deliver a demonstrably higher quality product, shipping more rapidly than before, and to keep team members happier.
However, when organizations fail to properly support CD as they scale, they run into issues such as: developers acting as administrators at the cost of productivity, potential lack of security and/or exposure of IP and difficulty in sharing best practices across teams.
Thiago then highlighted that properly scaling CD practices in the organization along with the infrastructure itself can alleviate these issues, and discussed the benefits of scaling CD to on cloud platforms to provide "CD-as-a-Service."
Overall I found the "theory" discussion to be on point, continuous delivery is not just a technology nor a people problem. Successful organizations scale their processes and tooling together.
The slides from our respective presentations are linked below:
I hope you join us at future San Francisco JAMs!