In the children’s game, “King of the Hill,” the goal is to get to the top of the designated high ground and stay there by preventing other players from knocking him or her off. It’s a classic example of people’s need to have one clearly defined ruler or leader – and the need to fight for that spot. Fortunately, that’s not the case in the container platform ecosystem.
The reason that there is more than one container platform in the world is that they serve different needs. 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.
Knowing what questions to ask
You probably won’t see someone using a VW Beetle to haul cargo long distances. You also most likely won’t see someone driving the kids to school in a tractor-trailer. In each of these scenarios, someone makes the decision to pick a vehicle that best fits their precise needs. The same logic applies to container platforms.
However, if you don’t know the right criteria to use for decision making, the current abundance of container platform choices can become overwhelming. Fortunately, there are a few basic questions that will help you make the best choice for your needs.
To develop or not develop?
Consider the developers first. Do you want to create a solution on your own, to make it as customized as possible – or do you want an off-the-shelf solution that can be slightly tweaked? Neither is the best choice for everyone – it varies greatly, depending on your needs at the time.
As an example: you don’t necessarily want a system that will require lots of integration and tuning work if your stack consists of several web services and common databases. In this case, an easy-to-use solution might be the best option, as opposed to something that requires more hands-on management.
In reality, creating a container platform of any kind is extremely difficult and time- consuming. 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 a lot of time.
What is your use case?
What are your plans for that container platform? This may seem 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.
Will you use the platform to run your web services? Is it primarily for running your big data databases? 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 a 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.
It’s not that container platforms are wildly different in their operation; what’s different about them is how their features and functionality address different kinds of developer needs. Pinpointing the use case for which you need a container platform makes navigating the options much simpler.
Need determines size
Size matters when it comes to containers. 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 a recent study, 66 percent of setups require fewer 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 time-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.
Criteria for success
Of course, other factors come into play when choosing the right container platform. You need to consider what operating system you are 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 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.
King of the Hill is a game for kids; the platform allegedly at the top of the heap isn’t the single right solution for every business. And there’s no guarantee it will stay at the top for long. Yes, there are many choices, but focusing on the key factors that are important to your business will make it much easier to choose which solution best aligns with the specific needs of your organization.
Miska Kaipiainen is the CEO and founder of Kontena, the creator of the Kontena open source, developer-friendly container platform that was recognized by Black Duck as one of the Top 10 Open Source Rookies of the Year 2015. A serial entrepreneur and business developer, he has extensive experience in managing high-tech businesses in both the hardware and software sectors. Follow him on Twitter.