AlexOakenman - Fotolia
DevOps has become a go-to strategy to foster collaboration between developer and operations teams and to more efficiently deploy and manage apps. But container and cloud orchestration tools -- particularly those related to Kubernetes -- have also taken hold in the enterprise.
Now, two cloud-related developments seem to de-emphasize DevOps tools in favor those for orchestration: coping with virtual resources and event-driven lifecycle management.
Coping with virtual resources
The cloud is one several technologies that stems from virtualization.
Virtualization enables businesses to create what appear to be independent hosting resources that share a single server. Cloud vendors offer these virtual resources as publicly available services, and a growing number of enterprises will host at least some of their application components -- especially front ends -- in the cloud.
In cloud deployments, applications run on virtual platforms within a private subnetwork, with their APIs exposed. Most IaaS providers offer native cloud orchestration tools, such as AWS CloudFormation or Azure Resource Manager, that, despite not being as sophisticated as some third-party DevOps tools, like Chef, Puppet and Ansible, are sufficient to manage a deployment.
Third-party DevOps tools, on the other hand, support virtual and cloud deployments via a form of plugin and were designed for bare-metal and highly variable hosting and network connection options. That flexibility makes them more complex to use than providers' native cloud orchestration tools.
Meanwhile, in the data center, there's been a shift from bare-metal servers and VMs to containers. Container deployment presumes a hosting model that centers around a standardized subnetwork -- similar to cloud -- and this standard framework simplifies container orchestration. Since containers and cloud have similar deployment frameworks, container orchestration is very much like cloud orchestration. As a result, the most popular tool for container orchestration -- Kubernetes -- is one of the most widely adopted cloud orchestration tools.
Virtualization, in the form of both the cloud and containers, encourages the separation of resource and infrastructure control from virtual hosting control. Infrastructure as code is one example of this, as it enables IT to manage resource pools as hardware at one level, and hosting and deployment at another. Many users like the flexibility of this separation, as orchestration tools provide, while DevOps tends to support the two in combination.
Event-driven lifecycle management
Enterprises increasingly want tools to manage the entire operational lifecycle of an application -- not just deployment. This trend has also affected the balance between DevOps and cloud orchestration tools.
Application lifecycle management involves handling any events that represent abnormal operating conditions. Leading DevOps tools have added event support, but this advancement rekindles one of the long-standing DevOps debates: the declarative vs. prescriptive, or imperative, approach.
Because DevOps evolved from OS scripting tools, it inherited the prescriptive approach, which defines the steps a system should take to reach a desired outcome. More recent DevOps products -- as well as cloud and container orchestration products -- are based on the declarative model, in which you define a desired end state and a system automatically works to achieve it. It's fairly easy to incorporate event handling into declarative models but difficult to incorporate it into the prescriptive DevOps model.
Not only do cloud, and most container, orchestration tools regularly handle events, all the public cloud providers offer event processing capabilities through their microservices and serverless offerings. For example, AWS Step Functions and Azure Functions are both event flow orchestration tools that exist as a layer on top of a serverless computing platform. They organize stateless processes into something more like a traditional application.
On the other hand, it is difficult to adapt DevOps tools and processes to handle the deployment and lifecycle management of application components that don't have visible, persistent relationships with resources.
DevOps is still relevant
Despite these limitations, DevOps processes and tools still offer value.
When it comes to hybrid cloud, for example, DevOps tools can work with any public cloud provider and in any data center configuration. Enterprises with hybrid applications whose components span multiple hosting options may find DevOps is the only automated deployment and lifecycle management option that covers all their bases.