DevOps is about getting Development and Operations to work together and avoid conflicts in how they operate is to achieve their goals. The most commonly noted objective is shifting to Agile processes where applications are released more often and with better quality. While development and operations are of equal importance to a DevOps methodology, this article focuses on the role of Operations in facilitating an efficient and successful DevOps implementation.
In a DevOps environment, the operations team participates in the following activities:
Automation Tools
Automation is a cornerstone to DevOps, as it facilitates continuous integration and delivery of applications into various environments (dev, test, prod, etc.). An example of such automation tools is VMware’s vRealize CodeStream, which allows the creation of release pipelines (e.g., from dev, to test, to production), with various tasks to retrieve application builds, deploy environments, automation testing, and etc. These tools are typically implemented and maintained by the operations teams.
Blueprints
Infrastructure and application blueprints may consist of a number items, such as VM templates, configuration management code, or workflows. Configuration code, e.g., Puppet manifest or Chef cookbooks, are used to configure deployed VM’s and the applications running thereon. Configuration Workflows may also be developed using tools such as vRealize Orchestrator. Dev and operations teams share responsibility for developing the blueprints to ensure deployed environments are correct and ready for use in the various release stages.
Patching and Upgrading
Historically, operations teams held responsibility for maintaining the various tools used by the development and release teams, such as build tools, source-code management tools, automated testing systems, and etc. However, the lines are blurring here as developers take on more coding responsibility for such management. This means Operations teams are housing development teams capable of developing the management automation.
Monitoring
This is one of the areas that are frequently overlooked, or at least rarely mentioned, in a DevOps environment. Monitoring applications through the various promotion environments is very important to ensure a fail-fast approach: potential issues are reported and investigated in early stages (dev and test), before they become real problems.
The operation team also builds dashboards for developers and operations so the application and its environment can be monitored throughout the Continuous-Integration/Continuous-Delivery process. This provides developers with feedback on the applications impact on the environment in which it runs, allows operations to become familiar with the same from an environment (VM/vApp) perspective, and provides confidence to the operations team that the Continuous-Integration/Continuous-Delivery process is working and there will be no issues when the application is released into production
It is worth mentioning that collaboration between development and operations should start very early, as developers need to embed operations considerations in their application code (such as adequate logging information), while the operations team need to ensure infrastructure availability for developers to start their work.
=======
Ahmed Al-Buheissi is an operations technical architect with the VMware Operations Transformation global practice and is based in Melbourne, Australia.