As cloud computing principles become embedded in application development and infrastructure operations, new forms of virtualization are taking hold that can abstract compute resources at increasingly fine granularity. These approaches include containers and serverless platforms, which are based on runtime mechanisms that work at higher levels of abstraction than virtual machines. At these levels of abstraction, it becomes possible to match applications and services with resources with finer granularity than with VM-based approaches. The improved granularity enables orchestration to be carried out more precisely, and it enables tighter integration between the processes for developing applications and processes for iterative deployment, leading to improvements in agility, automation, efficiency and cost optimization for infrastructure.
Deploying applications in containers and serverless platforms will involve some operational tradeoffs compared to VMs. The selection of a particular virtualization approach must balance priorities such as compatibility, flexibility, and efficiency against constraints such as application design, deployment infrastructure, ISV support, available skills, and data persistence requirements. This document (Gartner subscription required) helps technical professionals select the correct virtualized compute function for an application based on its architectural and lifecycle characteristics, the operating requirements of each virtualization approach, and other factors that depend on short- and long-term goals of the organization.
With cloud computing, the process for deploying and managing IT infrastructure fundamentally shifts from a method based on server-centric silos to one in which the application itself becomes the primary focus of operations. As part of this transformation, it becomes necessary to adopt cloud-native operational attributes such as modularity, programmability, elasticity and resiliency in as many aspects of deploying and managing applications as possible. These attributes are all integral to progressively purer forms of cloud-native infrastructure, such as Container as a Service (CaaS) platforms, serverless container implementations, and function Platform as a Service (fPaaS) offerings. VMs, containers, and serverless platforms can all be used as building blocks for cloud-native infrastructure. However, users have to be careful to match each virtualization method’s operational characteristics with the specific goals for a particular application.