DevOps and Cloud Computing
…The perfect match or the odd couple?
If you’re at all familiar with IT people and operations you’ve probably heard the term DevOps at some point. It is a mash-up of the individual terms “development” and “operations”, with each area having its own objectives and point-of-view. What DevOps seeks to do is bring these two very necessary approaches together, or create a sustainable common ground, if you will. It’s not just about providing continuous service in IT anymore, software development is becoming something that businesses are using to leverage the power of their resources to increase sales, create new products as well as strengthen their IT infrastructure. DevOps and Cloud Computing
In a nutshell, those on the development side of the fence want to create, they want change and their counterparts on the operations front want stability. Naturally, both of these approaches to a business’ IT resources are often critical, and certainly both groups are working for the same team at the end of the day, but this doesn’t mean that there won’t still be problems and confusion. For example, an operations team is tasked with maintaining the stability of all IT systems in order to ensure that the organization can function on a fundamental level.
However, the development team, which is actively seeking to move things around, create new components and/or initiate change (overall, for the benefit of everyone) might end up compromising the stability of basic operations by introducing these new things. In turn, once these new elements are introduced by the development group, the operations people will undoubtedly have to alter their creations in order to ensure overall system steadiness. The DevOps paradox is akin to a tug-of-war which perpetrates a vicious cycle of sorts; however, it can still create forward momentum and bring positive changes to the forefront.
What makes cloud computing an invaluable tool (when it comes to DevOps) is its communication, flexibility and capability. Simply put, both developers and operations-minded individuals (and teams) can use the capabilities of the cloud to further their own goals while at the same time, sharing more refined offerings amongst each other. For instance, thanks to cloud computing’s ability to requisition large amounts of power and storage; it is possible to create virtualized versions of an operational environment which they can use to test their new creations.
Likewise, an operation team can benefit from cloud computing’s increased centralization, which allows them to more effectively manage every aspect (of the IT operation). Also, because communication can often be greatly increased and more transparent because of the cloud, everyone on both sides might know more about what’s happening at any given time and what the ultimate objectives are from an organizational point-of-view.
Developers, in particular, are able to greatly benefit from the use of cloud computing in that they can access vast, highly-powered resources very quickly without having to wait or rely upon the operations department for provisioning. This line of thinking is giving rise to notion of completely automated operations management through cloud computing. Developers could come to rely on programmed management of operations in the near future, eliminating the traditional role of Ops providers. This would be deployed through something akin to PaaS however, and likely wouldn’t be able to offer as much control as something like IaaS. On the other hand, this doesn’t necessarily mean that operations specialists will be made redundant, only that IT operations and development might become slightly more segregated or independent of one another.
So, while the developers are busy utilizing their own system to create new software, the operations specialists are presiding over their own world which is primarily tasked with ensuring that their company’s IT services stay on track. As far as DevOps integration is concerned, if both groups were running what amounts to their own cloud infrastructures, integration could be initiated as part of a series of last steps after more thoughtful and stable creations and conditions are met. Additionally, operations personnel could also opt to create specially provisioned clouds for the development squad which might allow them to become more independent and able to requisition their own resources.
Regardless of the manner in which cloud technology is used in fostering a better DevOps relationship, there is great inherent potential. The ultimate goal of course is to allow developers to achieve true continuous delivery of software and give operations-minded teams enough control to ensure that service disruptions are a non-issue. It could be argued that something like this wouldn’t even be possible for most businesses without cloud computing (as it might be cost-prohibitive). Given that cloud technologies allow for deep savings with no loss of capabilities, it only makes sense to initiate a more cloud-centric approach to DevOps.