Sashkin - Fotolia
To get started with application container technology, IT professionals must first distinguish between the various types of application virtualization.
The most common virtualization application delivery methods are server-based applications and client-based applications.
Sever-based vs. client-based applications
In a server-based configuration, such as Citrix XenApp, the application usually runs within a VM hosted on a server in the data center or on a cloud platform. The application streams to the user's device, where client software receives it and renders it. Users can interact with the application just like they can with an application installed locally on their devices.
In a client-based configuration, such as Microsoft App-V, the application runs on the client device but is isolated from the underlying OS and other applications. Client software installed on the user's device manages the applications and provides a virtual location in which they can run. Client-based virtualization also makes it possible to package applications for easy deployment across the enterprise.
Both server-based and client-based virtualization can help streamline application delivery and maintenance, while eliminating contention issues between applications installed on the same system.
Where does application container technology fit in?
Application container technology, such as Docker, takes a different approach. A container is a package that uses virtual isolation to deploy and run an application. IT can host a container on bare metal or within a VM, either locally on the client device or on a remote system, which can be an on-premises server or part of a cloud platform.
The container uses the OS kernel on the system hosting it. IT can run a container within a VM to avoid the overhead that goes with a VM, but it is not required. Containers are more portable than VMs, and IT can more easily scale them. They're also simpler to install and manage.
Application container technology is well-suited for delivering applications IT creates as sets of reusable microservices, in which the services run independently from each other. This allows developers to break up the application stack into smaller chunks, making for a more agile deployment. Application virtualization technologies tend to be more concerned with delivering traditional and legacy desktop applications -- monolithic apps complete with their own graphical user interfaces.
Containers can run monolithic applications, but many legacy apps are not a good fit for application container technology because they cannot take advantage of the scalability, portability or microservice architecture that comes with containers. In addition, VMs can be more secure than containers, which is why some IT pros host their containers within VMs.
Perhaps the best way to look at containers is not as a replacement for virtual applications, but as another way to deliver applications. The microservices model offers a number of advantages when it comes to developing and deploying applications. For legacy and traditional applications that IT must deploy across the enterprise, however, virtualization might still be the best option.