Kubernetes Tip: Choose EKS or Fargate or ECS Based On Business Need.
Recently, I was reading an awesome article comparing EKS, Fargate, and ECS. Here is the link to the article.
AWS EKS vs. ECS vs. Fargate | The Breakdown
Amazon provides multiple options for managing containers on their platform, including Elastic Container Service (ECS)…
At Tailwinds, we have been constantly asked this question by our customers about the choice of orchestration tool. We handle this discussion in a different way, Hence, thought to share our perspectives.
Vectors of comparison.
The article considers 3 different vectors to arrive at a conclusion, they are
To lesser extent, skill set of the person/team.
These are important aspects but would like to additionally add one more vector that's the business need of the organization. Some of the business needs may have already blended in the above vectors but calling them out explicitly would make things clear.
Plan Features Based On Business Requirements.
One of the key aspects is to ask the right business questions to arrive at the feature sets. Here are a few questions we typically ask our customers.
How many services do you have? How much do you expect to scale the next 2–4 quaters?
Does your business need multi-cloud support or expect it in future?. Discussions around, HA, Backup aspects as well.
What are your NFR requirements?. For more details on NFR, check out this blog.
What are the business constraints do you have?.
What are the security needs of the business?
Once you gather these business requirements, arrive at the features needed & map them to the features provided by these orchestration systems for deciding which one to choose.
Cost Is After Thought.
We see this time and again that the Availability and Reliability of the services are paramount and cost optimization comes only after the former is handled better. This does not mean that the organizations are completely blinded to the cost but would like to have clarity on spending patterns for planning and future optimization purpose.
In general, there are 2 aspects to the cost. They are CAPEX and OPEX costs.
CAPEX involves the cost of instances, tools, dbs etc which can be quantified to some extent while OPEX is pretty tricky and hard to quantify. Following are a few questions we ask our questions. One may or may not have the answer to all these questions but better to think about it.
How much time will you spend to production grade environment for a given orchestration system?. With Kubernetes, would take somewhere between 3–5 months if the team is new to Kubernetes.
How much time do you spend on daily Toil? & What would be MTTR for a given orchestration system?. When there is a production issue, how quickly can you isolate the problem?. Would add, how much documenation exists out in the internet.
How easy or difficult to get those skills sets in the market?. I know customers moved from ECS to Kubernetes simply because it was hard to find engineers with ECS experience than Kubernetes experience. As weird as it may sound.
Other Business Aspects To Consider.
Apart from Features and Cost vectors, other aspects you should consider are
What is your immediate and short term goals?. If you are startup and trying to prove your MVP, then going with Fargate would be better as you don’t have to worry about orchestration system but just deal with functionality.
If you organization is paranoid about every aspect of security, would refer Fargate simply because it is hard to hire smart security engineers and keep them intact. Also, i don’t believe, organization can recurit security engineers like what cloud guys can do.
How vibrant is the community?. If the community is vibrant then community would come together to quickly solve a given problem. Kubernetes is an example of this vibrant community.
We have shared a few questions that we typically ask our customers before arriving at the choice of orchestration system.
We do understand that it may be hard to get answers to all these in the early stage but most choose an orchestration system based on a few parameters such as multi-cloud, MVP, complexity, etc, and iterate over the period of time. We believe this approach is fairly okay.
Finally, to rest our case. Choose an orchestration system based on business needs not purely on technology needs.