A couple weeks ago I boarded a plane at the always-adorable Charles M. Schulz Sonoma County Airport en route to Seattle to participate in a Microsoft Azure OpenDev Event. Thanks to my pal Ken Thompson, who recently joined Microsoft as a product marketing manager for their Open Source DevOps team, I was invited to talk about all things Jenkins with a dash of Azure.
It's been no secret that I have become a fan of Azure lately. Microsoft's investment in open source technologies as a means of driving innovation for their cloud platform is very exciting for me. While they don't get everything right, I have seen tremendous month-to-month, and year-to-year, improvements from the Azure team since I first started using Azure a few years ago.
Setting aside the Azure lovefest and getting back to the matter at hand however: the Azure OpenDev event. Ken and his team decided to try something different for this event and invited a number of folks from different organizations like Ryan from GitHub, Matt from Chef, Nic from HashiCorp, and Christoph from Elastic. This line-up not only made for a really informative block of video content, but it also made the whole experience quite fun too. From the pre-event speakers dinner, to the panel discussion we had at the "after-party"/Seattle Jenkins Area Meetup, it was two days of what felt like non-stop talking and excitement.
During my discussion with Ashley I talked about (at length!) Jenkins Pipeline which, regardless of who my employer presently is, has definitely moved the needle for Jenkins automation forward in a spectacular way. In addition to Pipeline, we also discussed and walked through some real-live Jenkins instances running Blue Ocean.
We also discussed, briefly, some of the Jenkins project's own infrastructure code. Composed of Puppet, Terraform, Jenkins Pipeline, and a schmear of bash script.
The video below is a bit of a whirlwind tour, dabbling in Jenkins, the project's infrastructure, and some Azure tools available for Jenkins.
Unfortunately 30 minutes goes by really fast and I couldn't cover absolutely everything I wanted to talk about. I did warn Ashley beforehand however, that I can probably talk about Jenkins things for hours on end.
I wanted to talk more about how the Jenkins project now uses Kubernetes quite heavily, on Azure, to power our "application tier." Contrasted with our infrastructure tier of virtual machines, storage accounts, databases, or load balancers, I wanted to explain that the "application tier" fits perfectly in the Kubernetes world, and enables different web applications, bots, and services to be rapidly developed and continuously delivered.
I also wanted to talk about how we use Puppet to manage our Kubernetes resources after we tried a number of different approaches for managing our Kubernetes-based infrastructure. Having realized that Puppet has all the basics which we needed, but found ourselves reinventing: multiple environments, secrets management, state management.
I didn't quite get a chance to talk about some of the Jenkins project's own Jenkins Pipelines, like this Jenkinsfile which is what actually builds the jenkins.io static site and uploads assets to Azure Storage. Or this Jenkinsfile which tests, lints, and ensures our Puppet code is correct. Fortunately, I did talk a little bit about this Jenkinsfile which manages our Terraform build, test, and deploy pipeline.
I alluded too the Jenkins project's own Jenkins environment but there's an entire presentation's worth of content in how I have architected that Jenkins environment.
I could literally talk for hours about Jenkins and Jenkins-related topics.
I'm not certain if that's a good or a bad thing however; probably best not to think too much about it.
Overall between the speaker dinner, the OpenDev event, the after-party/JAM, and the after-after party, the entire experience was challenging, informative, and enjoyable. I do hope the team at Microsoft continues to host these types of "rougher" open source friendly events in the future
Whether they realize it or not, Microsoft is in a great position to encourage and facilitate some really interesting cross-project collaboration with more events like this, so fingers crossed that they will step up to the plate.