Ich bin ein RoR-Programmierer für Anfänger, der plant, meine App mit Heroku bereitzustellen. Die Nachricht von meinen anderen Beraterfreunden besagt, dass Heroku wirklich einfach und gut zu bedienen ist. Das einzige Problem ist, dass ich immer noch keine Ahnung habe, was Heroku tut ...
Ich habe mir ihre Website angesehen und kurz gesagt, Heroku hilft bei der Skalierung, aber ... warum ist das überhaupt wichtig? Wie hilft Heroku bei:
Geschwindigkeit - Meine Untersuchungen haben ergeben, dass die Bereitstellung von AWS an der Ostküste der USA am schnellsten ist, wenn ich mich an ein Publikum in den USA und Asien wende.
Sicherheit - Wie sicher sind sie?
Skalierung - Wie funktioniert es eigentlich?
Kosteneffizienz - Es gibt so etwas wie einen Prüfstand, der die Skalierung erleichtert.
Wie schlagen sie sich gegen ihre Konkurrenten? Zum Beispiel Engine Yard und Bluebox ?
Bitte verwenden Sie Laien-Englisch-Begriffe, um zu erklären ... Ich bin ein Anfänger-Programmierer.
production
Zweig in meinem Repo haben kann. Immer wenn ein neues Commit in dieses Repo verschoben wird, greift Heroku automatisch danach, erstellt es und stellt es bereit. Ich muss mich überhaupt nicht um etwas Server-seitiges kümmern!Antworten:
AWS / Heroku sind beide kostenlos für kleine Hobbyprojekte (zu Beginn).
Wenn Sie eine App sofort starten möchten, ohne die Architektur stark anpassen zu müssen, wählen Sie Heroku .
Wenn Sie sich auf die Architektur konzentrieren und verschiedene Webserver verwenden möchten, wählen Sie AWS . AWS ist zeitaufwändiger, je nachdem, welchen Service / welches Produkt Sie auswählen, kann sich aber lohnen. AWS enthält auch viele Plugin-Services und -Produkte.
Heroku
AWS
quelle
Das Wichtigste zuerst, AWS und Heroku sind verschiedene Dinge. AWS bietet Infrastructure as a Service ( IaaS ) an, während Heroku eine Platform as a Service ( PaaS ) anbietet .
Was ist der Unterschied? In etwa bietet IaaS Ihnen Komponenten, die Sie benötigen, um darauf aufzubauen. PaaS bietet Ihnen eine Umgebung, in der Sie nur Code und einige grundlegende Konfigurationen übertragen und eine laufende Anwendung erhalten. IaaS bietet Ihnen mehr Leistung und Flexibilität, auf Kosten der Notwendigkeit, mehr selbst zu bauen und zu warten.
Um Ihren Code unter AWS zum Laufen zu bringen und ein bisschen wie eine Heroku-Bereitstellung auszusehen, benötigen Sie einige EC2-Instanzen - Sie möchten einen Load Balancer / Caching-Layer darauf installieren (z. B. Varnish ), Sie möchten Instanzen, die so etwas ausführen Passagier und Nginx , um Ihren Code bereitzustellen, möchten Sie eine Cluster-Datenbankinstanz von etwas wie PostgreSQL bereitstellen und konfigurieren . Sie möchten ein Bereitstellungssystem mit so etwas wie Capistrano und etwas, das die Protokollaggregation durchführt.
Das ist keine unbedeutende Menge an Arbeit, die eingerichtet und gewartet werden muss. Bei Heroku sind möglicherweise einige Zeilen Anwendungscode und a erforderlich, um diese Art von Phase zu erreichen
git push
.Sie sind also so weit und möchten skalieren. Großartig. Sie verwenden Puppet für Ihre EC2-Bereitstellung, richtig? Jetzt konfigurieren Sie Ihre Capistrano-Dateien so, dass Instanzen nach Bedarf hoch- und heruntergefahren werden. Sie richten Ihre Puppet-Konfiguration neu aus, damit Varnish Web-Worker-Instanzen kennt und diese automatisch zusammenfasst. Oder du
heroku scale web:+5
.Hoffentlich gibt Ihnen das eine Vorstellung vom Vergleich zwischen den beiden. Um nun Ihre spezifischen Punkte anzusprechen:
Geschwindigkeit
Derzeit läuft Heroku nur auf AWS-Instanzen in
us-east
undeu-west
. Für Sie klingt das wie das, was Sie sowieso 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 im Allgemeinen schlecht zusammengestellt sind. Mit Heroku haben Sie jemanden, der so etwas verwaltet, was entweder ein Segen oder ein Fluch ist, 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. Ihr Artikel über Dyno Isolation beschreibt ihre Isolationstechnologien (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 geäußert. Ich bin leider nicht in der Lage, genug Wissen / Erfahrung zu haben, um wirklich Kommentare abzugeben, aber meine aktuellen Heroku-Bereitstellungen halten dies für "gut genug". Es kann ein Problem für Sie sein, ich weiß es nicht.
Skalieren
Ich habe oben in meinem Vergleich zwischen IaaS und PaaS angesprochen, wie man dies implementieren könnte. Ihre Anwendung hat ungefähr eine
Procfile
, die Zeilen des Formulars enthältdyno_type: command_to_run
, z. B. (aus http://devcenter.heroku.com/articles/process-model ):Dies mit einem:
Dies führt dazu, dass 2
web
Dynos und 10worker
Dynos ausgeführt werden. Schön, einfach, leicht. Beachten Sie, dassweb
es sich um einen speziellen Dyno-Typ handelt, der Zugriff auf die Außenwelt hat und sich hinter dem netten Web-Traffic-Multiplexer (wahrscheinlich eine Art Lack / Nginx-Kombination) befindet, der den Verkehr entsprechend weiterleitet. Ihre Mitarbeiter interagieren wahrscheinlich mit einer Nachrichtenwarteschlange für ein ähnliches Routing, von dem 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 Prüfstandsstunde, verglichen mit 0,025 USD / h für eine AWS-Mikroinstanz oder 0,09 USD / h für eine kleine AWS-Instanz.
Heroku des Dyno - Dokumentation sagt , dass Sie über 512 MB RAM haben, ist es so wahrscheinlich nicht zu unvernünftig , eine Dyno als ein bisschen wie eine EC2 Micro Instanz zu betrachten. Ist es den doppelten Preis wert? Wie sehr 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 beiseite, aber wenn ich von hier aus eine Verbindung zu einem Prüfstand herstelle (
heroku run bash
), zeigt ein flüchtiger Blick 4 Kerne/proc/cpuinfo
und 36 GB RAM - dies lässt mich glauben, dass ich mich auf einer "High-Memory Double Extra Large Instance" befinde " . Die Heroku- Dyno-Dokumentation besagt, dass jeder Dyno 512 MB RAM erhält, sodass ich ihn möglicherweise mit bis zu 71 anderen Dynos teilen kann. (Ich habe nicht genügend Daten über die Homogenität der AWS-Instanzen von Heroku, daher kann Ihre Laufleistung variieren.)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, war die Menge an Einschränkungen für verwendbare Frameworks und Technologien unglaublich abstoßend. Dies ist mehr als "nur eine Java-Sache" - die Menge an allgemeinen Einschränkungen und notwendigen Überlegungen ( die FAQ gibt Hinweise auf mehrere) schien weniger praktisch. Im Gegensatz dazu war der Einsatz bei Heroku ein Traum.
Fazit
Ich hoffe, dies beantwortet Ihre Fragen (bitte kommentieren Sie, wenn es Lücken / andere Bereiche gibt, die Sie ansprechen möchten). Ich denke, ich sollte meine persönliche Position anbieten. Ich liebe Heroku für "schnelle Bereitstellungen". Wenn ich eine Anwendung starte und ein billiges Hosting möchte (die kostenlose 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 bringen, so viel Kontrolle nach Heroku und dann entweder nach AWS oder nach AWS zu verlagern 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 Programmieranfänger" - möglicherweise können Sie sich mit Heroku auf das Schreiben von Ruby konzentrieren und müssen keine Zeit damit verbringen, die gesamte andere Infrastruktur rund um Ihren Code aufzubauen. Ich würde es auf jeden Fall versuchen.
Hinweis: AWS verfügt tatsächlich über ein PaaS-Angebot, Elastic Beanstalk , 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
quelle
Wie Kristian Glass sagte, gibt es keinen Vergleich zwischen IaaS ( AWS ) und PaaS ( Heroku , EngineYard ).
PaaS hilft Entwicklern im Grunde, die Entwicklung von Apps zu beschleunigen, wodurch Geld gespart und vor allem ihre Anwendungen und ihr Geschäft innoviert werden, anstatt Konfigurationen einzurichten und Dinge wie Server und Datenbanken zu verwalten. Weitere Funktionen, die für die Verwendung von PaaS gekauft werden müssen, sind der Anwendungsbereitstellungsprozess wie Flexibilität, Hochverfügbarkeit, Überwachung, Skalierung / Skalierung, begrenzter Bedarf an Fachwissen, einfache Bereitstellung sowie reduzierte Kosten und Entwicklungszeit.
Dennoch hat PaaS eine dunkle Seite, die die Einführung von PaaS behindert:
Abgesehen von oben sollten Sie über genügend Fähigkeiten verfügen, um Sie zu verwalten. IaaS:
Wenn Sie ein kleines Unternehmen haben, ist PaaS die beste Option für Sie:
Es wird eine ganz individuelle Wahl sein, je nach Anforderung. Sie können Details zu meinen PPT Hosting Rails Apps haben .
quelle
Thank you for your concerns. We assure you that we take security very seriously and run or systems on secure servers. There is no need to worry about [insert security issue here] as all that is handled by...
. -1, aber ich würde es umkehren, wenn es richtig bearbeitet wird.Eigentlich können Sie beides verwenden - Sie können eine App mit Amazon Servern ec2 entwickeln. Dann schiebe es (mit Git) für eine Weile kostenlos zu Heroku (benutze Heroku Free Tier, um es der Öffentlichkeit zu servieren) und teste es so. Es ist sehr kostengünstig im Vergleich zum Mieten eines Servers, aber Sie müssen mit einer restriktiveren Heroku-API sprechen, über die Sie nachdenken sollten. Quelle: Diese Methode wurde für eine meiner Online-Klassen "Startup Engineering from Coursera / Stanford" von Balaji S. Srinivasan und Vijay S. Pande übernommen
quelle
Es gibt viele verschiedene Möglichkeiten, diese Entscheidung anhand von Entwicklungs-, IT- und Geschäftszielen zu betrachten. Fühlen Sie sich also nicht schlecht, wenn sie überwältigend erscheint. Aber auch - überdenken Sie nicht die Skalierbarkeit.
Denken Sie über Ihre Anforderungen nach .
Ich habe Websites entwickelt, die mehr als 8 Millionen Unikate pro Tag gewartet und wöchentlich Terabyte an Videos geliefert haben, die auf Infrastrukturen basieren, die bei 250.000 US-Dollar an Hardware-Hardware beginnen, und zwar von einem riesigen IT-Mitarbeiter von MM im Wert von MM.
Aber ich hatte auch kleinere Websites, die 10 bis 20.000 US-Dollar pro Jahr generieren sollten, keine sehr hohen Anforderungen an Traffic, Datenbank oder Verarbeitung hatten, und ich habe diese ohne Kompromisse von einem generischen Hosting-Konto von 10 US-Dollar pro Monat ausgeführt.
In Zukunft wird die Bereitstellung aufgrund des Fortschritts eher wie Heroku als wie AWS aussehen. Es gibt keinen Wert beim IT-Drehknopf bei der Skalierung von Internetinfrastrukturen, der nicht zunehmend automatisierbar ist, und nichts davon hat etwas mit dem Wert des von Ihnen angebotenen Produkts oder der von Ihnen angebotenen Dienstleistung zu tun.
Denken Sie auch an eine kommerzielle Website - Skalierbarkeit ist das, was wir oft als "gutes Problem" bezeichnen - obwohl Skalierbarkeitsprobleme bei Websites wie Facebook und Twitter sehr bekannt waren, hatten sie keinen negativen Einfluss auf ihren Erfolg - die Nachrichten könnte sogar zu mehr Anmeldungen beigetragen haben (alle Presse ist gute Presse).
Wenn Sie einen Dienst haben, der mehr als 100.000 Unikate pro Tag generiert und Skalierungsprobleme hat, würde ich ihn Ihnen gerne abnehmen, unabhängig von der Sprache, Datenbank, Plattform oder Infrastruktur, auf der Sie ausgeführt werden!
Skalierbarkeit ist ein behebbares Implementierungsproblem - das Fehlen von Kunden ist ein existenzielles Problem.
quelle
Normalerweise stellen die Leute diese Frage: Heroku oder AWS, wenn sie anfangen, etwas bereitzustellen.
Mein Experiment mit Heroku und AWS. Hier ist meine kurze Übersicht und mein Vergleich:
Heroku
Heroku run bash
(Danke, MJafar Mash für den Rat) in die Maschinenebene eintauchen / darauf zugreifen, aber es ist irgendwie begrenzt! Sie haben keinen vollen Zugriff!AWS - EC2
AWS Elastic Beanstalk ist eine Alternative zu Heroku, aber billiger
Elastic Beanstalk wurde ab 2010 als öffentliche Beta angekündigt. Dies erleichtert uns die Arbeit mit der Bereitstellung. Für Details gehen Sie bitte hier
Beanstalk ist kostenlos. Die Kosten, die Sie bezahlen, werden für die von Ihnen genutzten Dienste und die Anzahl der Nutzungsstunden berechnet.
Ich benutze Elastic Beanstalk für eine lange Zeit und ich denke, es kann der Ersatz von Heroku und billiger sein!
Zusammenfassung
In meinem aktuellen System verwende ich Heroku für die Inszenierung und Beanstalk für die Produktion!
quelle
Use Heroku for staging, and Beanstalk for production!
heroku run bash
und Sie haben Shell-Zugriff auf Ihren PrüfstandDie vorhandenen Antworten sind weitgehend zutreffend:
Heroku ist sehr einfach zu verwenden und bereitzustellen, kann einfach für die automatische Bereitstellung eines Repositorys (z. B. GitHub) konfiguriert werden, verfügt über viele Add-Ons von Drittanbietern und berechnet mehr pro Instanz.
AWS bietet eine größere Auswahl an Erstanbieter-Diensten zu wettbewerbsfähigen Preisen, einschließlich DNS, Lastenausgleich, kostengünstiger Dateispeicherung und Unternehmensfunktionen wie die Möglichkeit, Sicherheitsrichtlinien zu definieren.
Für die tl; dr springe zum Ende dieses Beitrags.
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 billig zu betreiben.
Die Bereitstellung mit EB ist sehr langsam. Die Bereitstellung eines Updates kann pro Server 10 bis 15 Minuten dauern, und die Bereitstellung in einem größeren Cluster kann den größten Teil einer Stunde dauern - im Vergleich zu nur Sekunden für die Bereitstellung eines Updates auf Heroku. Bereitstellungen in EB werden ebenfalls nicht besonders nahtlos abgewickelt, was zu Einschränkungen beim Anwendungsdesign führen kann.
Sie können alle Dienste, die ElasticBeanstalk hinter den Kulissen verwendet, verwenden, um Ihr eigenes maßgeschneidertes System zu erstellen (mit CodeDeploy, Elastic Load Balancer, Auto Scaling Groups - und CodeCommit, CodeBuild und CodePipeline, wenn Sie all-in gehen möchten), aber Sie können definitiv ein gutes Geld ausgeben Ein paar Wochen, in denen es das erste Mal eingerichtet wird, da es ziemlich kompliziert und etwas kniffliger ist, als nur Dinge in EC2 zu konfigurieren.
AWS Lightsail bietet eine Hosting-Option zu einem wettbewerbsfähigen Preis, hilft jedoch nicht bei der Bereitstellung oder Skalierung - es ist wirklich nur ein Wrapper für das EC2-Angebot (kostet aber viel mehr). Sie können bei der Ersteinrichtung automatisch ein Bash-Skript ausführen. Dies ist eine nette Geste, aber teuer im Vergleich zu den Kosten für die Einrichtung einer EC2-Instanz (die Sie auch programmgesteuert ausführen können).
Einige Gedanken zum Vergleichen (um zu versuchen, die Fragen zu beantworten, wenn auch auf Umwegen):
Unterschätzen Sie nicht, wie viel Arbeit die Systemadministration kostet, einschließlich der Aktualisierung aller installierten Elemente mit Sicherheitspatches (und gelegentlichen Betriebssystemaktualisierungen).
Unterschätzen Sie nicht, welchen Nutzen die automatische Bereitstellung, die automatische Skalierung sowie die Bereitstellung und Konfiguration von SSL haben.
Die automatische Bereitstellung beim Aktualisieren Ihres Git-Repositorys ist mit Heroku mühelos. Es ist nahezu augenblicklich und elegant, sodass es für Endbenutzer keine Ausfälle gibt. Es kann so eingestellt werden, dass es nur aktualisiert wird, wenn die Tests / die kontinuierliche Integration erfolgreich sind, sodass Sie Ihre Site nicht beschädigen, wenn Sie fehlerhaften Code bereitstellen.
Sie können ElasticBeanstalk auch für die automatische Bereitstellung verwenden. Seien Sie jedoch darauf vorbereitet, eine Woche damit zu verbringen, dies beim ersten Mal einzurichten. Möglicherweise müssen Sie die Art und Weise ändern, in der Sie Assets (wie CSS und JS) bereitstellen und erstellen, um mit der Art und Weise zu arbeiten, wie ElasticBeanstalk Bereitstellungen oder Erstellungslogik handhabt in Ihre App, um Bereitstellungen zu handhaben.
Beachten Sie bei der Schätzung der Kosten, dass Sie für eine nahtlose Bereitstellung ohne Ausfall von EB mehrere Instanzen ausführen müssen - EB stellt Updates für jeden Server einzeln bereit, damit Ihr Service nicht beeinträchtigt wird -, während Heroku einen neuen Prüfstand für Sie erstellt und nur veraltet Der alte Dienst wird bearbeitet, bis alle Anforderungen an ihn bearbeitet wurden (und löscht ihn dann).
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 berücksichtigen.
Einige andere Fragen, die nicht speziell gestellt, aber durch andere Antworten aufgeworfen wurden:
Die Verwendung eines anderen Anbieters für Produktion und Entwicklung ist eine schlechte Idee.
Ich schaudere, dass die Leute dies vorschlagen. Während Code im Idealfall auf jeder vernünftigen Plattform einwandfrei ausgeführt werden sollte, damit er so portabel wie möglich ist, variieren die Softwareversionen auf jedem Host erheblich. Nur weil Code im Staging ausgeführt wird, bedeutet dies nicht, dass er in der Produktion ausgeführt wird (z. B. Major Node.js / Ruby / Python / PHP / Perl-Versionen können sich in einer Weise unterscheiden, die Code inkompatibel macht, häufig in stiller Weise, die möglicherweise nicht abgefangen wird, selbst wenn Sie eine angemessene Testabdeckung haben.
Eine gute Idee ist es, Heroku für Prototypen, kleinere Projekte und Microsites zu nutzen, damit Sie Dinge schnell erstellen und bereitstellen können, ohne viel Zeit in Konfiguration und Wartung zu investieren.
Berücksichtigen Sie bei dieser Entscheidung unbedingt die Kosten für die Ausführung von Produktions- und Vorproduktionsinstanzen, und vergessen Sie dabei nicht die Kosten für die Replikation der gesamten Umgebung (einschließlich Dienste von Drittanbietern wie Datenspeicher / Add-Ons, Installation und Konfiguration von SSL usw.). .
Seien Sie bei der Verwendung von AWS vorsichtig mit vorkonfigurierten AWS-Instanzen von Anbietern wie Bitnami - sie sind ein Sicherheitsalptraum. Sie können standardmäßig viele notorisch anfällige Anwendungen verfügbar machen, ohne dies in der Beschreibung zu erwähnen.
Verwenden Sie stattdessen nur eine gut unterstützte Mainstream-Distribution wie Ubuntu oder Debian (oder CentOS, wenn Sie RPM-Unterstützung benötigen).
Hinweis: Das Amazon-Angebot verfügt über eine eigene Distribution namens Amazon Linux, die RPM verwendet, jedoch EC2-spezifisch ist und von Open-Source-Software von Drittanbietern weniger gut unterstützt wird.
Sie könnten auch eine EC2 - Instanz auf AWS - Setup (oder Lightsail) und configure mit so etwas wie flynn oder dokku auf sie - auf dem Sie dann einfach mehrere Standorte bereitstellen könnte, die es wert sein kann , wenn Sie eine Menge von Dienstleistungen erhalten oder sein wollen in der Lage, neue Dinge leicht zu spinnen. Die Einrichtung ist jedoch nicht so automatisch wie die Verwendung von Heroku, und Sie können am Ende viel Zeit mit der Konfiguration und Wartung verbringen (bis zu dem Punkt, an dem ich festgestellt habe, dass die Bereitstellung mithilfe von Amazon Clustering und Docker Swarm einfacher ist als die Einrichtung; YMMV).
Ich habe AWS EC-Instanzen (allein und in Clustern), Elastic Beanstalk und Lightsail sowie Heroku gleichzeitig verwendet, je nach den Anforderungen des Projekts, an dem ich arbeite.
Ich hasse es, Zeit mit der Konfiguration von Diensten zu verbringen, 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 berechnet.
tl; dr
Wenn Geld nie ein Problem wäre, würde ich Heroku für fast alles verwenden, da es eine enorme Zeitersparnis bedeutet - aber ich würde AWS immer noch für kompliziertere Projekte verwenden wollen, bei denen ich die Flexibilität und die erweiterten Services benötige, die Heroku nicht bietet.
Das ideale Szenario für mich wäre, wenn ElasticBeanstalk eher wie Heroku funktioniert - dh mit einer einfacheren Konfiguration und einem schnelleren und besseren Bereitstellungsmechanismus.
Ein Beispiel für einen Dienst, der fast so ist, ist now.sh , , der tatsächlich AWS hinter den Kulissen verwendet, aber Bereitstellungen und Clustering genauso einfach macht wie auf Heroku (mit automatischem SSL, DNS, ordnungsgemäßen Bereitstellungen, supereinfacher Cluster-Einrichtung und Verwaltung).
Ich habe es ziemlich oft sowohl für die Node.js-App als auch für Docker-Image-Bereitstellungen verwendet. Die größte Einschränkung besteht darin, dass die Instanzen gemeinsam genutzt werden (was sich in ihren geringeren Kosten widerspiegelt) und derzeit keine Option zum Kauf dedizierter Instanzen besteht. Das Open Source-Bereitstellungstool "Jetzt" kann jedoch auch für die Bereitstellung auf dedizierten Instanzen in AWS sowie in Google Cloud und Azure verwendet werden.
quelle
Es war ein bedeutender Prozentsatz unseres Geschäfts, Menschen von Heroku zu AWS zu migrieren. Beides hat Vorteile, aber nach einer Weile wird es bei Heroku chaotisch ... sobald Sie ein bestimmtes Maß an Komplexität benötigen, ist es mit Herokus Einschränkungen nicht mehr einfach, es aufrechtzuerhalten.
Es gibt jedoch zunehmend Optionen, um die Benutzerfreundlichkeit von Heroku und die Flexibilität von AWS zu nutzen, indem Sie mit großartigen Frameworks / Tools auf AWS arbeiten.
quelle
Lustige Sache ist, dass Heroku tatsächlich AWS im Backend verwendet. Es nimmt Ihnen den gesamten Aufwand und erledigt das Architekturmanagement auf EC2 für Sie. (Bekam dieses Wissen von einem leitenden Ingenieur einer großen Firma während eines Interviews)
quelle
Gut! Ich beobachte, Heroku ist berühmt für angehende und neugeborene Entwickler, während AWS die Entwicklerpersönlichkeit weiterentwickelt hat. DigitalOcean spielt auch auf diesem Gebiet eine wichtige Rolle. Cloudways hat es sehr einfach gemacht, einen Lampenstapel mit einem Klick auf DigitalOcean und AWS zu erstellen. Es ist weitaus besser, alle Dienste und Pakete mit einem Klick zu aktualisieren, als alles manuell zu erledigen.
Sie können dies hier vollständig überprüfen: https://www.cloudways.com/blog/host-php-on-aws-cloud/
quelle
Nun, Heroku verwendet AWS im Hintergrund. Alles hängt von der Art der Lösung ab, die Sie benötigen. Wenn Sie ein Core-Linux- und Entwickler-Typ sind, haben Sie keine Angst davor, VM von Grund auf neu zu erstellen, wie z. B. die Auswahl von Ami-Optionen für Palcement usw., können Sie sich für AWS entscheiden. Wenn Sie Dinge auf Oberflächenebene tun möchten, ohne diese Nettigritien zu haben, können Sie mit Heroku gehen.
quelle
Amazon Web Services (AWS) bietet zahlreiche Dienste von IaaS bis PaaS mit einer garantierten Haltbarkeit von 99,9999999% und Verfügbarkeit von Daten und Infrastruktur. AWS bietet Infrastrukturautomatisierung sowie verschiedene Tools, mit denen Entwickler ihren Anwendungsbereitstellungsprozess weiterleiten können.
Auf der anderen Seite ist Heroku nur PaaS, das Dienste zur Verwaltung Ihrer Plattform in der Cloud anbietet. Bei AWS steht es nirgendwo, ob es sich um Infrastruktur oder Sicherheit handelt.
quelle
Manchmal frage ich mich, warum Leute AWS mit Heroku vergleichen. AWS ist ein IAAS (Infrastructure as a Service), das deutlich macht, wie robust und berechnend das System ist. Heroku hingegen ist nur ein SAAS, es ist im Grunde nur ein Bruchteil der AWS-Services. Warum sollten Sie also Probleme mit der Einrichtung von AWS haben, wenn Sie Ihr erstes Produkt mit Heroku an Prime senden können?
Heroku ist kostenlos, einfach und leicht, fast alle Arten von Stacks im Web bereitzustellen. Heroku wurde speziell entwickelt, um alle Probleme beim Versand Ihrer Anwendung an einen Live-Server in kürzester Zeit zu umgehen.
Trotzdem möchten Sie Ihre Anwendung möglicherweise mithilfe eines der Tutorials beider Parteien bereitstellen und vergleichen
AWS DOCS und Heroku Docs
quelle
Obwohl sowohl AWS als auch Heroku Cloud-Plattformen sind, unterscheiden sie sich, da AWS IaaS und Heroku PaaS ist
quelle
Heroku ist wie eine Teilmenge von AWS. Es ist nur eine Plattform als Service, während AWS als alles und auf jeder Ebene implementiert werden kann.
Die Implementierung hängt von den Geschäftsanforderungen ab. Wenn es in eines passt, verwenden Sie es entsprechend.
quelle