7 Stimmen

Heroku-ähnliche Amazon EC2

Gibt es etwas, das ich auf meinen EC2-Instanzen installieren kann, um AWS Heroku-ähnlich zu machen?

zum Beispiel:

  • heroku create app
  • git push

Aber für AWS.

6voto

Daniel Dener Punkte 679

Nun gibt es! Es heißt AWS Elastic Beanstalk (Stand März 2013 noch in der Beta-Phase)

Nach der Ersteinrichtung sollten weitere Bereitstellungen so einfach sein wie git aws.push

EDIT: Nur eine schöne und umfassende Übersicht über Bereitstellungsmöglichkeiten bei AWS, von Werner Vogels (AWS CTO):

Bildbeschreibung eingeben

1voto

Thomas Anthony Punkte 7225

Es gibt einige Themen, die ich ansprechen muss, bevor ich Ihre Frage gründlich beantworten kann; also bitte haben Sie etwas Geduld.

Einblick

In Bezug auf Ihre beiden Beispiele verwendet Heroku eine Reihe verschiedener Technologien, um das Maß an Einfachheit zu erreichen, das es als Service-Plattform bietet. Eine dieser Technologien ist Herokus proprietäres Toolbelt, das eine Reihe von Befehlszeilentools bietet, die es Entwicklern ermöglichen, mit ihren Anwendungen zu interagieren, sowie mit vielen der von Heroku bereitgestellten Tools, wie z.B. den Terminalzugriff für verschiedene Sprachen. Das Toolbelt selbst basiert auf zwei weiteren Technologien: Ruby und Git, die beim Installieren bereits enthalten sind.

In aller Kürze

Wenn Sie also eine Heroku-App erstellen, erstellen Sie effektiv ein Git-Repository auf dem Standard-Celedon-Cedar-Laufzeitstapel; dieses Repository wird dann als Remote-Repository hinzugefügt. Dies ermöglicht es Ihnen, sofort git push heroku master auszuführen. Hinter den Kulissen passiert jedoch noch viel mehr: Wenn Sie pushen, werden Ihre Commits von einem Git pre-receive Hook abgefangen, der Ihre App durch einen Slug-Compiler ausführt und für die Verteilung über den Dyno-Manifold vorverpackt; doch, ich schweife ab. Für weitere Informationen zu fortgeschritteneren Themen besuchen Sie: https://devcenter.heroku.com/. Hier gibt es eine Fülle von Informationen zum Lesen.

Der Stapel

Lassen Sie mich nun den Cedar-Stack erklären, da dies hauptsächlich ist, worum es bei Ihrer Frage geht. Der Celedon-Cedar ist einer von vielen; allerdings ist dies derzeit der Standard (aus vielen Gründen). Dieser polyglotte Laufzeitstapel bietet derzeit sechs Web-Sprachen (zum Zeitpunkt des Schreibens) und läuft auf Ubuntu (11.04 stabil, glaube ich). All diese Technologien arbeiten auf der AWS EC2-Computing-Umgebung.

Um Ihre Frage endlich zu beantworten: Sie müssen ein geeignetes Betriebssystem wie zum Beispiel Ubuntu installieren; eine Reihe von Sprachen wie zum Beispiel Ruby, Python, Node.js, usw.; Git (für die Bereitstellung) und der Rest liegt bei Ihnen.

0voto

Vadym Fedorov Punkte 2305

Wenn Sie eine feste Anzahl von Instanzen haben, macht es mehr Sinn, anstelle von Elastic Beanstalk Bereitstellung benutzerdefiniertes Git-Deployment zu verwenden, wie im Artikel beschrieben: http://www.jeffhoefs.com/2012/09/setup-git-deploy-for-aws-ec2-ubuntu-instance/.

Die Hauptidee besteht darin, ein GIT-Repository auf der EC2-Instanz einzurichten. Wenn Sie etwas bereitstellen möchten, pushen Sie einfach Ihre Änderungen zum Remote-Repository, das auf der EC2-Instanz installiert ist.

Ich denke, dieser Ansatz hat folgende Vorteile im Vergleich zu Elastic Beanstalk:

  1. Sie zahlen nicht für S3-Buckets zur Speicherung von Anwendungsversionen;
  2. Sie haben die volle Kontrolle über die Anwendungsbereitstellungsschritte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X