Showing posts with label Docker. Show all posts
Showing posts with label Docker. Show all posts

Are Containers the future?




What are containers? How do containers work? Can I use containers? These are some common questions being asked about this application "virtualisation" technology. In this post we will be trying to simplify the basics of containers and answer some of these questions.

What are containers?

Containers can be compared to virtual machines but are very different. Containers contain groups of applications that can run directly on an underlying host operating system unlike virtual machines that require a hypervisor layer. This is greatly beneficial as you are able to achieve higher density, better elasticity, increased portability and advanced scalability. These advantages are achieved with less overhead management and administration.


The older way of achieving this same function was to have virtual machines running over a hypervisor which was running within a host operating system. Each of these layers require management and support and even the virtual machine had to run its own operating system. All of these operating systems require patching and other administration to operate. As you can see containers just contain the actual application and no other overheads are required.

How do containers work?

Containers are implemented using specific technology like Docker which was originally run within the Linux operating system. Nowadays containers can also be run on Windows. Docker containers are really the standard way of doing things now. If you require multiple containers, clusters or are looking to run containers in the cloud you need to look at Kubernetes which is the most popular container orchestration platform currently.

Kubernetes is an open-source container-orchestration system for automating deployment, scaling and management of containerized applications. It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation.

Can I use containers?

This question really depends on your specific workload and application. Most applications should be able to be ported into containers and then launched either onsite or in the cloud. One great thing about containers is that they can be run both onsite and in the cloud and are extremely portable between different operating systems and cloud platforms. With this flexibility its much easier to be able to move your containers anywhere you would like to run them. I would suggest further consultation with your developers and cloud architects to determine your use case and the best applicable solution for your use case.



Containers in the cloud

The easiest way to test and use containers in production is to launch them through your cloud platform. Each public cloud provider offers a widespread range of managed container solutions. Google Cloud Platform offers the original GKE Google Kubernetes Engine. This is currently the most advanced offering of managed Kubernetes in the cloud with Azure coming in second with the recently generally available AKS. Azure Kubernetes Service. Please read the below links in order to learn more about these platforms and containers.




Are containers the future?

Yes containers are the future of application technology in the cloud as well as on-premise. Containers are becoming more and more popular and learning and understanding some background in them whether you are a developer or operations engineer is really required. There are so many courses and further information out there and I suggest starting by looking at your cloud providers documentation to set you in the right direction.

Some great further information can be read here: