Will containers take over ?

and if so why haven't they done so yet ?

Unlike many people think, containers are not new, they have been around for more than a decade, they however just became popular for a larger part of our ecosystem. Some people think containers will eventually take over.

Imvho It is all about application workloads, when 8 years ago I wrote about a decade of open source virtualization, we looked at containers as the solution for running a large number of isolated instances of something on a machine. And with large we meant hundreds or more instances of apache, this was one of the example use cases for an ISP that wanted to give a secure but isolated platform to his users. One container per user.

The majority of enterprise usecases however were full VM's Partly because we were still consolidating existing services to VM's and weren't planning on changing the deployment patterns yet. But mainly because most organisations didn't have the need to run 100 similar or identical instances of an application or a service, they were going from 4 bare metal servers to 40 something VM's but they had not yet come to the need to run 100's of them. The software architecture had just moved from FatClient applications that talked directly to bloated relational databases containing business logic, to web enabled multi-tier
applications. In those days when you suggested to run 1 Tomcat instance per VM because VM's were cheap and it would make management easier, (Oh oops I shut down the wrong tomcat instance) , people gave you very weird looks

Slowly software architectures are changing , today the new breed of applications is small, single function, dedicated, and it interacts frequently with it's peers, together combined they provide similar functionality as a big fat application 10 years ago, But when you look at the market that new breed is a minority. So a modern application might consist of 30-50 really small ones, all with different deployment speeds. And unlike 10 years ago where we needed to fight hard to be able to build both dev, acceptance and production platforms, people now consider that practice normal. So today we do get environments that quickly go to 100+ instances , but requiring similar CPU power as before, so the use case for containers like we proposed it in the early days is now slowly becoming a more common use case.

So yes containers might take over ... but before that happens .. a lot of software architectures will need to change, a lot of elephants will need to be sliced, and that is usually what blocks cloud, container, agile and devops adoption.

Comments

Philip Van Hoof's picture

#1 Philip Van Hoof : Embedded and mobile

I see containers being used in embedded and mobile to jail and package untrustworthy softwares (the hype of today is to call them apps). I also see them being used for migrating an old dinosaur open embedded put together by idiots to a new OS: run the old software in a container with the crappy OS made by the guys of five years ago, run the new software in another container using a modern environment. If daemons of the old need to communicate with the new, you can even share unix domain sockets between the containers (and soon, if not already, D-Bus).

It'll also be useful to package experimental applications that depend on unstable versions of system libraries: not prepared to upgrade glib, libc, qt and god knows what? But you do want to run the latest stuff? We'll package all you need in a lightweight container with all the dependencies - but stripped to the minimums. Run the container to start your application. Kinda like Portable applications. But then better and for Linux.

And applications in containers will protect you against randsomware: the container will get minimal access. A music player's container gets access to /home/user/Music, but that's it. So a malware running in the container can encrypt your music. But not your other documents.

Finally will applications in containers allow the user to protect his privacy by configuring the container's permissions. Want to run Google software without sharing your GPS location? Deny the container that runs the software access to the GPS hardware. But allow other containers.


Danny Howard's picture

#2 Danny Howard : tl;dr: No

Containers are useful for certain cases and an encumbrance in others. Right now they are the hot shiny new thing and so a lot of folks will use them ... even when they aren't the best option. Every few years some container-type fad erupts, flares, presents its difficulties and limitations, and recedes. In the past we called them "chroot" and "jails" or even "big-ass tarballs" but really containers aren't anything new and anyone who has been around awhile understands that this is a useful tool in some cases, and the faddish uses will fade out and move on to the next shiny new thing.


Kris Buytaert's picture

#3 Kris Buytaert : Danny, that's kinda the

Danny,

that's kinda the short summary of what I wrote indeed :)