IT professionals on both sides of the aisle are invested in DevOps technology's trajectory and how it ultimately...
reduces the effort and errors associated with application deployment and maintenance. Options include closed-loop, one-touch, zero-touch, automation, orchestration, AI and machine learning, and the ball hasn't stopped rolling yet.
The endgame is simple: An application's lifecycle starts with an assessment of what the business needs from IT and ends with IT support successfully sustaining the application or service in the data center, cloud or both. This broad lifecycle contains several seemingly disconnected steps, tasks and tools that each require human intervention to organize and connect. The devil of details in application lifecycle management (ALM) increases effort, overhead and errors to the detriment of both operations and departmental worker productivity.
Automation is a top goal, from application conception -- or selection, in the case of a third-party business application -- through adoption and use. Executive-level management wants zero-touch automation that controls every application, all the IT resources it runs on and every step of every development and operations process. Zero-touch automation, sometimes called ZTA, covers two specific goals: Sustain an infrastructure that supports applications, databases and workers, and accurately automate application mapping onto IT infrastructure. The former is about analytics and capacity planning, and the latter facilitates terms such as DevOps and orchestration.
DevOps, both as technologies and cultural changes that drive faster, better software delivery and operations, predates advances in cloud computing and virtualization. Development teams would build something and turn it over to operations to run, without consideration for the operational deployment requirements. So, DevOps was supposed to link development and operations to pass that essential information along and create either scripts to automate critical steps or models that defined target configurations.
Because DevOps' initial focus was the application development cycle, DevOps tools have become integrated into application lifecycle management.
For operations administrators -- particularly those more dependent on third-party software than on products developed in-house -- virtualization and the cloud emerged as challenges. Virtual resources and tasks, such as redeployment of failed components or scaling of overloaded components, didn't have much input from development.
Orchestration is the process by which administrators synchronize many steps into a cohesive and useful whole and is central to the cloud, as well as to container technology operations. Rather than try to create sequences of steps to handle possible variations from one hosting environment to another, orchestration tools create a standard deployment framework of containers and subnets and then provide a facility to structure applications into a deployable container model.
Most modern orchestration tools extend the basic application deployment process to include both redeployment and scaling. The trend to componentized applications, such as microservices, might be shifting the emphasis in IT operations automation to orchestration. With modern applications designed to deploy in independent components rather than as one cohesive unit, these enhancements to basic hosting and virtualization capability fall within operations' domain.
Cloud, virtualization and componentization might advance both DevOps and orchestration to something more akin to full IT operations automation. Application redeployment and scaling are responses to events, conditions that signal the need for intervention. DevOps vendors, such as Red Hat, Ansible, Chef and Puppet, have already incorporated event handling, including generation and response actions, into their configuration management offerings. Events can trigger basic scripts or actions, but not a full automated analysis and response to the situation. Kubernetes, the open source container orchestration platform, has the ability to receive status events, but at the time of publication, Kubernetes isn't capable of responding to these events with deployment changes. Users must create a link to a separate response software tool, relying on closed-loop automation. Examples include escalation tools, such as PagerDuty, and security tools, such as NeuVector, which scans for containers compromised in a security breach and shuts those containers down.
Closed-loop, event-to-action coupling is the goal of zero-touch automation, and it hasn't been fully achieved via DevOps tools nor application-level deployment orchestration. Public cloud providers and network operators can use software based on Oasis' Topology and Orchestration Specification for Cloud Applications specifications: TOSCA is a solution to the operations-centric issues of orchestration, but it doesn't fully integrate developer and traditional ALM activities.
Another view of IT automation comes from the server farm, as well as some IP router providers. A combination of analytics to monitor resource utilization and faults and performance and policy management tools to influence resource allocation provides a self-healing infrastructure model.
This approach could reduce the need to incorporate events into orchestration tools, and it's probably the most popular approach to application support automation.
AIOps is widely considered the future of IT. AI systems do what humans do but more efficiently and accurately, which makes them a logical tool in the zero-touch automation kit. Most currently available AI systems can't manage large-scale deployments, although some companies, such as FixStream, offer AIOps tools that can analyze application state and infrastructure and report issues with availability and quality of experience. This could then be extended, in theory at least, to activating automated responses to the problems.
Regardless of whether AIOps automation ever lives up to its promise, market trends around self-sustaining and self-governing IT deployments are converging. They will broaden the scope of application lifecycle automation and eventually reduce costs and errors for everyone dependent upon software for business productivity -- which is everyone.