| I am not sure what you mean by "this route". App Engine supplies multiple runtimes (Java, Python, Go). Heroku somewhat analogously supplies buildpacks for using different languages, but also allows custom buildpacks. Understand that Heroku and App Engine are fundamentally different kinds of things. The commonality is that they are both selling some kind of service to run code on, and they are both (in different ways) trying to make it easier than just administering everything at the low level of a VPS or dedicated server, while also giving you similar levels of isolation and capacity as you get outside the shared hosting world. But other than that, they are aimed at quite different goals and the architectures (necessarily) vary accordingly. App Engine imposes heavy constraints on your app architecture with a primary goal of making scaling easier from the outset. You are very much doing everything inside a framework provided by Google. They are trying to make sure your handlers do not run too long or do certain classes of insecure things. And the infrastructure of production is very much opaque to you. You can't just run any old combination of services, they provide you a set of very good and very transparent but proprietary APIs for things like memcache and datastore. You just use them and get billed by usage. While they offer multiple runtimes and some multi-runtime tricks are possible, they really aren't trying to cover the 'polyglot' use case or support every language under the sun. It has good technical merits but your app is almost completely married to Google. Running a low-traffic app is free but scaling can be a little costly compared to approaches where you are doing more yourself. Heroku is not a platform in the same sense as App Engine. That could be good or bad depending on what you need. It provides high-level interfaces to reduce most users' deploy and management overhead. But like a VPS, it isn't trying to limit your flexibility or determine your architecture. It explicitly gives you control over your mix of services and your own languages and use different things together. However, in the course of simplifying it also does constrain and hide details. It just isn't a fundamentally different environment from normal Linux VPS, as App Engine is - it's only one which you manage at a higher level using Heroku's tools. You are left with less lockin than App Engine, but you are still dependent on Heroku insofar as it is supplying all your deploy/management scripting and stuff like that. App Engine says something like "do it our way with our tools and you will be able to scale easily on high grade infrastructure" and Heroku says something more like "do what you could do on a VPS in a slightly different way, with slightly less choice of tools, and we can make it much easier. We can help you cross the scaling bridge later." So they are designed to meet different kinds of needs and have attracted somewhat different kinds of audiences. |