30

I recently had to realize a project on Google AppEngine. At the beginning I was sceptic. But there a some really nice approaches on Appengine:

  • No server setup. Everything works out of the box. Gzip, libraries, etc.
  • One-Click-Deployment. Fire up GAE Launcher on the Mac and click DEPLOY. Done.
  • Low costs
  • Easy in-production-logging

But there are some things I don't like if I'm thinking about professional projects

  • The blobstore. It's just... weird. And non-backupable
  • All the 1 MB restrictions
  • The feeling that your code will only run on AppEngine. (BigTable)

Do you know any similar alternatives to AppEngine? And I don't mean services like EC2.

Asclepius
  • 57,944
  • 17
  • 167
  • 143
Elias
  • 3,300
  • 4
  • 34
  • 38
  • what exactly bothers you about the blobstore? it is "backupable", as Nick mentions in his answer. – Peter Recore Aug 11 '10 at 15:31
  • I Would like to suggest is to use depending upon your scope use parse.com or mongolab for backend rather than costly google datastore then afterwards you can scale up as required seamlessly with mongolab(https://mongolab.com/) – Rizwan Patel Aug 13 '15 at 09:42
  • Duplicate of https://stackoverflow.com/questions/153721/what-alternatives-are-there-to-google-app-engine – Asclepius Nov 13 '16 at 21:32
  • Possible duplicate of [What alternatives are there to Google App Engine?](https://stackoverflow.com/questions/153721/what-alternatives-are-there-to-google-app-engine) – Louis Aug 30 '19 at 15:08

5 Answers5

32

You can have a look at AppScale

Its an open-source implementation of AppEngine which you can deploy on your own machines, with a host of databases to choose from.

kristof
  • 52,923
  • 24
  • 87
  • 110
Ravi
  • 501
  • 2
  • 4
  • 7
  • 2
    this makes much more sense then the accepted answer. If my app is written in python using app engine backend then the fact that Heroku supports Ruby means nothing to me. – citronic Dec 13 '12 at 00:06
16

I think Heroku is a great alternative.

It can run most of GAE existing apps, since it supports django, but also:

  • It supports Ruby (w or w/o Rails), Java (w or w/o Spring), Node.js, Clojure,...
  • It has a strong CLI support (git push for publishing, creation of apps, scaling, log, ps,...)
  • It supports MySql and PostgreSQL (and, so on, MongoDB, Amazon RDS, etc.)
  • It has a free tier for 750 hours a month (~1 machine always up) for every app.
  • It has a collection of addons for providing cloud services as a resources for the apps
  • It has an add-on program to develop your own add-ons.

Really, it is a good alternative.

If you want your application is not binded to GAE, the best approach is to use well-known langs and well-known persistence providers. Ruby+PostgreSQL, for instance, could be a combination very portable. Django as well, but w/o BigTable...

robermorales
  • 3,293
  • 2
  • 27
  • 36
14

AppScale and TyphoonAE are both third-party implementations of the App Engine platform. TyphoonAE is targeted at small-to-medium scale, while AppScale is targeted at the large-scale end of things.

As far as backing up the blobstore goes, this is quite doable: just use the built in handler to serve blobs, and, in conjunction with remote_api, you can download your blobs just fine.

Nick Johnson
  • 100,655
  • 16
  • 128
  • 198
  • They do not work in RED HAT ENTERPRISE LINUX 6.4 and Amazon EC2. Do you have any solution? –  Aug 18 '13 at 20:04
  • 5
    @YumYumYum "They do not work" is exceptionally unhelpful. Why don't they work? – Nick Johnson Aug 20 '13 at 11:50
  • In CentOS 6 i am installing it and it says: `Getting source code..../build_script.sh: line 23: apt-get: command not found` –  Feb 06 '14 at 07:41
6

I almost hate to mention Microsoft in a Google-related question, but I'm completely vendor-agnostic. So, I'll offer Microsoft's Azure as a platform that offers many similarities to AppEngine but enough differences that it might fit as a good answer to your question.

Azure and AppEngine are similar in that they are both designed to allow you to build easily scalable applications. Azure gives you Microsoft's standard web toolkit options: C#, VB.NET, ASP.NET ASP.NET MVC, but also offers PHP. It has a NoSQL, document database like AppEngine but also gives you the option of choosing a more standard instance of SQL Server. Although I haven't used it myself, it looks like AppEngine for Business now offers SQL, too.

Azure gives you a ready means of having long-running background processes. AppEngine does not to the best of my knowledge.

From my perspective, AppEngine has the huge advantage of charging you for usage only when a request is actually being processed. An Azure instance causes you to get billed even for time that it is completely idle. That's entirely typical, but the fact that Google doesn't so it that way makes me choose AppEngine every time. My budget is too tight to allow me to spend money for idle CPU hours.

Adam Crossland
  • 14,198
  • 3
  • 44
  • 54
  • BTW, what about Docker containers? Can they be fired up when a request is actually being processed, or is that too slow to be feasible? – Asclepius Nov 13 '16 at 21:47
  • 1
    I should note that a great deal of information in my post is now outdated, at least in terms of what AppEngine's capabilities are. I really wish that I knew more about Docker, but to the best of my understanding, spinning up a new container instance doesn't happen so quickly that it would provide acceptable response times for a web request. On the other hand, it might be workable from the perspective of scaling to meet demand. An intelligent load balancer could be built to create new instances to meet increasing demand, right? – Adam Crossland Nov 14 '16 at 14:36
1

There's a port of django to non-relational databases that works with app engine or mongodb.

google for django non-rel

documentation is a bit sparse though

Espen
  • 19
  • 1