2010-08-09 20 views
29

Ich musste vor kurzem ein Projekt auf Google AppEngine realisieren. Am Anfang war ich skeptisch. Aber es gibt ein paar wirklich schöne Ansätze auf Appengine:Alternative für Google AppEngine?

  • Kein Server-Setup. Alles funktioniert out of the box. Gzip, Bibliotheken usw.
  • One-Click-Deployment. Starten Sie GAE Launcher auf dem Mac und klicken Sie auf DEPLOY. Erledigt.
  • Niedrig Kosten
  • einfach in Produktion Logging

Aber es gibt einige Dinge, Ich mag es nicht, wenn ich über professionelle Projekte zu denken bin

  • Blobstore. Es ist einfach ... komisch. Und nicht backupable
  • Alle 1 MB Einschränkungen
  • Das Gefühl, dass Ihr Code nur auf AppEngine ausgeführt wird. (BigTable)

Kennen Sie ähnliche Alternativen zu AppEngine? Und ich meine nicht Dienstleistungen wie EC2.

+0

was genau stört Sie über den Blobstore? es ist "backupable", wie Nick in seiner Antwort erwähnt. –

+0

Ich würde vorschlagen, ist zu verwenden je nach Ihrem Bereich verwenden Sie parse.com oder Mongolab für Back-End anstatt teurer Google Datastore dann können Sie nach Bedarf nahtlos mit Mongolab (https://mongolab.com/) –

+0

Duplizieren von skalieren https://stackoverflow.com/questions/153721/what-alternatives-are-there-to-google-app-engine –

Antwort

15

Ich denke Heroku ist eine gute Alternative.

Es kann die meisten von GAE bestehenden Anwendungen laufen, da es django unterstützt, aber auch:

  • Es unterstützt Rubin (w oder w/o Rails), Java (w oder w/o Frühling), Knoten Js, Clojure, ...
  • Es hat eine starke CLI-Unterstützung (git push für die Veröffentlichung, Erstellung von Anwendungen, Skalierung, sich einzuloggen, ps, ...)
  • Es unterstützt MySQL und PostgreSQL (und so weiter , MongoDB, Amazon RDS, etc.)
  • Es hat eine kostenlose Stufe für 750 Stunden pro Monat (~ 1 Maschine immer auf) für jede App.
  • Es hat eine Sammlung von Addons für die Bereitstellung von Cloud-Services als Ressourcen für die Anwendungen
  • Es hat ein Add-on-Programm, um Ihre eigenen Add-ons zu entwickeln.

Wirklich, es ist eine gute Alternative.

Wenn Sie möchten, dass Ihre Anwendung nicht an GAE gebunden ist, sollten Sie bekannte Langs und bekannte Persistenzanbieter verwenden. Ruby + PostgreSQL zum Beispiel könnte eine Kombination sehr portabel sein. Django auch, aber ohne BigTable ...

+1

Funktioniert Heroku mit WebRTC? – YumYumYum

+0

Heroku als jetzt nicht so zuverlässig wie offene Schicht.Ich würde gerne Openshift für Ihre Bedürfnisse vorschlagen –

32

Sie können AppScale

Es ist ein Open-Source-Implementierung von App Engine einen Blick haben, die Sie auf Ihrem eigenen Maschinen, mit einer Vielzahl von Datenbanken zur Auswahl bereitstellen können.

+1

das macht viel mehr Sinn als die akzeptierte Antwort. Wenn meine App in Python mit dem Backend der App-Engine geschrieben ist, dann bedeutet die Tatsache, dass Heroku Ruby unterstützt, nichts für mich. – rutherford

15

AppScale und TyphoonAE sind beide Implementierungen der App Engine-Plattform von Drittanbietern. TyphoonAE zielt auf einen kleinen bis mittleren Bereich ab, während AppScale auf das große Ende der Dinge abzielt.

So weit wie die Sicherung des Blobstores geht, ist dies durchaus machbar: Verwenden Sie einfach den integrierten Handler, um Blobs zu bedienen, und in Verbindung mit remote_api können Sie Ihre Blobs einfach herunterladen.

+0

Sie funktionieren nicht in RED HAT ENTERPRISE LINUX 6.4 und Amazon EC2. Hast du irgendeine Lösung? – YumYumYum

+5

@YumYumYum "Sie funktionieren nicht" ist außergewöhnlich wenig hilfreich. Warum arbeiten sie nicht? –

+0

In CentOS 6 ich installiere es und es sagt: 'Holen Quellcode ..../build_script.sh: Zeile 23: apt-get: Befehl nicht gefunden ' – YumYumYum

6

Ich hasse es fast, Microsoft in einer Google-bezogenen Frage zu erwähnen, aber ich bin völlig herstellerunabhängig. Also werde ich Microsofts Azure als eine Plattform anbieten, die viele Ähnlichkeiten mit AppEngine bietet, aber genug Unterschiede, dass es als eine gute Antwort auf Ihre Frage passt.

Azure und AppEngine ähneln sich, da sie beide so konzipiert sind, dass Sie problemlos skalierbare Anwendungen erstellen können. Azure bietet Ihnen die standardmäßigen Web-Toolkit-Optionen von Microsoft: C#, VB.NET, ASP.NET ASP.NET MVC, aber auch PHP. Es verfügt über eine NoSQL-Dokumentendatenbank wie AppEngine, bietet Ihnen aber auch die Möglichkeit, eine Standardinstanz von SQL Server auszuwählen. Obwohl ich es selbst nicht verwendet habe, sieht AppEngine for Business jetzt auch SQL aus.

Azure bietet Ihnen eine Möglichkeit, lang andauernde Hintergrundprozesse zu verwenden. AppEngine nicht nach meinem besten Wissen.

Aus meiner Sicht hat AppEngine den großen Vorteil, dass Sie nur für die Verwendung aufgeladen werden, wenn eine Anfrage tatsächlich bearbeitet wird. Eine Azure-Instanz führt dazu, dass Sie selbst für die Zeit, in der sie vollständig inaktiv ist, eine Rechnung erhalten. Das ist völlig normal, aber die Tatsache, dass Google es nicht so macht, lässt mich jedes Mal AppEngine wählen. Mein Budget ist zu knapp, um Geld für Leerlauf-CPU-Stunden auszugeben.

+0

BTW, was ist mit Docker-Containern? Können sie gefeuert werden, wenn eine Anfrage tatsächlich bearbeitet wird, oder ist das zu langsam, um machbar zu sein? –

+1

Ich sollte beachten, dass eine große Menge an Informationen in meinem Beitrag jetzt veraltet ist, zumindest in Bezug auf die Möglichkeiten von AppEngine. Ich wünschte wirklich, dass ich mehr über Docker wüsste, aber nach meinem besten Wissen ist es nicht so schnell, eine neue Container-Instanz zu erstellen, die akzeptable Antwortzeiten für eine Web-Anfrage bietet. Auf der anderen Seite könnte es aus Sicht der Skalierung funktionieren, um die Nachfrage zu erfüllen. Ein intelligenter Load Balancer könnte erstellt werden, um neue Instanzen zu erstellen, um die steigende Nachfrage zu befriedigen, nicht wahr? –

1

Es gibt einen Port von Django zu nicht relationalen Datenbanken, der mit App Engine oder Mongodb funktioniert.

Google für django nicht-rel

Dokumentation ist etwas spärlich, obwohl