Here are some of my thoughts on DevOps… the new buzz word from last year. But, I have have been doing this stuff for years since I was at CFLD, where I was both the Developer and the Operations guy for web stuff. But then at ADP-BS in 2004 I was the Operations guy who worked hard to overcome the walls, or silios between the productions, QA, and developers, and database folks, and application ops folks… I seemed to be the lynic pin between them all, and I take great pride in bringing them together. Or being part of a team of folks who helped on this.
CAMS is an acronym describing the core values of the DevOps Movement: Culture, Automation, Measurement, and Sharing.
The “three ways” are systems thinking, amplifying feedback loops, and a culture of continuous experimentation and learning.
- Rethink “Highly Reliable”
- Blue>Green (staging to production)
- Dependency Injection (loosely coupling)
- Andon Cord(Lean)
- Cloud Infrastructure
- Embedded Teams
- After-Action Review (postmortem meetings)
- Status Pages
- Developers On Call
- Incident Command System
What tools do we use? Build, store, deploy, monitor, and more….
I learned about postmortem meetings while in the Army, where they call them After-Action Reviews. Admit Failure, Be Human, Have Good Communication Channel (outside the loop), Be Authentic.
Which brings us back to the Interpersonal “Soft Skills” are as important as the every changing technical skills. Good books to read and learn from have been Dale Carnegie’s How to Win Friends and Influence People. Difficult Conversations, Getting to Yes, How to Say it at Work and so many others over the years. Sort of like Seven Habits(not to be confused with the Hobbits), or the Greatest Salesman. Basically building trust….problems come from lack of context, and seemingly conflicting goals. Rarely are people actually trying to be assholes. Mostly they are actually trying to do the best job they can.
So when I was at ADP-BS, I was like embedded in with the .NET dev team, as the Ops guy. Weird being aligned with I was the only network IT guy who didn’t sit with the IT guys. Funny enough I think I was more effective at helping the people who I was there to work with, because I sat next to them, rather than halfway across the building.
Another part of good communication is picking and knowing good chat tools. Now adays Hubot, and Slack, and chatbot… but back when I was a sysadmin at AOL, my AOL chat tool ran all-day, on many channels. I lived on that…. How else can you get server OS guys, and application ops folks and change management people to all communicate live, rather than long winded emails.
Effective DevOps by Jennier Davis and Katherine Daniels focuses on the collaboration and culture aspects of DevOps. Infrastructure as Code is also pretty good. (notes update added July 2016) Still need to read Using Docker
5 Unsung Tools of DevOps.
and Implementing OpenShift (which where I used to run my personal Websphere piggy back and petstore online samples) Which I learned was the only place I could put online java samples, and run by RedHat, which I gained exposure to while at AOL.