System administrator responsibilities have changed a lot over the years as new technologies have been introduced:...
virtualization, the cloud, software-defined networking -- the list goes on and on. Each one of these technologies has disrupted the data center in a different way. The introduction of containers into the data center brings a new challenge: managing containers.
What is a container?
To get started, we have to understand what a container is and isn't. By definition, a container isn't a VM. It's a self-contained environment for executing code or part of an application. The container holds the runtime environment, as well as all of the files, dependencies, libraries and configurations it needs to run without outside software dependency -- mostly; more on that later.
The goal is to truly remove the container from the base operating system and make it platform-independent. This makes it unique from a VM, which has a full or reduced operating system, such as Server Core, and can do multiple things, rather than just one. While this sounds similar to other technologies, such as Java or .NET framework, those are operating environments capable of running almost anything coded to use them. In the end, containers are typically coded to execute a single application component or process, rather than the app in its entirety.
Executing the code
In general, developers handle the containers, and the system administrator responsibilities are limited to providing the infrastructure. Well, like anything in IT, there's a piece that tends to get overlooked. Think of the container as a car, with a body shape, interior and accessories. The road is the infrastructure you put it on, such as Microsoft Hyper-V or VMware ESXi. Then, all that leaves is the engine. In this case, the car engine is the container engine; it makes it move. Containers themselves have no way of executing code; they contain everything needed to run the code, but the engine is what does the actual execution. Here is where it gets challenging for the system administrator: The engine doesn't have to sit on top of a hypervisor, similar to a VM. Rather, it can be part of the layer that provides the virtualization.
The container engine doesn't provide hardware virtualization for the containers, but it exists at the same level in the software stack that provides hardware virtualization and integrates with it at that level. This isn't the same for all container software, but more and more vendors are introducing products, such as VMware vSphere Integrated Containers and Microsoft Optimized Containers, that support the integration at this level and give the system administrator use of the existing infrastructure tools that can help in managing containers. A key thing to remember is that the container engine itself is used to manage containers, create container clusters and so on. While that management is different from infrastructure management, they can be leveraged off of each other.
Unfortunately, containers are not going to make life easier for the system administrator, mostly because the hypervisor and its management aren't going to be replaced by containers. The hypervisor simply has too much flexibility in regard to the data center to be replaced by containers. Containers are the ideal platform for the developer, as they give developers the ability to take applications to the web-scale arena. In fact, the container aspect brings another layer of management to the system administrator: the engine itself. While managing containers, creating clusters, container security and orchestration should be shared duties, the simple fact is administration falls under system administrator responsibilities, while container coding is in the hands of the developers. Plus, there is one more little piece to this puzzle for the system administrator. While a few products, such DockerUI, have graphical user interface (GUI) ability, managing containers and engines is done mostly via the command line.
As a system administrator, do you need to care about containers? Yes. The technology is coming fast, as more applications need the web-scale ability, and traditional application deployment models simply won't work anymore. To sum it up, containers bring more challenges in management, and it's the system administrator responsibilities that are changing. Command line, automation and orchestration are becoming the norm in an environment where the GUI is less important than the delivery of the application. Containers are a clear example of that. In a web-scale world, the system administrator will need to embrace containers, as they will become part of ever-changing data center architecture.
Learn more about the virtualization system administrator job
Secure a new IT job with this advice