Behaviorally Speaking: Putting the "Ops" into DevOps

Effective IT operations teams rely upon tools, including the automated collection of events, alerts, and incident management. When an alert is raised or an incident is reported to the IT service desk, the IT operations team must be able to rely upon IT process automation to facilitate the detection and resolution of the incident. IT process automation must include automated workflows to enable each member of the team to respond in a clear and consistent way. In practice, it is very common for organizations to have one or two essential subject matter experts who are able to troubleshoot almost any production issue. The problem is that these folks don't always work twenty-four hours a day, seven days a week. IT process automation, including workflow automation, enables the operations team to have well-documented and repeatable processes so that IT services are consistently working in a reliable and consistent way. Getting these procedures right must always start with the application build.

Effective build automation often includes key procedures such as embedding immutable version IDs into configuration items to facilitate the configuration audit. For example, a C#/.net application should have a version identifier embedded into the assembly. You can embed version IDs via an MSBuild script or using Visual Studio and ClickOnce. The Microsoft MSIL Disassembler (Ildasm.exe) can be used to look inside of a .net assembly and display the version ID. You can use similar techniques in Java/C/C++ along with almost every other software development technology. IT operations staff need these techniques to be able to confirm that the correct binary configuration items are in place and that there have not been any unauthorized changes. Builds are important, but continuously deploying code very early in the development lifecycle is also a critical DevOps function that helps IT operations be more effective.

Additionally, application automation is a key competency in any effective DevOps environment. Continuous delivery enables the IT operations team to rehearse and streamline the entire deployment process. If this is done right, then the operations team can support many deployments while still maintaining a high level of service and support. The best practice is to move the application build, package, and deployment process upstream and begin supporting development test environments. These automated procedures are not trivial and it will take some time to get them right. The sooner in the lifecycle you begin this effort, the sooner your procedures will be mature and reliable.

Having effective IT operations is key to any DevOps transformation within an organization. It is all too common for development to miss the importance of partnering effectively with operations to develop effective procedures that guarantee uninterrupted IT services. If you want to excel, you must include the “ops” in your DevOps endeavors.

About the author

Bob  Aiello's picture
Bob Aiello

Technical Editor of CM Crossroads and author of Configuration Management Best Practices: Practical Methods that Work in the Real World, Bob Aiello is a consultant and software engineer specializing in software process improvement, including software configuration and release management. He has more than twenty-five years of experience as a technical manager at top New York City financial services firms, where he held company-wide responsibility for configuration management. He is vice chair of the IEEE 828 Standards Working Group on CM Planning and a member of the IEEE Software and Systems Engineering Standards Committee (S2ESC) Management Board. Contact Bob at Bob.Aiello@ieee.org, via Linkedin linkedin.com/in/BobAiello, or visit cmbestpractices.com.