Blog post series ‘Containerisation with Kubernetes and Docker’
Container technology is causing a structural change in the entire cloud-computing world. A change we embrace at Kumina. The past year we’ve been busy building new tailor-made set-ups based on container technology for our customers. While doing so, we’ve learned a lot: knowledge we´ll share in our blog-post series about containerisation, Kubernetes and Docker. In this first blog post, we’ll provide you with a simple introduction. We’ll talk about the concept ‘containerisation’ and about how containers relate to virtual machines (VM).
Frequently asked questions about containers:
What are containers?
A container consists of everything an application needs to run: the application itself and its dependencies (e.g. libraries, utilities, configuration files), all bundled into one package.
Containers encapsulate only the minimal resources that an application requires to run and function as intended, enabling you to reliably run software when moved from one computing environment to another, which is the main idea behind the use of containers.
What is the purpose of container technology?
Traditionally, applications or workloads generally had to be rebuilt before they could be migrated to another environment. The solution to this is container technology. Since containers are isolated from neighbouring containers and include everything they need to run the application, you can easily move them to another environment without compatibility problems. So, you could move them from a desktop to a virtual machine, from a testing to a production environment, from one operating system version to another, or from bare metal to a virtual machine, all without any issues. This provides organisations with consistency, a great amount of flexibility and enables continuous deployment.
Containers vs virtual machines: What is the difference?
Virtual machines and containers both enable you to make more effective use of your bare metal resources with the use of virtualisation. The difference between them is that they virtualise at different levels of the stack.
As you can see in the illustration, virtual machines virtualise the hardware. Each VM has its own complete server stack, from virtualised CPU to virtualized storage, network adapters, BIOS, operating system and of course the application itself and the various libraries required to run the application. Containers are quite different, in that they eliminate a lot of the ‘baggage’. As you can see, containers are installed on top of the host OS, meaning they share the same OS and network connection. A container only includes an application and its dependencies, enabling a much more efficient use of the physical hardware.
What are container engineering and orchestration tools?
Solutions that are based on container technologies typically consist of multiple components and make use of at least one containerisation tool. Containerisation tools can be divided into two categories: engineering tools and orchestration tools. An example of an engineering tool is the well-known open-source platform Docker, which helps you build, run and ship containers. Orchestration tools are used for automating deployment, scaling and managing your containerised applications.
What are the most used containerisation tools?
There are a great number of containerisation tools and services available, both open source and commercial. The open-source project Docker is the leading container engineer. When it comes to container orchestration, Docker Swarm, Kubernetes and Mesos are the most widely used tools. Other well-known tools are Rocket (rkt), Kurma, Packer, Jetpack, Mesos, Linux Containers, ClousSlang, Nomad, Marathon, Fleet, OpenVZ, Solaris Containers, Containership, Rancher and Tectonic.
So virtual machines are outdated?
Are containers replacing virtual machines? That’s a question that’s not that easy to answer. Some say they will, others say they won’t. But one thing is for sure though: the use of containers is growing and will continue to grow. With that, container security is maturing. It’s worth mentioning that containers and virtual machines are not mutually exclusive. They each have their distinct qualities and benefits and can be used together for combinatorial benefits.
The use of containers is growing and research shows that it will continue to grow. That’s no surprise: containers offer lots of benefits compared to virtual machines, especially for developers. Next week, we’ll discuss the benefits of the container technology.
Kumina helps organisations to face their containerisation journey with confidence. We build and manage Docker and Kubernetes based platforms on the infrastructure and cloud provider of your choice. With our wide range of professional services and unlimited support, we make sure you get the most out of Kubernetes and container technology. Planning your move towards a container platform? Let’s talk about how to get up and running.