In the “Lord of the Rings” trilogy, there was one ring to rule them all. Fortunately, when it comes to the container platform ecosystem, there’s far less of a monarchy.
Not all container platforms are created equal, but that’s perfectly OK. Think about any other technology sector out there – there are always multiple solutions in every space. The same goes for container technology. When you create something that is super scalable, the drawback is that it’s not going to be a one-size fits all approach. However, one person’s drawback is another person’s advantage.
Deciphering the plethora of choices
An average consumer probably wouldn’t use a tractor-trailer to cart the kids to school every day and pick up milk and bread on the way home. Likewise, you probably won’t see that compact sedan being used to haul cargo long distances. In each of these scenarios, someone has made the decision to pick a vehicle that best fits their precise needs. The same logic applies to container platforms.
The key thing you need to decide is whether you want to build something from scratch, to make it as truly customizable as possible – or whether you’d prefer to use an existing solution and custom-fit it to your needs. Neither is the better choice – it’s a matter of different choices.
This plethora of choices can become overwhelming if you don’t know the right criteria to drill down into. Fortunately, there are a few basic questions that will help you make the best choice for your needs.
Do you want to do it yourself or use something that already exists?
From a developer standpoint, it’s essential to consider whether you want to create a solution on your own, to make it as customized as possible – or whether an off-the-shelf solution that can be slightly tweaked is better for your needs. Neither is the best choice for everyone – it varies greatly.
For instance, if your stack consist of several web services and common databases – you don’t necessarily want a system that will require lots of integration and tuning work. In this case, an easy to use solution might be the best option, as opposed to something that requires more hands-on management.
The truth is it’s extremely difficult and time consuming to create a container platform of any kind. At first, it might seem you’ll find all the bits and pieces from various open source projects, but making this complex stack of technologies work nicely together while making it maintainable as a platform is very hard and takes lot of time.
What are you going to do with that container platform?
This probably seems like an obvious question, but as the developer, you must ask yourself – what do I want to do with this platform? Many people find themselves unsure about what can actually be achieved with a container platform, which makes this an integral criterion to consider.
Is it primarily for running your Big Data databases? Is it for running your web services? What is the scale you need today? It’s important to understand that there are platforms for different needs: the platform geared toward Big Data is not necessarily good choice to run your web services. The platform designed to serve Google scale deployment might add unnecessary complexity and difficulty if your scale is not at Google scale.
Most container platforms operate similarly, but they offer different features and functionality addressing different kinds of developer needs. Pinpointing the use case for which you need a container platform makes navigating the options much simpler.
When it comes to containers, size matters
If you’re working at a company running some of the biggest workloads in the world, the needs will be different than that of a smaller company.
According to recent study, an estimated 66 percent of setups require less than 50 nodes. At the same time, many of the most popular container platforms out there are designed for setups with hundreds, even thousands of nodes. Using one of these for a smaller scale can be overkill – choosing to scale will ultimately make your life much easier in the long run. A mismatch between size and business needs makes training and installation far more consuming. Likewise, spending less time on needlessly consuming training and installation gives developers more energy and time to actually build on their existing skills without getting bogged down in the muck.
The other stuff
Your container platform doesn’t exist in a vacuum. You need to consider what operating system you’re using, what type of cloud infrastructure you are using and what tools you will need to be able to integrate with. From there, you can do your research and determine what’s the best fit.
Luckily, since containers are ultra-portable across any underlying execution environment, you don’t need to stick with a platform that does not suit your needs. You can always switch to some other platform since the most difficult part is already done: your software is packaged and deployed as containers!
The plenitude of choices doesn’t have to be so overwhelming if you know the core things to consider. Once you’ve determined these factors, you’re well on your way to finding a container platform that meets your unique needs.
Kontena is a new open source Docker platform including orchestration, service discovery, overlay networking and all the tools required to run your containerized workloads. Kontena is built to maximize developer happiness. It works on any cloud, it's easy to setup and super simple to use. Give it a try! If you like it, please star it on Github and follow us on Twitter. We hope to see you again!
Image Credits: Huge monster truck at Lancelin by Aaron Schubert