I recently had the good fortune to encounter Tom McGonagle, SE with F5, via the Boston DevOps chatroom, moderated by Dave Fredricks. I had been invited to post in Dave’s newly inspired mentor/mentee topic channel, which I welcomed as I had been looking for guidance around a side project of mine. Tom contacted me through chat, and before the morning was out, we were enjoying a crisp pair of pizzas, the artful pies you can only get in downtown.
We exchanged impressions on working in the tech industry, on the big-hearted, quirky and iconic culture that makes being an engineer among engineers so incredibly rewarding. We concluded with an invite from Tom to one of the meetups he co-organizes, Hackernest in Artisan’s Asylum, so I marked my calendar and went on my way.
Before the week was out, Tom sent me a link to REDtalks #14: Tom & David on the Principles & Practices of DevOps with host Nathan Pearce, featuring Tom along with fellow DevOps specialist and Bentley U alumnus David Yates.
When I sat down to listen, I expected an informative piece with some new-to-me tidbits here and there.
This podcast captivates me. Rather than listening passively from one end to the other, I found myself skipping back and forth to make sure I was getting exactly what is being said. For Tom specifically as the one who reached out to me, congratulations – this is fantastic.
Here are my (extensive!) notes from this most excellent podcast.
- continuous delivery – testing and QA as a first class object, how do you pull that left in the pipeline and do it early, often, iteratively and incrementally
- continuous intelligence – how do you pull it all into a central location and make sense of what was happening in your application and infrastructure
- continuous learning – “fail early and fail often”, don’t be afraid to take risks, you can only learn by practicing and getting better, experimentation as culture, that includes getting the components of the infrastructure to harmonize with each other
Yates – 11:30 – teams uniting around a common mission
- Quarter over quarter, having a common goal as to how the team can get better. One of those goals can be customer education.
OKRs – Google’s term, objectives and key results
McGonagle – 12:31 – CAMS
- CAMS are culture, automation, monitoring, and sharing. Sharing is critical as a devops engineer, devops consultant, or Devos SME at F5, there is a fiduciary responsibility to share these idea viruses. One of the idea viruses that I’m hot on right now is the idea of agile networking, it’s my language around the application of agile and devops principles to the field of network engineering … it’s part and parcel of being part of the devops community, you have to share. As part of my sharing, David and I organize the Boston area Jenkins Meetup group – largest area Jenkins meetup group in the world. It’s part of getting out into the community and getting people aware and interested in DevOps.
McGonagle – 14:00 – 9 Practices of DevOps
Practice 1: 14:15 – Configuration Management – you can templatize your configurations and drive your autonomic infrastructures that self-build, self-configure and self-automate
- Question from Yates on Practice #1: 16:20 – What are the best practices around Configuration management?
- Answer about best practices from McGonagle at 16:40 – use facts to drive your configuration, intelligence gathering about the server, self-identifying and self-configuring
Yates – 21:00 – the big motivators for devops is that it’s the marriage of modern management and IT best practices, positive feedback between business requirements and IT delivery
Yates – 21:31 – business reasons that gives DevOps legs
Yates – 21:45 – DevOps from all points of view, IT best practices
Practice 2: 22:59 – Continuous integration – a robot such as Jenkins that takes your code from a source code management repository and builds it and tests it in a continuous way, every time a developer commits code the robot tests it against the functional and unit tests, it enables the developers to have awareness of the quality of the code
- McGonagle – 25:40 – Linting – check the code for the appropriate format, which eliminates an enormous amount of errors, a test that can be orchestrated through a tool like Jenkins
Practice 3: 26:40 Automated testing – TDD, test driven development, build the test into your CI infrastructure, “write the unit test before the code”
- Yates – 27:53 – TDD is one of the core principles of the XP Agile framework, make sure you know it works before you roll it out, especially for security
Practice 4: 29:15 – Infrastructure as Code – software project for your infrastructure with all the benefits applied to infrastructure, infrastructure is programmable and extensible, saves time and validates the process
- Yates – 34:14 – canary release – don’t put out a new release everywhere at once, put it out in an isolated deployment so it can be rolled back quickly, if it succeeds then roll it out more widely
Practice 5: 35:40 – Continuous delivery – the way the code is rolled out, there’s a button that’s pushed to release – do you push a button to release?
Practice 6: 35:40 – Continuous deployment – the code contantly goes to production – do you create a button to release?
Practice 7: 18:16 – Continuous monitoring – metrics driven devops, APM – application performance monitoring, instrumenting your code to expose various qualities about your code and infrastructure to a metrics gathering tool
- McGonagle – 39:27 – ACAMS+ -> add in Agile to culture, automation, monitoring and sharing and what is important to you
Practice 8: 40:30 – Develop an engaged and inclusive culture to encourage collaboration and shared ownership
- Tom’s Amish barn raising post , culture in which all teams are working toward the same goal
- Yates – 41:44 – students run three sprints using scrum, the most important thing you can do is own the product you’re going to deliver, having empathy for teammates, easier to say than do
Practice 9: 43:47 – Actively participate in communities of practice to become a lifelong learner of technology development (don’t be a jerk!) – going to conferences, being a speaker, a good participant, a nice person, a listener, the benefit is the learning opportunities it creates
- McGonagle – 47:26 – What should people do if they want to get into DevOps? Be brave.
- Yates – 48:49 – Work on being a lifelong learner of technology development. He’s reading The Checklist Manifesto that has nothing to do with IT but helps stimulate his security thinking.
- McGonagle – 50:08 – What is the first book I should read to give me an idea of how to start? Recommends Web Operations by John Allspaw and Jesse Robbins
- Yates – 50:29 – Recommends DevOps Handbook by Gene Kim, Jez Humble and Patrick Debois
- Pearce – Recommends The Phoenix Project
My final takeaway is I am humbled by the privilege of being able to work in an industry distinguished by a culture of enthusiasm, passion and ownership.
While no profession can be exempt from drudgery, the devops culture of cheerful collaboration has, by virtue of its effectiveness, become an accepted prerequisite for deploying a successful product. As a result, the typical corporate cynicism is mitigated and even replaced by an expressive and generous optimism. Innovative and disruptive indeed.