Heroku vs. a private server vs. Kubernetes

  1. Use Heroku (or something similar) whenever you can. It’s easy and painless. But sometimes you need disk storage, or your own database server, or a few apps which cooperate. This is hard to do with Heroku.
  2. You can always run your own private server. We all know the tradeoffs here. It’s easy (but only if you know Unix by heart!), and you can set it up however you like. But servers often turn into a mess of badly-documented customizations, they need to be updated all the time, they’re hard to scale, etc.
  3. Kubernetes is basically like a heavily customizable Heroku, with all the good and bad that “heavily customizable” implies. Kubernetes assumes that you have a cluster of servers, but like Heroku’s servers, you basically want a pool of machines that get managed for you. Unlike Heroku, Kubernetes can manage disks, run databases, etc.

What’s really going on here

AWS is great! But it locks you into Amazon. Of course, Google, Microsoft, Digital Ocean, etc., all see that this is a problem. So do a lot of Amazon customers. And they all realize that we can’t do everythingon Heroku.

So Kubernetes is basically there to paper over 80% of the differences between the different cloud setups. It acts an interface to AWS, or Google Cloud, or to Digital Ocean. It abstracts away servers like Heroku does. It runs Docker containers. It can manage disks, hook up load balancers, manage rolling deploys, all that stuff.

To me Kubernetes solves a different problem than Heroku. Where they both are about application hosting, herok seems focused on speed and ease of deployment for a developer. What we call a “Platform as a Service”. They provide a databases and a runtime, you give them source code and configuration, and you’re off to the races.

Source: I want to learn about Kubernetes