Servers are big, hot, expensive physical boxes that need specialized data centers to live in, clever engineers to look after them and update them, and a host of other experts to protect them from hackers.
Running your businesses’ applications on a server this like is doable, it’s just relatively expensive, and complicated. If you need any evidence of this, have a look at some of the companies who (did) run their own on-premise physical server centers. See what happened when things went wrong.
VMs are a way of ‘virtualizing’ a server. Essentially a way of running a server, or several servers inside of your original big hot physical server. A bit of software called a ‘hypervisor’ is used to allow several VMs to run on one box. It allows the multiple VMs to share the one set of physical resources like CPU, hard disk, memory.
Each virtual machine is started by using an image. This is essentially a snapshot or picture of the original server that you’re trying to make into a VM. The snapshot would include the operating system, data, settings, etc.
Images are often big. Hundreds of MegaBytes, mainly because the entire OS and current memory contents is included inside.
There a few differences between VMs and Containers, but the key difference is this :
In a container, the ‘image’ does not contain the operating system (OS). Instead the container shares the OS of it’s parent physical server.
Although the containers share the OS, one container is not able to influence or affect the operation of other containers on the same server.
Because there is no massive operating system in the image for the container, the image is much much smaller.
Containers, therefore are able to be ‘spun up’ (created) much faster. Often as fast as a few seconds.
So with containers, we have a situation where we have a ‘virtual’ server that can be created, used, and destroyed at almost no cost, in the blink of an eye.
If you want to see an example application of this, please check out our ‘What is Lambda‘ tech briefing.
Alternatively containers can last much longer. If they malfunction, or maybe they are suspected of being compromised by hackers, they can be destroyed and re-created.
This process of container monitoring and manipulation is handled by specialized software.
Different ‘flavors’ of containers can be designed, specialized for different tasks.
In the last few years this concept has revolutionized computing and IT – making many systems more secure, more resilient, cheaper, and more flexible.
What Containers Mean For Your Business
The days of having a physical server humming away in your office are gone, or at least should be!
Equally, the days of running your own server on the cloud with all of the technical problems and issues that entails are coming to an end.
If your business is creating new apps, web based or otherwise, we would recommend that you use a developer who is familiar with containers.
Through their use, you app will be cheaper to develop, faster to deploy, easier to scale, more resilient, more portable, and harder for hackers to attack.