it-swarm.com.de

Warum verwenden Leute Heroku, wenn AWS anwesend ist? Was unterscheidet Heroku von AWS?

Ich bin ein RoR-Programmierer für Anfänger, der plant, meine App mit Heroku bereitzustellen. Ein Wort meiner anderen Beraterfreunde sagt, dass Heroku wirklich einfach und gut zu bedienen ist. Das einzige Problem ist, dass ich immer noch keine Ahnung habe, was Heroku macht ...

Ich habe mir ihre Website angesehen und kurz gesagt, was Heroku macht, ist beim Skalieren zu helfen, aber ... warum ist das überhaupt wichtig? Wie hilft Heroku bei:

  1. Geschwindigkeit - Meine Forschung implizierte, dass der Einsatz von AWS an der Ostküste der USA der schnellste wäre, wenn ich ein Ziel aus den USA und Asien ansprechen möchte.

  2. Sicherheit - wie sicher sind sie?

  3. Skalieren - Wie funktioniert das eigentlich?

  4. Kosteneffizienz - Es gibt so etwas wie einen Dynamo, der das Skalieren erleichtert.

  5. Wie gehen sie gegen ihre Konkurrenten vor? Zum Beispiel: Engine Yard und bluebox ?

Bitte verwenden Sie englische Laienbegriffe, um zu erklären ... Ich bin ein Anfänger-Programmierer.

1018
Bryan

AWS/Heroku sind beide kostenlos für kleine Hobbyprojekte (zunächst mit). 

Wenn Sie eine App ohne viel Anpassung der Architektur sofort starten möchten, wählen Sie Heroku .

Wenn Sie sich auf die Architektur konzentrieren und verschiedene Webserver verwenden möchten, wählen SieAWS. AWS ist zeitaufwändiger, je nachdem, für welchen Service/welches Produkt Sie sich entscheiden, es kann sich jedoch lohnen. AWS bietet auch viele Plug-In-Dienste und -Produkte.


Heroku

  • Plattform als Dienstleistung (PAAS)
  • Gute Dokumentation
  • Hat integrierte Tools und Architektur.
  • Begrenzte Kontrolle über die Architektur beim Entwurf einer App.
  • Die Bereitstellung wird erledigt (automatisch über GitHub oder manuell über Git-Befehle oder CLI).
  • Nicht zeitaufwändig.

AWS

  • Infrastruktur als Dienstleistung (IAAS)
  • Vielseitig - hat viele Produkte wie EC2, LAMBDA, EMR usw.
  • Kann eine dedizierte Instanz verwenden, um mehr Kontrolle über die Architektur zu haben, z. B. Auswahl des Betriebssystems, der Softwareversion usw. Es gibt mehrere Backend-Ebenen.
  • Elastic Beanstalk ist eine Funktion, die mit Herokus PAAS vergleichbar ist. 
  • Kann die automatisierte Bereitstellung verwenden oder eine eigene ausführen.
171
SuperNova

Das Wichtigste zuerst, AWS und Heroku sind verschiedene Dinge. AWS bietet Infrastruktur als Service an ( IaaS ), während Heroku eine Plattform als Service anbietet ( PaaS ).

Was ist der Unterschied? IaaS bietet Ihnen ungefähr die Komponenten, die Sie benötigen, um Dinge darauf aufzubauen. Mit PaaS erhalten Sie eine Umgebung, in der Sie nur Code und einige grundlegende Einstellungen vornehmen und eine laufende Anwendung erhalten. Mit IaaS erhalten Sie mehr Leistung und Flexibilität, und Sie müssen mehr selbst aufbauen und warten.

Um Ihren Code auf AWS zum Laufen zu bringen und ein bisschen wie eine Heroku-Bereitstellung auszusehen, benötigen Sie einige EC2-Instanzen, auf denen eine Load Balancer/Caching-Ebene installiert sein soll (z. B. Varnish ), Sie möchten, dass Instanzen wie Passenger und nginx Ihren Code bereitstellen und konfigurieren Sie eine Clustered-Datenbank-Instanz von so etwas wie PostgreSQL . Sie möchten ein Deployment-System mit so etwas wie Capistrano und etwas, das Protokollaggregation ausführt.

Das ist kein unbedeutender Arbeitsaufwand für Einrichtung und Wartung. Mit Heroku sind möglicherweise einige Zeilen Anwendungscode und ein git Push erforderlich, um diese Art von Phase zu erreichen.

Sie sind also so weit und möchten skalieren. Toll. Sie verwenden Puppet für Ihren EC2-Einsatz, oder? Jetzt konfigurieren Sie Ihre Capistrano-Dateien so, dass Instanzen nach Bedarf hoch- und heruntergefahren werden. Wenn Sie Ihre Puppet-Konfiguration neu programmieren, erkennt Varnish die Web-Worker-Instanzen und führt automatisch einen Pool zwischen ihnen durch. Oder du heroku scale web:+5.

Hoffentlich erhalten Sie eine Vorstellung von dem Vergleich zwischen den beiden. Um nun auf Ihre spezifischen Punkte einzugehen:

Geschwindigkeit

Derzeit läuft Heroku nur auf AWS-Instanzen in us-east und eu-west. Für Sie hört sich das sowieso so an, wie Sie es wollen. Für andere ist es möglicherweise eher eine Überlegung.

Sicherheit

Ich habe viele intern gewartete Produktionsserver gesehen, die bei Sicherheitsupdates weit hinterherhinken oder nur allgemein schlecht zusammengesetzt sind. Mit Heroku haben Sie jemanden, der diese Art von Dingen verwaltet. Das ist entweder ein Segen oder ein Fluch, je nachdem, wie Sie es betrachten!

Bei der Bereitstellung übergeben Sie Ihren Code effektiv direkt an Heroku. Dies kann ein Problem für Sie sein. In ihrem Artikel über Dyno Isolation werden ihre Isolationstechnologien beschrieben (es scheint, als würden mehrere Dynos auf einzelnen EC2-Instanzen ausgeführt). Mehrere Kollegen haben Probleme mit diesen Technologien und der Stärke ihrer Isolation zum Ausdruck gebracht. Ich bin leider nicht in der Lage, genug Wissen/Erfahrung zu haben, um wirklich Kommentare abzugeben, aber meine derzeitigen Heroku-Bereitstellungen halten dies für "gut genug". Es kann ein Problem für Sie sein, ich weiß es nicht.

Skalierung

Ich habe angesprochen, wie man dies in meinem IaaS vs PaaS-Vergleich oben implementieren könnte. Ungefähr hat Ihre Anwendung eine Procfile, die Zeilen der Form dyno_type: command_to_run hat, also zum Beispiel (von http://devcenter.heroku.com/articles/process entfernt) -Modell ):

web:    bundle exec Rails server
worker: bundle exec rake jobs:work

Dies mit einem:

heroku scale web:2 worker:10

in diesem Fall werden 2 web -Dynos und 10 worker -Dynos ausgeführt. Schön, einfach, einfach. Beachten Sie, dass web ein spezieller Dyno-Typ ist, der Zugang zur Außenwelt hat und sich hinter dem Nice-Web-Traffic-Multiplexer (wahrscheinlich eine Art von Varnish/Nginx-Kombination) befindet, der den Datenverkehr entsprechend weiterleitet. Ihre Mitarbeiter interagieren wahrscheinlich mit einer Nachrichtenwarteschlange für ein ähnliches Routing, von der sie den Standort über eine URL in der Umgebung abrufen.

Kosteneffizienz

Viele Leute haben viele unterschiedliche Meinungen dazu. Derzeit sind es 0,05 USD/h für eine Dynostunde, verglichen mit 0,025 USD/h für eine AWS-Mikroinstanz oder 0,09 USD/h für eine AWS-Kleininstanz.

Herokus Prüfstandsdokumentation besagt, dass Sie ungefähr 512 MB RAM haben, daher ist es wahrscheinlich nicht zu unvernünftig, a Dyno wie eine EC2-Mikroinstanz. Lohnt sich der doppelte Preis? Wie viel schätzt du deine Zeit? Der Zeit- und Arbeitsaufwand, der erforderlich ist, um auf einem IaaS-Angebot aufzubauen, um es auf diesen Standard zu bringen, ist definitiv nicht billig. Ich kann diese Frage für Sie nicht wirklich beantworten, aber unterschätzen Sie nicht die "versteckten Kosten" für Einrichtung und Wartung.

(Ein bisschen abseits, aber wenn ich mich von hier aus mit einem Prüfstand verbinde (heroku run bash), zeigt ein flüchtiger Blick 4 Kerne in /proc/cpuinfo und 36 GB RAM - das lässt mich glauben dass ich mich auf einer "High-Memory Double Extra Large" -Instanz befinde . Die Heroku -Dynodokumentation besagt, dass jeder Dyno 512 MByte erhält RAM, daher teile ich möglicherweise mit bis zu 71 anderen Dynos. (Ich habe nicht genügend Daten über die Homogenität der AWS-Instanzen von Heroku, sodass Ihre Laufleistung variieren kann.)

Wie schlagen sie sich gegen ihre Konkurrenten?

Ich fürchte, ich kann dir nicht wirklich helfen. Der einzige Konkurrent, den ich jemals wirklich gesehen habe, war Google App Engine - zu der Zeit, als ich Java - Anwendungen bereitstellen wollte, und Die Menge an Einschränkungen für verwendbare Frameworks und Technologien war unglaublich abstoßend. Dies ist mehr als "nur eine Java Sache" - die Menge an allgemeinen Einschränkungen und notwendigen Überlegungen ( die FAQ Hinweise auf mehrere) schienen weniger bequem. Im Gegensatz dazu war der Einsatz bei Heroku ein Traum.

Fazit

Ich hoffe, dass dies Ihre Fragen beantwortet. Ich finde, ich sollte meine persönliche Position anbieten. Ich liebe Heroku für "schnelle Einsätze". Wenn ich eine Anwendung starte und ein günstiges Hosting möchte (die Heroku-Stufe ist fantastisch - im Wesentlichen, wenn Sie nur einen Web-Dyno und 5 MB PostgreSQL benötigen, ist es kostenlos, eine Anwendung zu hosten), ist Heroku meine Anlaufstelle . Für "Serious Production Deployment" mit mehreren zahlenden Kunden, mit einem Service-Level-Agreement, mit dedizierter Zeit für Operationen usw. kann ich mich nicht dazu durchringen, so viel Kontrolle an Heroku und dann entweder an AWS oder an Heroku abzulagern Unsere eigenen Server waren die Hosting-Plattform der Wahl.

Letztendlich geht es darum, was für Sie am besten funktioniert. Sie sagen, Sie sind "ein Anfänger-Programmierer" - vielleicht können Sie sich mit Heroku auf das Schreiben von Ruby konzentrieren und müssen keine Zeit aufwenden, um die gesamte andere Infrastruktur rund um Ihren Code aufzubauen. Ich würde es auf jeden Fall versuchen.


Beachten Sie, dass AWS über ein PaaS-Angebot Elastic Beanstalk verfügt, das Ruby, Node.js, PHP, Python, .NET und Java unterstützt. Ich denke, im Allgemeinen springen die meisten Leute, wenn sie "AWS" sehen, zu Dingen wie EC2 und S3 und EBS, die definitiv IaaS-Angebote sind

2025
Kristian Glass

Wie Kristian Glass Said gibt es keinen Vergleich zwischen IaaS ( AWS ) und PaaS ( Heroku , EngineYard ). 

Im Grunde hilft PaaS Entwicklern dabei, die Entwicklung der App zu beschleunigen, wodurch sie Geld sparen und vor allem ihre Anwendungen und ihr Geschäft erneuern können, anstatt Konfigurationen einzurichten und Dinge wie Server und Datenbanken zu verwalten. Weitere Kaufmerkmale für PaaS sind der Anwendungsbereitstellungsprozess, wie Agilität, Hochverfügbarkeit, Überwachung, Skalierung/Entkalkung, begrenzter Bedarf an Fachwissen, einfache Bereitstellung sowie reduzierte Kosten und Entwicklungszeit. 

Es gibt jedoch immer noch eine dunkle Seite von PaaS, die die Akzeptanz von PaaS anbelangt: 

  • Weniger Kontrolle über Server und Datenbanken
  • Die Kosten werden sehr hoch sein, wenn sie nicht ordnungsgemäß geregelt werden
  • Frühzeitig und zweifelhaft am heutigen Tag und Alter

Abgesehen von oben sollten Sie über genügend Fähigkeiten verfügen, um Sie zu erreichen, IaaS:

  • Hardware-Beschaffung
  • Betriebssystem 
  • Server-Software 
  • Serverseitige Skriptumgebung
  • Webserver 
  • Datenbankverwaltungssystem (Mysql, Redis usw.)
  • Produktionsserver konfigurieren
  • Tool zum Testen und Bereitstellen
  • Überwachungs-App
  • Hohe Verfügbarkeit
  • Laden Sie Blancing/HTTP-Routing
  • Service-Backup-Richtlinien 
  • Gruppenarbeit 
  • Produktion neu aufbauen 

Wenn Sie ein kleines Unternehmen haben, ist PaaS die beste Option für Sie:

  • Zahlen Sie wenn sie hinausgehen
  • Niedrige Anlaufkosten
  • Überlassen Sie die Installation dem Fachmann
  • PaaS übernimmt die automatische Skalierung/Entkalkung, Lastverteilung und Notfallwiederherstellung
  • PaaS verwaltet alle Sicherheitsanforderungen
  • PaaS verwaltet Zuverlässigkeit und Hochverfügbarkeit
  • Paas verwaltet für Sie viele Add-Ons von Drittanbietern

Es wird eine ganz individuelle Auswahl je nach Anforderung sein. Sie können Details zu meinen PPT Hosting Rails Apps haben. 

60
Pravin Mishra

Es gibt viele verschiedene Möglichkeiten, diese Entscheidung aus Entwicklungs-, IT- und Geschäftszielen zu betrachten. Fühlen Sie sich also nicht schlecht, wenn es überwältigend erscheint. Aber auch - Skalierbarkeit nicht überdenken.

Denken Sie an Ihre Anforderungen .

Ich habe Websites entwickelt, die täglich über 8 Millionen Unikate gewartet haben, und pro Terabyte Video pro Woche bereitgestellt, das auf Infrastrukturen aufgebaut ist, die bei 250.000 US-Dollar an Hardware-Hardware anfallen, die nicht von einem riesigen IT-Personal von $ MM IT-Mitarbeitern ausgeführt wurde.

Ich hatte aber auch kleinere Websites, die 10 bis 20.000 US-Dollar pro Jahr generieren sollten, nicht über sehr hohe Zugriffszahlen, Db oder Verarbeitungsvoraussetzungen verfügten, und ich ließ diese ohne Kompromisse auf ein generisches Hosting-Konto über 10 USD/Monat laufen.

In Zukunft wird die Bereitstellung eher aufgrund von Fortschritten als Heroku als AWS aussehen. Der IT-Drehknopf von skalierbaren Internet-Infrastrukturen hat einen Nullwert, der nicht immer automatisierbarer wird, und nichts davon hat etwas mit dem Wert des Produkts oder der Dienstleistung zu tun, die Sie anbieten.

Denken Sie auch an eine kommerzielle Website - die Skalierbarkeit wird oft als "gutes Problem" bezeichnet - obwohl Skalierbarkeitsprobleme bei Websites wie Facebook und Twitter sehr bekannt waren, hatten sie keinen negativen Einfluss auf ihren Erfolg - die Nachrichten vielleicht sogar beigetragen zu mehr Anmeldungen (alle Presse ist gute Presse).

Wenn Sie einen Dienst haben, der täglich über 100.000 Unikate generiert und Skalierungsprobleme aufweist, würde ich es Ihnen gerne abnehmen, egal in welcher Sprache, Datenbank, Plattform oder Infrastruktur Sie arbeiten.

Skalierbarkeit ist ein fixierbares Implementierungsproblem - keine Kunden zu haben ist ein existenzielles Problem.

30
BricoleurDev

Eigentlich können Sie beides verwenden - Sie können eine App mit den Amazon-Servern ec2 entwickeln. Dann schieben Sie es (mit Git) kostenlos für eine Weile auf Heroku (verwenden Sie die Heroku-Freiheitsstufe, um es der Öffentlichkeit zu servieren) und testen Sie es so. Es ist sehr kosteneffektiv im Vergleich zur Miete eines Servers, aber Sie müssen mit einer restriktiveren Heroku-API sprechen, über die Sie nachdenken sollten. Quelle: Diese Methode wurde für einen meiner Online-Kurse "Startup-Engineering von Coursera/Stanford" von Balaji S. Srinivasan und Vijay S. Pande übernommen

Added a scheme so my explanation will be easier to understand

30
sivi

Die vorhandenen Antworten sind weitgehend zutreffend:

  • Heroku ist sehr einfach zu verwenden und zu implementieren, kann einfach für die automatische Implementierung eines Repositorys (z. B. GitHub) konfiguriert werden, verfügt über zahlreiche Add-Ons von Drittanbietern und berechnet pro Instanz mehr.

  • AWS bietet ein breiteres Spektrum von First-Party-Diensten zu wettbewerbsfähigen Preisen, darunter DNS, Lastausgleich, kostengünstiger Dateispeicher und Unternehmensfunktionen wie die Möglichkeit, Sicherheitsrichtlinien zu definieren.

Für die tl; dr zum Ende dieses Beitrags springen.

AWS ElasticBeanstalk ist ein Versuch, eine Heroku-ähnliche Plattform für die automatische Skalierung und einfache Bereitstellung bereitzustellen. Da es EC2-Instanzen verwendet (die automatisch erstellt werden), können EB-Server alles tun, was jede andere EC2-Instanz kann, und es ist kostengünstig auszuführen.

Die Bereitstellung mit EB ist sehr langsam. Das Bereitstellen eines Updates kann pro Server 10-15 Minuten dauern, und das Bereitstellen in einem größeren Cluster kann den größten Teil einer Stunde in Anspruch nehmen - im Vergleich zu nur Sekunden, um ein Update auf Heroku bereitzustellen. Bereitstellungen auf EB werden ebenfalls nicht besonders nahtlos verarbeitet, was zu Einschränkungen beim Anwendungsdesign führen kann.

Sie können alle Dienste nutzen, die ElasticBeanstalk hinter den Kulissen verwendet, um Ihr eigenes System zu erstellen (mit CodeDeploy, Elastic Load Balancer, Auto Scaling Groups - und CodeCommit, CodeBuild und CodePipeline, wenn Sie alles tun möchten), aber Sie können definitiv einen guten Preis ausgeben Einige Wochen, in denen es zum ersten Mal eingerichtet wird, da es ziemlich kompliziert und ein wenig kniffliger ist als nur die Konfiguration in EC2.

AWS Lightsail bietet eine kostengünstige Hosting-Option, hilft aber nicht bei der Bereitstellung oder Skalierung - es ist wirklich nur ein Wrapper für das EC2-Angebot (kostet aber viel mehr). Sie können damit bei der Ersteinrichtung automatisch ein Bash-Skript ausführen. Das ist nett, aber im Vergleich zu den Kosten für die Einrichtung einer EC2-Instanz (die Sie auch programmgesteuert ausführen können) sehr teuer.

Einige Überlegungen zum Vergleichen (um zu versuchen, die Fragen zu beantworten, wenn auch auf Umwegen):

  1. Unterschätzen Sie nicht, wie viel Arbeit die Systemadministration kostet, und halten Sie auch alles, was Sie installiert haben, mit Sicherheitspatches (und gelegentlichen Betriebssystemaktualisierungen) auf dem neuesten Stand.

  2. Unterschätzen Sie nicht, welchen Nutzen die automatische Bereitstellung, die automatische Skalierung sowie die Bereitstellung und Konfiguration von SSL haben.

    Die automatische Bereitstellung, wenn Sie Ihr Git-Repository aktualisieren, ist mit Heroku mühelos. Es ist nahezu sofort einsatzbereit, sodass es für Endbenutzer keine Ausfälle gibt. Es kann so eingestellt werden, dass es nur dann aktualisiert wird, wenn die Tests/die kontinuierliche Integration erfolgreich abgeschlossen wurden, sodass Sie Ihre Site nicht beschädigen, wenn Sie fehlerhaften Code bereitstellen.

    Sie können ElasticBeanstalk auch für die automatische Bereitstellung verwenden. Sie müssen jedoch möglicherweise eine Woche lang festlegen, wie Sie Assets (wie CSS und JS) bereitstellen und erstellen, um zu ermitteln, wie ElasticBeanstalk Bereitstellungen oder Erstellungslogiken verarbeitet in Ihre App, um Bereitstellungen zu handhaben.

    Berücksichtigen Sie bei der Schätzung der Kosten, dass für eine nahtlose Bereitstellung ohne Ausfall auf EB mehrere Instanzen ausgeführt werden müssen. EB führt Aktualisierungen für jeden Server einzeln durch, damit Ihr Service nicht beeinträchtigt wird. Dabei dreht Heroku einen neuen Prüfstand für Sie und ist nur veraltet Der alte Dienst wird so lange bearbeitet, bis alle Anforderungen bearbeitet wurden (dann wird er gelöscht).

    Interessanterweise können die Hosting-Kosten für den Betrieb mehrerer Server mit EB günstiger sein als für eine einzelne Heroku-Instanz, insbesondere wenn Sie die Kosten für Add-Ons einbeziehen.

Einige andere Themen, die nicht speziell erörtert, aber durch andere Antworten aufgeworfen wurden:

  1. Die Verwendung eines anderen Anbieters für Produktion und Entwicklung ist eine schlechte Idee.

    Ich schaudere, dass die Leute dies vorschlagen. Idealerweise sollte Code auf jeder vernünftigen Plattform problemlos ausgeführt werden, damit er so portabel wie möglich ist. Die Softwareversionen auf jedem Host variieren jedoch erheblich. Nur weil der Code im Staging-Modus ausgeführt wird, bedeutet dies nicht, dass er in der Produktion ausgeführt wird (z. B. Node.js/major). Ruby-/Python-/PHP-/Perl-Versionen können sich in einer Weise unterscheiden, die den Code inkompatibel macht.

    Eine gute Idee ist es, Heroku für Prototyping, kleinere Projekte und Microsites zu nutzen. So können Sie Dinge schnell erstellen und bereitstellen, ohne viel Zeit in Konfiguration und Wartung zu investieren.

    Berücksichtigen Sie bei dieser Entscheidung die Kosten für die Ausführung von Produktions- und Vorbereitungsinstanzen, und berücksichtigen Sie nicht die Kosten für die Replikation der gesamten Umgebung (einschließlich der Dienste von Drittanbietern wie Datenspeicher/Add-Ons, Installation und Konfiguration von SSL usw.). .

  2. Wenn Sie AWS verwenden, achten Sie auf vorkonfigurierte AWS-Instanzen von Anbietern wie Bitnami - sie sind ein Sicherheits-Albtraum. Sie können standardmäßig viele notorisch anfällige Anwendungen verfügbar machen, ohne dies in der Beschreibung zu erwähnen.

    Verwenden Sie stattdessen eine gut unterstützte Mainstream-Distribution wie Ubuntu oder Debian (oder CentOS, wenn Sie RPM-Unterstützung benötigen).

    Hinweis: Amazon bietet eine eigene Distribution namens Amazon Linux an, die RPM verwendet, jedoch EC2-spezifisch ist und von Drittanbieter-/Open Source-Software weniger gut unterstützt wird.

  3. Sie können auch eine EC2-Instanz auf AWS (oder Lightsail) einrichten und mit etwas wie flynn oder dokk darauf konfigurieren, auf der Sie dann problemlos mehrere Sites bereitstellen können es lohnt sich, wenn Sie viele Dienste pflegen oder neue Dinge einfach aufdrehen möchten. Das Einrichten ist jedoch nicht so automatisiert wie das reine Verwenden von Heroku, und Sie müssen möglicherweise viel Zeit aufwenden, um es zu konfigurieren und zu warten (bis zu dem Punkt, an dem das Bereitstellen mit Amazon Clustering und Docker Swarm einfacher war als das Einrichten; YMMV).

Ich habe AWS EC-Instanzen (allein und in Clustern), Elastic Beanstalk sowie Lightsail und Heroku gleichzeitig verwendet, je nach den Anforderungen des Projekts, an dem ich arbeite.

Ich hasse es, Zeit damit zu verbringen, Dienste zu konfigurieren, aber meine Heroku-Rechnung würde Tausende pro Jahr betragen, wenn ich sie für alles verwenden würde und AWS einen Bruchteil der Kosten ausmachen würde.

tl; dr

Wenn Geld nie eine Rolle spielen würde, würde ich Heroku für fast alles verwenden, da dies eine enorme Zeitersparnis darstellt. Ich möchte AWS jedoch auch für kompliziertere Projekte verwenden, bei denen ich die Flexibilität und die fortschrittlicheren Dienste benötige, die Heroku nicht bietet.

Das ideale Szenario für mich wäre, wenn ElasticBeanstalk eher wie Heroku funktionieren würde - d. H. Mit einer einfacheren Konfiguration und einem schnelleren und besseren Bereitstellungsmechanismus.

Ein Beispiel für einen Service, der fast das ist, ist now.sh , der AWS im Hintergrund verwendet, aber die Bereitstellung und das Clustering so einfach macht wie bei Heroku (mit automatischem SSL, DNS, ordnungsgemäßen Bereitstellungen, supereinfacher Einrichtung und Verwaltung von Clustern).

Ich habe es sowohl für Node.js App- als auch für Docker-Image-Bereitstellungen häufig verwendet. Die größte Einschränkung besteht darin, dass Instanzen gemeinsam genutzt werden (was sich in ihren geringeren Kosten widerspiegelt) und derzeit keine Option zum Kauf dedizierter Instanzen besteht. Das Open Source-Bereitstellungstool "now" kann jedoch auch für die Bereitstellung auf dedizierten Instanzen in AWS sowie in Google Cloud und Azure verwendet werden.

27
Iain Collins

Nun, normalerweise fragen die Leute diese Frage: Heroku oder AWS, wenn sie etwas einsetzen.

Mein Experiment mit Heroku und AWS, hier ein kurzer Überblick und Vergleich:

Heroku

  • Ein Befehl für die Bereitstellung unabhängig von Ihren Projekttypen: Ruby on Rails, Nodejs
  • So viele 1-Klick-Plugins für die Integration von Plugins und Drittanbietern: Es ist sehr einfach, mit etwas zu beginnen.
  • Keine automatische Skalierung; Das bedeutet, dass Sie manuell vergrößern oder verkleinern müssen
  • Die Kosten sind teuer, insbesondere wenn das System mehr Ressourcen benötigt
  • Freie Instanz verfügbar
  • Die freie Instanz geht in den Ruhezustand, wenn sie inaktiv ist.
  • Rechenzentrum: nur USA und EU
  • CAN kann mit Heroku run bash in die Maschinenebene eintauchen/darauf zugreifen (Danke, MJafar Mash für die Beratung), aber es ist irgendwie begrenzt! Sie haben keinen vollen Zugriff!
  • Sie müssen nicht zu viel über DevOps wissen

AWS - EC2

  • Dies ist wie bei einem Computer mit einem vorkonfigurierten Betriebssystem (oder nicht), daher müssen Sie Software und Bibliothek installieren, damit Ihre Website/Ihr Service online geht.
  • Plugin & Library müssen manuell oder Automatisierungsskript integriert werden (öffentliches Skript & von Ihnen geschrieben)
  • Auto Scaling & Load Balancer sind die unterstützten Dienste. Hier erfahren Sie, wie Sie Ihr System konfigurieren und in Ihr System integrieren
  • Die Kosten sind recht günstig und hängen davon ab, welche Dienste und wie viele Stunden Sie nutzen
  • Es gibt mehrere kostenlose Stunden für T2.micro-Instanzen, aber normalerweise zahlen Sie jeden Monat ein paar Dollar (falls noch T2.micro verwendet wird).
  • Ihre kostenlose Instanz geht nicht in den Ruhemodus und ist rund um die Uhr verfügbar (weil Sie dafür bezahlen können :))
  • Rechenzentrum: auf der ganzen Welt. Wählen Sie die Region aus, die am besten zu Ihnen passt.
  • Tauchen Sie in die Maschinenebene ein. So können Sie es genießen
  • Einige Kenntnisse über DevOps, aber es ist in Ordnung, Stackoverflow ist dort hilfreich!

AWS Elastic Beanstalk eine Alternative zu Heroku, aber billiger

  • Elastic Beanstalk wurde ab 2010 als öffentliche Beta-Version angekündigt. Es erleichtert uns die Arbeit mit der Bereitstellung. Für Details gehen Sie bitte auf hier

  • Beanstalk ist kostenlos. Die Kosten, die Sie zahlen, werden für die von Ihnen in Anspruch genommenen Dienste und die Anzahl der Nutzungsstunden anfallen.

  • Ich benutze seit langem Elastic Beanstalk, und ich denke, es kann der Ersatz von Heroku und billiger sein!

Zusammenfassung

  • Heroku: Am Anfang einfach, FREE -Instanz, später jedoch teuer
  • AWS: Nicht einfach, freie Stunden verfügbar, eine Art billiger, Beanstalk sollte besorgt sein

In meinem aktuellen System verwende ich Heroku für die Inszenierung und Beanstalk für die Produktion!

22
Hieu Pham

Es war ein erheblicher Prozentsatz unseres Unternehmens, der Menschen von Heroku zu AWS migrierte. Beides hat Vorteile, aber auf Heroku wird es nach einer Weile unordentlich ... Wenn Sie einmal eine gewisse Komplexität benötigen, die mit Herokus Einschränkungen nicht mehr einfach zu warten ist.

Es gibt jedoch immer mehr Optionen, um die Benutzerfreundlichkeit von Heroku und die Flexibilität von AWS zu nutzen, indem man sich auf AWS mit großartigen Frameworks/Tools befindet.

6
Kendall Miller

Komisch ist, dass Heroku AWS im Backend verwendet. Es nimmt Ihnen den gesamten Overhead weg und erledigt das Architekturmanagement auf EC2 für Sie. (Haben Sie dieses Wissen während eines Interviews von einem leitenden Ingenieur bei einem großen Unternehmen erhalten.)

1
Saurav Prakash

Amazon Web Services (AWS) bietet zahlreiche Dienste von IaaS bis PaaS mit einer garantierten Dauer von 99,9999999% und Verfügbarkeit von Daten und Infrastruktur. AWS bietet eine Infrastrukturautomatisierung sowie mehrere Tools, mit denen Entwickler ihren Anwendungsimplementierungsprozess ausarbeiten können.

Auf der anderen Seite ist Heroku nur PaaS, das Dienste zur Verwaltung Ihrer Plattform in ihrer Cloud anbietet. Bei AWS steht es nirgends, ob es sich um Infrastruktur oder Sicherheit handelt.

0
Prash

Gut! Ich Beobachter Heroku ist bekannt für seine angehenden und neu geborenen Entwickler, während AWS fortgeschrittene Entwicklerpersönlichkeiten hat. DigitalOcean spielt auch in diesem Bereich eine wichtige Rolle. Cloudways hat es sehr einfach gemacht, Lampenstapel mit einem Klick auf DigitalOcean und AWS zu erstellen. Es ist viel besser, alle Dienste und Pakete auf einen Klick zu aktualisieren, als alles manuell zu erledigen. 

Sie können sich hier vollständig auschecken: https://www.cloudways.com/blog/Host-php-on-aws-cloud/

0
Shahroze Nawaz

Manchmal frage ich mich, warum die Leute AWS mit Heroku vergleichen. AWS ist ein IAAS (Infrastructure as a Service), der deutlich aussagt, wie robust und berechnend das System ist. Heroku ist dagegen nur ein SAAS, es ist im Grunde nur ein Bruchteil der AWS-Services. Warum also Probleme beim Einrichten von AWS haben, wenn Sie Ihr erstes Produkt mit Heroku an die Spitze senden können?.

Heroku ist kostenlos, einfach und einfach, fast alle Arten von Stacks im Web bereitzustellen. Heroku wurde speziell entwickelt, um alle Umstände des Versendens Ihrer Anwendung an einen Live-Server in kürzester Zeit zu umgehen. 

Trotzdem möchten Sie möglicherweise Ihre Anwendung mit einem der Tutorials beider Parteien bereitstellen und vergleichen

AWS DOCS und Heroku Docs

0
Sammy Joseph

Heroku ist eine Untermenge von AWS. Es ist nur eine Plattform als Dienst, während AWS als alles und auf jeder Ebene implementiert werden kann.

Die Implementierung hängt von der geschäftlichen Anforderung ab. Wenn es passt, verwenden Sie es entsprechend. 

0
Krunal Barot

Heroku verwendet AWS im Hintergrund. Alles hängt von der Art der Lösung ab, die Sie benötigen. Wenn Sie ein zentraler Linux- und Devops-Typ sind, machen Sie sich keine Sorgen, vm von Grund auf neu zu erstellen, z. B. die Auswahl von AMI, indem Sie Palcement-Optionen auswählen usw. Sie können sich für AWS entscheiden. Wenn Sie Dinge auf Oberflächenebene tun möchten, ohne diese Nettigrößen zu haben, können Sie sich für Heroku entscheiden.

0
prasoon

Obwohl AWS und Heroku Cloud-Plattformen sind, unterscheiden sie sich, da AWS IaaS und Heroku PaaS ist

0
Gopinath J