I'm interested to know why they didn't move to Google AppEngine instead, which offers a better experience and more advanced features overall. Especially considering that AppEngine is a direct competitor to Heroku than Kubernetes engine.
Presumably because of all the reasons they chose Kubernetes?
FTA:
* Kubernetes has a huge amount of traction in the DevOps landscape, with managed implementations from all the major cloud vendors and virtually endless training materials and complementary technologies.
* Kubernetes is open source, which was a major plus: it meant that we could avoid vendor lock-in and implement local development environments that mimic production.
* Kubernetes has a large feature set that fit well with our requirements, including our more exotic necessities like autoscaling based on custom metrics.
That's also true of "managed" Kubernetes platforms like Google Kubernetes Engine and Amazon EKS, the difference being no (or at least less) vendor lock-in.
>I'm interested to know why they didn't move to Google AppEngine instead, which offers a better experience and more advanced features overall. Especially considering that AppEngine is a direct competitor to Heroku than Kubernetes engine.
AppEngine has an enormous number of limitations that you only hit once you scale up and gets very expensive very quickly.
At our peak, we were processing $500,000 of online orders per day and spending about $5k/month on our entire GPC bill. It was a rounding error compared with our income.
The biggest expenditure was actually on the Postgres database servers that we needed for our analytics, not on AppEngine.
I have used AppEngine in production for about 50+ clients and I am genuinely really curious to know what these limitations are. Maybe it is dependent on the programming language/framework?
I run Phoenix/Elixir with Vue.JS + PostgreSQL as standard for most of my clients, it's really a breeze to work with.
In addition, these are the advantages of working with AppEngine:
The AppEngine Standard Java 8 API is severely limited because it is coupled to the Servlet API, which severely screwed up on the design of its async API. As a Scala developer, this limitation pretty much sinks the platform for me, since the flexible environment is really expensive and has a worse value proposition vs managed Kubernetes.
Right, but at that point, you almost might as well move up to "full" Kubernetes if you know it. I'm not saying that there's no use case for App Engine flex, just that it is kind an uncomfortable middle-ground between standard and k8s.
Flex is not at all very expensive. Per instance cost is about 1/2 the cost compared to heroku, putting it on par with the likes of ECS in terms of cost but ships with usable monitoring, logging, and metrics out of the box with extremely generous free tiers that stay free way longer and that are still marginally cheaper than what you’d pay in AWS land if you exceed them.