Why you should postpone your Kubernetes journey

Jovica Zorić Chief Technology Officer

It looks like containers are here to stay. They are everywhere, from personal laptops to public cloud and private data centers. And these days, when talking about containers, it’s difficult or almost impossible, not to mention Kubernetes. Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications. Even though I like Kubernetes, I think we should not use it as a magical solution for every problem and every new project/product. As a reminder, your goal is to build a product that solves the problem for your users. To help you on this journey, you need the most simple, least time-consuming infrastructure.

Here are a couple of reasons why you should postpone your Kubernetes journey:

  • You have a simple and straightforward application that does not need expensive resources or high-level services;
  • You are not deeply committed to microservices;
  • You have a small user base, low load, and relatively simple architecture;
  • You don’t think about vendor lock-in. Kubernetes is kind of vendor lock-in itself but more on this next time;
  • You understand that scaling is an issue for tomorrow;
  • You understand that Kubernetes has a steep learning curve, and you don’t want to use Kubernetes just because everyone else does;
  • You are a small team, and investing your time, effort, and money in Kubernetes could be overkill.

If not Kubernetes, then what? Let’s look at three major cloud providers and a few options to start with:


App Runner

AWS App Runner is a fully managed service that makes it easy for developers to quickly deploy containerized web applications and APIs at scale and with no prior infrastructure experience required.

Notes and Links:

ECS with EC2

Amazon ECS is a fully managed container orchestration service that makes it easy for you to deploy, manage, and scale containerized applications.

Notes and Links:


AWS Fargate is a serverless and pay-as-you-go compute engine that lets you focus on building applications without managing servers.

Notes and Links:


Lambda is a computing service that lets you run code without provisioning or managing servers. You can also package and deploy Lambda functions as container images.

Notes and Links:


Azure Container Instances

Develop apps fast without managing virtual machines or having to learn new tools—it is just your application in a container running in the cloud.

Notes and Links:

  • Does not provide autoscaling, load balancing, and certificates 
  • Positions itself between Azure Functions (FaaS) & Azure Kubernetes Service (Cluster PaaS)
  • 4 CPU and 16GB RAM is max for a container group
  • Pay for the CPU and memory usage while it runs

Azure Container Apps

Azure Container Apps enables you to run microservices and containerized applications on a serverless platform.

Notes and Links:

  • Powered by Kubernetes but no direct access to Kubernetes APIs
  • Supports service discovery, traffic splitting, long-running processes and can run background tasks
  • Optimized for running general-purpose containers, especially for applications that span many microservices deployed in containers
  • Billed based on resource allocation measured in vCPU seconds (vCPU-s) and gibibyte seconds (GiB-s) and the total number of requests processed each month
  • Pricing has two modes: Active and Idle. Check out: https://azure.microsoft.com/en-gb/pricing/details/container-apps/?ocid=AID3042118


App Service / Web App for Containers

Run containerized web apps on Windows and Linux

Notes and Links:


Cloud Run

Run containerized applications in GCP without the overhead of managing the underlying infrastructure.

Notes and Links:

Container-Optimized OS VM

Container-Optimized OS from Google is an operating system image for your Compute Engine VMs that is optimized for running Docker containers.

Notes and links:

Let me know if I missed something.
Feel free to leave a comment below the blog post.