Wann sollte Folgendes verwendet werden: Amazon EC2, Google App Engine, Microsoft Azure und Salesforce.com?

88

Ich frage dies ganz allgemein. Sowohl aus Sicht des Cloud-Anbieters als auch des Cloud-Verbrauchers. Die Frage bezieht sich auch nicht auf eine bestimmte Art von Anwendung (tatsächlich soll bekannt sein, welche Art von Anwendungen / Domänen in welche der Cloud-Platten passen - SaaS PaaS IaaS).

Mein bisheriges Verständnis ist:

IaaS: Rohhardware (Prozessoren, Netzwerke, Speicher).

PaaS: Betriebssystem, Systemsoftware, Entwicklungsframework, virtuelle Maschinen.

SaaS: Softwareanwendungen.

Es wäre großartig, wenn Stackoverflower's ihr Verständnis und ihre Erfahrungen mit dem Cloud-Computing-Konzept teilen könnten.

EDIT: Ok, ich werde es genauer formulieren -

Amazon EC2: Sie haben keine Kontrolle über die Hardwareschicht. Sie können jedoch zwischen Betriebssystem-Image, Dev Framework (.NET, J2EE, LAMP) und Anwendung wählen und diese auf EC2-Hardware installieren. Können Sie Anwendungen bereitstellen, die mit Google App Engine oder Azure auf EC2 erstellt wurden?

Google App Engine: Sie haben keine Kontrolle über Hardware und Betriebssystem und erhalten ein bestimmtes Dev Framework zum Erstellen Ihrer Anwendung. Können Sie eine vorhandene Java- oder Python-Anwendung nehmen und auf GAE portieren? Oder können Anwendungen, die auf GAE erstellt wurden, aus GAE entfernt und auf einen Anwendungsserver wie Websphere oder Weblogic portiert werden?

Azure: Sie haben keine Kontrolle über Hardware und Betriebssystem und erhalten ein bestimmtes Dev Framework zum Erstellen Ihrer Anwendung. Können Sie eine vorhandene .NET-Anwendung nehmen und auf Azure portieren? Oder können Anwendungen, die auf Azure erstellt wurden, aus Azure entfernt und auf einen Anwendungsserver wie Biztalk portiert werden?

user32262
quelle
2
Sie haben Rackspace Cloud / Rackspace Cloud Server vergessen
Phoebus
2
Es ist eine interessante Frage, aber vielleicht besser für ServerFault geeignet, da es mehr darum geht, Serveranwendungen zu verteilen, als nur eine zu schreiben. Vielleicht solltest du einen zweiten Beitrag auf SF posten, der sich auf diesen bezieht, und von hier aus einen Link zum Q bei SF hinzufügen. Auf diese Weise erhalten Sie eine bessere Sicht sowohl von Programmierern als auch von Systemadministratoren!
Wim ten Brink
@phoebus auch CloudSigma, das weniger bekannt, aber sehr skalierbar ist.
AwesomeUser

Antworten:

58

Gute Frage! Wie Sie hervorheben, passen die verschiedenen Angebote in verschiedene Kategorien:

EC2 ist Infrastructure as a Service. Sie erhalten VM-Instanzen und können mit ihnen arbeiten, wie Sie möchten. Rackspace Cloud Server sind mehr oder weniger gleich.

Azure, App Engine und Salesforce sind alle Platform as a Service. Sie bieten jedoch verschiedene Integrationsebenen: Mit Azure können Sie praktisch beliebige Hintergrunddienste ausführen, während sich App Engine an kurzlebigen Aufgaben des Anforderungshandlers orientiert (obwohl es auch eine Aufgabenwarteschlange und geplante Aufgaben unterstützt). Ich bin mit dem Angebot von Salesforce nicht besonders vertraut, aber ich verstehe, dass es App Engine in mancher Hinsicht ähnlich ist, obwohl es auf seine spezielle Nische spezialisierter ist.

Cloud-Angebote, die unter Software as a Service fallen, reichen von Infrastrukturelementen wie Amazon Simple Storage Service und SimpleDB bis hin zu vollständigen Anwendungen wie Fog Creeks gehostetem FogBugz und natürlich StackExchange.

Eine gute allgemeine Regel lautet: Je höher das Angebot, desto weniger Arbeit müssen Sie erledigen, aber desto spezifischer ist es. Wenn Sie einen Bug-Tracker benötigen, ist die Verwendung von FogBugz offensichtlich die geringste Arbeit. Das Erstellen einer auf App Engine oder Azure ist mehr Arbeit, bietet jedoch mehr Vielseitigkeit, während das Erstellen einer auf Raw-VMs wie EC2 noch mehr Arbeit bedeutet (tatsächlich viel mehr), aber noch mehr Vielseitigkeit bietet. Mein allgemeiner Rat ist, die Plattform auf höchster Ebene auszuwählen, die Ihren Anforderungen noch entspricht, und von dort aus zu bauen.

Nick Johnson
quelle
Hallo, derzeit verwenden wir Godaddy und Arvixe, aber wir planen, auf Amazon AWS oder Azure umzusteigen. Ich habe von hier aus gelesen , dass für AWS viele Codeänderungen erforderlich sind, aber als Online-Einzelhandels-Website möchten wir keine Änderungen an der Code, weil es Zeit braucht. Was wäre in dieser Situation das beste Hosting zur Auswahl?
Shaijut
13

Dies ist eine ausgezeichnete Frage. Vollständige Offenlegung, da ich Teil von Azure bin, aber Erfahrung mit den anderen habe.

Ich denke, Azure hebt sich von den anderen ab, ist der schnelle Übergang von On Prem zu Cloud. Zum Beispiel -

  • SQL Azure - Verbindungszeichenfolge ändern, DB hochladen, los!
  • Warteschlangen funktionieren ähnlich wie MSMQ.
  • Blobs sind so ziemlich Blobs, wie man sie schüttelt, aber sie skalieren wie verrückt.
  • Die Tabellenspeicherkomponente ist gut, da sie eine unglaubliche Skalierbarkeit für Name / Wert-Paare bietet - ist aber gewöhnungsbedürftig.
  • Service Bus ist mein Favorit unter den Diensten, da er eine Vielzahl von Kommunikationsparadigmen ermöglicht. Zwei SB-Endpunkte versuchen zunächst, eine Verbindung herzustellen. Wenn dies nicht möglich ist, werden sie durch die Cloud geleitet. Dies sorgt für eine sehr sichere und skalierbare Verarbeitung, wenn Firewalls im Weg stehen.
  • Zugriffssteuerungsliste - normalerweise gepaart mit dem Servicebus, um sicherzustellen, dass die richtigen Personen auf die richtigen Dinge zugreifen - denken Sie an SAML in der Cloud.

Ich hoffe das hilft!

Derek
quelle
8

Meine Cloud-Erfahrung ist derzeit auf Salesforce.com beschränkt

Für den normalen Geschäftsbetrieb und die Automatisierung bietet es eine erhebliche Anzahl von Funktionen, mit denen wir Apps sehr schnell zum Laufen bringen können. Wir profitieren insbesondere von Folgendem:

  • Sicherheit (Administratoren können den Zugriff auf Objekte und Felder steuern)
  • Workflow & Zulassungen
  • Automatische UI-Generierung
  • Integrierte Berichte und Dashboards
  • Das gesamte System (einschließlich unserer benutzerdefinierten Änderungen) ist über Webdienste zugänglich
  • Möglichkeit, die Daten im System über öffentliche Websites (z. B. E-Commerce) verfügbar zu machen
  • Große Bibliothek mit Apps von Drittanbietern zur Lösung von Standardproblemen

Die Plattform löst NICHT jedes Problem.

Ich würde die Plattform nicht nutzen, um ein Kernkraftwerk zu modellieren oder das nächste Twitter zu bauen.

Craig Harris
quelle
6

Die wichtigsten Punkte beim Cloud Computing sind Kosteneinsparungen durch Bezahlung der Nutzung und die sofortige Bereitstellung von Computerressourcen.

Die Kosten betragen nicht nur x Cent pro Instanz und Stunde. Die Kosten umfassen Wartung, Entwicklung, Verwaltung usw. Meiner Meinung nach besteht der große Vorteil der Cloud darin, dass die Kunden nichts verwalten müssen, was nicht im Bereich ihrer Kerngeschäftskompetenz liegt . Wenn ich ein Versicherungsunternehmen bin, möchte ich, dass sich meine Entwickler auf meine Versicherungsprobleme konzentrieren, die zur Lösung der Anforderungen meiner Ansprüche, Tarife usw. beitragen. Ich möchte lieber vermeiden, dass Probleme mit E-Mail-Servern, Dateiservern, Dokumentenspeichern und der Verwaltung von Betriebssystem-Patches auftreten , Service Packs usw.

Meiner Meinung nach ergeben sich die größten Vorteile aus den SaaS- und PaaS-Cloud-Angeboten. Man sollte nur dann zu IaaS gehen, wenn PaaS oder SaaS ernsthafte Einschränkungen für bestimmte Anforderungen haben (dh ich muss eine Reihe von proprietären COM-Komponenten installieren und Azure unterstützt sie nicht).

SaaS eignet sich für Standardanwendungen, die nicht das Kerngeschäft des Kunden darstellen, sondern eher ein Dienstprogramm sind. Dies sind Ihre typischen Messaging-Systeme, Portale, Dokumenten-Repositorys, E-Mail-Systeme, CRMs, ERPs, Buchhaltung usw. usw. usw. Warum sollten Sie das Rad neu erfinden, indem Sie Ihr eigenes schreiben, wenn Sie ein gut unterstütztes Produkt eines Drittanbieters anpassen können?

PaaS eignet sich hervorragend für Kerngeschäftssoftware, die das Hauptgeschäftsangebot von Unternehmen unterstützt. Entlastet Kunden von der Notwendigkeit, sich mit dem Betriebssystemmanagement zu befassen, und ermöglicht es Kunden, sich auf die Entwicklung von Geschäftssystemen zu konzentrieren - etwas, das sonst niemand für den Kunden tun kann.

Igorek
quelle
3

Sie können auch die Vorteile von PaaS (z. B. Google App Engine) nutzen und es manchmal und bei Bedarf erweitern, indem Sie einige virtuelle Maschinen von IaaS-Anbietern (z. B. Amazon) herausziehen, um einige Zahlen zu ermitteln, und dann einfach zurücksenden die Ausgabe an Google App Engine.

Auf diese Weise erhalten Sie das Beste aus beiden Welten: Sie können schnell skalierbare Apps in GAE entwickeln und diese dann jederzeit erweitern, indem Sie ein beliebiges Programm auf virtuellen Amazon-Maschinen ausführen.

joemar.ct
quelle
Klingt interessant @ joemar.ct! Was für Aufgaben wären das? Wo finde ich Tutorials dazu?
Andru
2

Dies ändert sich ständig, jetzt unterstützt Windows Azure auch VM, sodass es jetzt auch ein IaaS-Anbieter ist.

Albert Cheng
quelle