It is rare to look back upon technology trends over 10 years, especially in the enterprise management software space. If you were a Gartner or Forrester analyst, this would be part of your job, but for the general practitioner, understanding the larger macro trends in IT management help balance all the Twitter traffic on the next bright shiny thing, or the trend for the Cat in the Hat to keep coming back and messing up your architectural plans. Over the past decade, businesses have moved from needing applications to run their back office operations to now the business value being expressed as mobile app and the physical device is just an endpoint providing data to the app. These applications become the key asset the company has to drive shareholder value. And guess what? The architecture of those applications has changed from 2005. There are so many ways to architect, build, integrate, deploy, operate and lifecycle manage applications nowadays, but there is a huge upswell toward the new container technologies.
Managing application containers is poised to become the most important enterprise business practice
While this may seem like a bold statement, the trend towards microservices-based containerized applications, (such as the next generation of business workload runtime) is set to replace Virtual Machine-based workloads over the next decade. Given all the tools for infrastructure management and application management and the IT processes wrapped around VM management, there is little dispute that, depending on the size of the enterprise, day-to-day management of thousands—and in many cases, tens of thousands—of individual mission-critical application microservices will soon contribute significantly to the successful operation of modern businesses. Many IT and line-of-business (LOB) teams are adopting DevOps best practices for deploying containerized applications (either traditional N-tier architectures or the more modern microservices-based applications) and are replacing all manual processes with automated processes. IT operations teams that do not adopt these practices will crumble under the weight of managing and optimizing the application run-time state. As a result, these teams will fail to meet customer expectations for performance and struggle to deliver delightful customer experiences. On the other hand, business owners want to deliver value at the lowest possible cost and highest efficiency. Given this context, it is easy to see that automating lifecycle management for these workloads will be indispensable to the enterprise.
The Evolution of Application Management
With the advent of virtualization and business automation, IT evolved from a cost center to a business differentiator. The initial attempts at infrastructure automation involved scripts and custom applications that evolved into automation engines and service portals. This evolution moved enterprise business units towards VM and Application deployment approaches that are based on self-service and software API. Business units also adopted lifecycle management tasks (such as scale-in and scale-out of VMs) to meet Service Level Agreements, the same reason they chose container management tools.
Automated provisioning and orchestration of virtual machines, network, storage, and security promoted the concept of a software-defined data center. Many manual and error-prone aspects of the application lifecycle (especially those pertaining to distributing and managing the configuration of the application workload and the underlying system infrastructure configuration) could be specified as a “contract” and deployed with automation. This was first applicable to development and test environments, then to production workloads.
For more than half a decade, Cloud Management Platform (CMP) and Platform-as-a-Service (PaaS) have been the state-of-the-art IT operations tools for managing infrastructure and applications, respectively.
The CMP evolved from a simple provisioning and lifecycle management to a more comprehensive platform, one that handles ecosystem and IT integrations as well. With the advent of containers as execution engines, CMP functionality is being extended to containers.
Traditional PaaS solutions are being challenged because of the increasing adoption of DevOps philosophy and the availability of modern tools like Docker, Mesos and Kubernetes. Based on a new class of application architecture—the microservices-style application—first-generation PaaS solutions are being rebuilt or outright replaced by new Container Services that provide an open, robust, simplified, and more capable “outer” architecture model. In essence, container technology is evolving from proprietary implementations within the platform to the developer-defined unit of packaging and run time across the entire application delivery pipeline.
Cloud-Native Application Lifecycle Management
The first-generation lifecycle management products (2005–2010) were challenged because of the limited technology on which they were based, namely, discrete components that had evolved from the previous era of Service Management and Orchestration. By 2012, tools became more integrated to solve the problems of the previous decade. While this multi-year architectural shift provided increasing capabilities and a more monolithic, albeit on-premises, software appliance-based architecture, adoption was still relatively limited because these solutions required extensive professional services to implement and maintain. In a sense, the CMP and PaaS “platform” solutions of the pre-container era were modeled on the N-tier applications they had been designed to serve, including all the limitations of the high cost of ownership, the huge implementation expenses, the ongoing professional services costs, and the ultimately questionable ROI. What drives businesses to adopt microservices-based containerized solutions is also driving the management plane towards the same architecture. This architecture provides a modern and easily scalable “AWS-like” experience, as opposed to a 2005-era user experience with an expensive, monolithic, on-premise deployment footprint that requires a dozen IT employees to care for and feed it.
Application owners and their IT supporters, including the recent DevOps trends, have a variety of options for container based solutions and managing the microservices applications based upon them. Docker, Kubernetes, Mesos, Openshift— and the list goes on. What is clear however is that the AppOps and DevOps folks will want to manage deployments across multiple cloud providers and underlying container technologies including some VMware infrastructure below the container layer. This all needs a new way to look at and evaluate the container orchestration and lifecycle management solutions out there. You can do it yourself with the DevOps engineering talent or you can look to commercial based solutions that provide productized platforms and frameworks so that your top talent can focus on developing the application, managing integrations and the run time service levels. With this in mind, take a look at this Buying Guide for Enterprise-Grade Container Management.