The big trend driving containerization is a fundamental shift in the way apps are built. Today’s apps need to ingest big data. They need to connect to millions of devices. They need to scale out, elastically, in real time to handle surges in usage. They need to be highly automated, with no human operators. And they need to be fault tolerant and self-healing, so that zero downtime is the new normal. In this world, the old way of doing things simply—building ever bigger monolithic apps that run on ever bigger machines—simply does not work.
Building apps today means building them like Google does—or like Twitter, Facebook, and Airbnb for that matter. As the early pioneers of the “always on, always connected” world, these companies had to invent new ways to build apps. An “app” at one of these companies is not a single “binary” running on a giant server; it’s comprised of dozens (or hundreds or even thousands) of composable services running on fleets of servers, distributed across entire datacenters and clouds.
Building an app out of many composable services, distributed across just as many machines in a cloud or datacenter—stitched together using technologies like Mesos—is how apps are being built today. If you are not yet building apps like this, you will be. This is the new way to build apps. This is the new way to deploy apps. And this is what is truly driving the container revolution.
[I was wondering if there would be contention between these products. This is a good sign. And I agree that while one will probably bleed all over this stack for a while, it would indeed seem to be the way of the future. If you disagree, I’d love to here why.]