Frage

Welche Alternativen gibt es zu GAE gegeben, dass ich schon ein gutes Stück Code arbeiten, dass ich halten möchte. Mit anderen Worten, ich bin zu graben Python. Allerdings ist mein Anwendungsfall mehr von einer geringen Anzahl von Anfragen, höheren CPU-Verwendungsart Anwendungsfall, und ich mache mir Sorgen, dass ich nicht in der Lage sein kann, für immer mit App Engine zu bleiben. Ich habe eine Menge Leute reden über Amazon Web Services gehört und andere Arten von Cloud-Anbieter, aber ich bin eine harte Zeit, zu sehen, wo die meisten dieser anderen Angebote die Palette von Dienstleistungen (Datenabfrage, Benutzerauthentifizierung, automatische Skalierung), dass App Engine bietet. Was sind meine Optionen hier?

War es hilfreich?

Lösung

Ich glaube nicht, gibt es eine weitere Alternative (in Bezug auf Code Portabilität) zu GAE jetzt seit GAE in einer Klasse für sich ist. Sicher GAE ist Cloud Computing, aber ich sehe GAE als Teilmenge von Cloud Computing. Amazon EC2 ist auch Cloud Computing (sowie Joyent Accelerators, Slicehost Scheiben), aber offensichtlich sind sie zwei unterschiedliche Tiere auch. So jetzt bist du in einer Situation, die Ihre Architektur ein Umdenken erfordert je nach Ihren Bedürfnissen.

Die unmittelbaren Vorteile von GAE ist, dass seine im Wesentlichen wartungsfrei, da es an der Infrastruktur (skalierbare Web-Server und Datenbank-Administration) bezieht. GAE ist mehr zugeschnitten auf diejenigen Entwickler, die nur auf ihre Anwendungen konzentrieren wollen und nicht die zugrunde liegenden system.In eine Art und Weise, dass Entwickler freundlich betrachten kann. Nun sollte es auch gesagt werden, dass diese anderen Cloud-Computing-Lösungen auch versuchen Sie nur zu erlauben, über Ihre Anwendung zu kümmern, wie viel Sie möchten von VM Bereitstellung images / Vorlagen. Letztendlich wird Ihre Bedürfnisse den Ansatz diktieren Sie treffen sollten.

Jetzt mit all diesem Hintergrund wir auch Hybrid-Lösungen und Abhilfen konstruieren können, die unsere Bedürfnisse als auch erfüllen könnten. Zum Beispiel scheint nicht GAE direkt geeignet für diese spezielle App benötigt man beschreiben. Mit anderen Worten, bietet GAE relativ hohe Anzahl von Anfragen, geringe Anzahl an CPU-Zyklen (nicht sicher, ob bezahlte Version anders sein wird).

Allerdings ist eine Möglichkeit, diese Herausforderung zu bewältigen ist durch eine maßgeschneiderte Lösung baut Beteiligung GAE als Frontend und Amazon AWS (EC2, S3 und SQS) als Backend. Einige werden sagen, Sie könnte genauso gut den ganzen Stack auf AWS bauen, aber einhergehen kann, wie auch viele vorhandenen Code neu zu schreiben. Darüber, wie dieses Problem zu umgehen beschreibt eine vorherige Stackoverflow Post ein Verfahren zur Hintergrundaufgaben in GAE zu simulieren. Darüber hinaus können Sie sich in HTTP Map / Reduce Auslastung zu verteilen als auch.

Andere Tipps

AppScale

AppScale ist eine Plattform, die Benutzer bereitstellen und betreiben ihre eigenen Google App Engine-Anwendungen ermöglicht. Er führt automatisch über Amazon EC2 und Eucalyptus sowie Xen und KVM. Es wurde entwickelt und wird von AppScale Systeme gehalten. Es unterstützt den Python, Go, PHP und Java Google App Engine-Plattformen.

http://github.com/AppScale/appscale

In der Zwischenzeit ...

... es ist amost 2015 und es scheint, dass die Behälter sind der Weg nach vorn zu gehen. Alternativen zu GAE entstehen:

Google hat freigegeben Kubernetes , Container-Scheduling-Software, indem sie auf verwalten GCE Container , kann aber auch auf anderen Cluster verwendet werden.

Es gibt einige kommenden PaaS auf Docker wie

Interessante Sachen im Auge zu behalten.

Ein bisschen spät, aber ich würde Heroku einen gehen:

  

Heroku ist eine polyglotte Cloud-Anwendungsplattform. Mit Heroku, Sie   brauchen nicht über Server überhaupt zu denken. Sie können schreiben, Apps mit   moderne Entwicklungspraktiken in der Programmiersprache Ihrer   Wahl, wieder mit ihm Add-on-Ressourcen wie SQL und NoSQL-Datenbanken,   Memcached, und viele andere. Sie verwalten Ihre App mit dem Heroku   Kommandozeilen-Tool und Sie bereitstellen Code die Git Revisionskontrolle mit   System, alle auf der Heroku Infrastruktur ausgeführt werden.

https://www.heroku.com/about

Ab 2016, wenn Sie bereit sind, PaaS (Plattform als Service und) FaaS (Funktion als Dienst) in der gleichen serverless Computing Kategorie, dann haben Sie ein paar Optionen FaaS.

Vertraulich

AWS Lambda

  

AWS Lambda können Sie Code ohne Bereitstellung oder Verwaltung von Servern laufen. Sie bezahlen nur für die Rechenzeit verbrauchen Sie - es gibt keine Gebühr, wenn Ihr Code nicht ausgeführt wird. alle ohne Verabreichung - mit Lambda, können Sie Code für praktisch jede Art von Anwendung oder Back-End-Dienst ausführen. Einfach laden Sie Ihren Code und Lambda kümmert mich um alles, was Ihren Code mit hohen Verfügbarkeit erforderlich laufen und skalieren. Sie können Ihren Code automatisch auslösen aus anderen AWS-Diensten oder rufen sie direkt von jedem Web oder mobile app.

einrichten

AWS Schritt Funktionen ergänzt AWS Lambda.

  

AWS Schritt Funktionen machen es einfach, die Komponenten von verteilten Anwendungen und Microservice mit visuellen Workflows zu koordinieren. Bauanwendungen aus einzelnen Komponenten, die jeder ausführen eine diskrete Funktion können Sie skalieren und ändern Anwendungen schnell. Step-Funktionen sind eine zuverlässige Art und Weise Komponenten zu koordinieren und die Funktionen der Anwendung Schritt für Schritt durch. Schritt Funktionen bieten eine grafische Konsole, um die Komponenten Ihrer Anwendung als eine Reihe von Schritten zu ordnen und zu visualisieren. Dies macht es einfach mehrstufiger Anwendungen zu erstellen und auszuführen. Schritt Funktionen löst automatisch und verfolgt jeden Schritt, und Wiederholungen, wenn es Fehler gibt, so dass Ihre Anwendung ausführt, um und wie erwartet. Schritt Funktionen protokollieren den Zustand jeden Schritt, so dass, wenn die Dinge schief gehen, können Sie und Debug-Probleme schnell diagnostizieren. Sie können die Schritte ändern und hinzufügen, ohne selbst Code schreiben

Google Cloud-Funktionen

Ab 2016 ist es in alpha.

  

Google Cloud-Funktionen sind eine leichte, ereignisbasierte asynchrone Compute-Lösung, die Sie kleine, einzweckmaschinen Funktionen erstellen kann, die ohne die Notwendigkeit, auf Cloud-Ereignisse reagiert einen Server oder eine Laufzeitumgebung zu verwalten. Event von Google Cloud Storage und Google Cloud Pub / Sub können Cloud-Funktionen asynchron auslösen, oder Sie können HTTP-Aufruf für die synchrone Ausführung verwendet werden.

Azure Funktionen

  

Eine ereignisbasierte serverless Compute Erfahrung, um Ihre Entwicklung zu beschleunigen. Es kann je nach Nachfrage skalieren und Sie zahlen nur für die Ressourcen, die Sie verbrauchen.

Öffnen

Serverless

  

Die Serverless Framework können Sie die automatische Skalierung, Pay-per-Ausführung, ereignisgesteuerte Funktionen zu jeder Cloud implementieren. Wir unterstützen derzeit Amazon Web Service des Lambda, und bauen andere Cloud-Anbieter zu unterstützen.

IronFunctions

  

IronFunctions ist eine Open-Source-serverless Computing-Plattform für jede Wolke -. Private, öffentliche oder hybride


Es bleibt abzuwarten, wie gut FaaS mit CaaS (Container als Dienst) konkurriert. Der ehemalige scheint leichter. Beide scheinen geeignet Microservices Architekturen.

Ich gehe davon aus, dass die Funktionen (wie in FaaS) sind nicht das Ende der Linie, und die viele Jahre nach vorn werden wir weitere Service-Abstraktionen sehen, zum Beispiel test-only-Entwicklung, gefolgt von unverschlüsselten Szenarien.

Amazon Elastic Compute Cloud EC2 oder ist eine gute Wahl. Sie führen im Grunde Linux VMs auf ihren Servern, die Sie über eine Web-Schnittstelle (für den Antrieb nach oben und unten) und natürlich den Zugriff über SSH steuern können, oder was auch immer Sie normalerweise einrichten ... Und da es ein Linux installieren, dass Sie steuern, können Sie natürlich laufen Python, wenn Sie es wünschen.

Microsoft Windows Azure könnte eine Überlegung wert sein. Ich habe Angst, daß ich es nicht so verwendet habe, kann nicht sagen, ob es gut ist, und Sie sollten bedenken, dass es im Moment eine CTP ist.

Check it out hier.

Wenn Sie in der Cloud interessiert sind, und vielleicht möchten Sie Ihre eigenen für die Produktion und / oder erstellen Testen Sie unter Eucalyptus . Es ist angeblich Code kompatibel mit EC2 aber Open Source.

Sie können auch ein Aussehen an AWS Elastic Beanstock aufzunehmen - es hat eine engere Gleichwertigkeit GAE-Funktionalität, indem es ist so konzipiert, PaaS sein, sondern dass IaaS (dh EC2)

Es würde mich mehr daran interessiert zu sehen, wie App Engine kann leicht mit einem anderen für die CPU-intensive Anforderungen verwendet Server gekoppelt werden.

TyphoonAE versucht, dies zu tun. Ich habe es nicht getestet, aber während es noch in der Betaphase ist, sieht es aus wie es atleast in der aktiven Entwicklung ist.

Die Umstellung auf Cloud Computing geschieht so schnell, dass Sie keine Zeit haben zum Testen verschiedene Plattformen zu verschwenden. Ich schlage vor, Sie versuchen, aus Jelastic , wenn Sie in Java interessiert sind als auch.

Eine der größten Dinge über Jelastic ist, dass Sie alle Änderungen nicht im Code der Anwendung vornehmen müssen, mit Ausnahme der Änderungen für Ihre Anwendung Funktionalität, aber nicht aus dem Grund, die gewählte Plattform Anforderungen dieser. Mit Bezug auf diese Sie eigentlich nicht Ihre time.The Deployment-Prozess verschwenden nur fehlerlos ist, und Sie können Ihre WAR-Datei überall einsetzen further.Using GAE Sie erfordert die App um ihre Systemanforderungen zu ändern. Im Fall, wenn Sie mit Java bekommen passieren zu arbeiten und beginnen eine flexiblere Plattform sucht, ist Jelastic eine kompatible Alternative.

Sie können auch von Red Hat Projekt Cape Dwarf verwenden, GAE-Anwendungen auf dem Wildfly appserver (bisher JBoss) ohne Änderungen ausgeführt werden.

Sie können es hier:

http://capedwarf.org/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top