Benutzer:Oidazaubara/Heroku

aus Wikipedia, der freien Enzyklopädie
Dieser Artikel (Heroku) ist im Entstehen begriffen und noch nicht Bestandteil der freien Enzyklopädie Wikipedia.
Wenn du dies liest:
  • Der Text kann teilweise in einer Fremdsprache verfasst, unvollständig sein oder noch ungeprüfte Aussagen enthalten.
  • Wenn du Fragen zum Thema hast, nimm am besten Kontakt mit dem Autor Oidazaubara auf.
Wenn du diesen Artikel überarbeitest:
  • Bitte denke daran, die Angaben im Artikel durch geeignete Quellen zu belegen und zu prüfen, ob er auch anderweitig den Richtlinien der Wikipedia entspricht (siehe Wikipedia:Artikel).
  • Nach erfolgter Übersetzung kannst du diese Vorlage entfernen und den Artikel in den Artikelnamensraum verschieben. Die entstehende Weiterleitung kannst du schnelllöschen lassen.
  • Importe inaktiver Accounts, die länger als drei Monate völlig unbearbeitet sind, werden gelöscht.

Vorlage:Infobox companyHeroku ist eine Cloud-Platform as a service, die mehrere Programmiersprachen unterstützt und als Webanwendungs Deployment-Model fungiert.

Heroku, eine der ersten Cloud Computing Plattformen, befindet sich seit Juni 2007 in Entwicklung und unterstützte anfangs nur Ruby. Inzwischen unterstützt sie auch Java, Node.js, Scala, Clojure, Python, PHP und Go. [1][2] Aus diesem Grund gilt Heroku als polyglote Plattform, da sie ihren Entwicklern erlaubt Applikationen in verschiedenen Sprachen auf selbe Art und Weise zu builden, skalieren und auszuführen. 2012 wurde Heroku für $212 Millionen Dollar von Salesforce.com gekauft. [3]

Geschichte

Heroku wurde ursprünglich von James Lindenbaum[4], Adam Wiggins[5] und Orion Henry[6] entwickelt um Projekte, die mit der Ruby Plattform Rack kompatibel waren zu unterstützen.[7] Die Entwicklung des Prototypen hatte ungefähr sechs Monate gedauert. Danach hatte Heroku mit einigen Schwierigkeiten zu kämpfen aufgrund fehlender Marktlage, da viele Entwickler bereits ihre eigenen Tools und Umgebungen benutzten. Vorlage:Citation needed Im Januar 2009 erfolgte ein Relaunch, nachdem die Plattform innerhalb von drei Monaten von Grund auf neu entwickelt wurde. Im Oktober 2009 wurde Bryon Sebastian CEO von Heroku.[8] Am 08.Dezember 2010 akquirierte Salesforce.com Heroku als Tochterfirma. Am 12.Juli 2011 wurde Yukihiro "Matz" Matsumoto, der Lead-Designer der Programmiersprache Ruby (Programmiersprache), Chief Architect für Ruby.[9] Im selben Monat erweiterte Heroku sein Angebot um Support für Node.js und Clojure. Am 15. September 2011 stellten Heroku und Facebook in einer Kooperation Heroku für Facebook vor.[10] Momentan unterstützt Heroku die In-Memory Datenbank Redis[11][12] und standardmässig PostgreSQL.[13]

Etymologie

Der Name "Heroku" ist eine Verschmelzung des Englischen Wortes "heroic" und dem Wort "haiku" aus dem Japanischen.[14][15] Dies soll eine Anspielung sein auf Yukihiro Matsumoto, dem Entwickler von Ruby. Die Entwickler wollten keine im Vorhinein festgelegte Bedeutung für den Namen ihres Projekts und haben sich daher entschieden einen zu erfinden.

Architektur

Vorlage:Prose Vorlage:Howto Vorlage:MOS

Applikationen, die auf einem Heroku Server laufen nutzen den Heroku DNS-Server um auf die Applikations-Domain weiterzuleiten (normalerweise dem Schema "applicationname.herokuapp.com" folgend). Alle Applikations-Container[16], kurz "dynos"[17], sind über den sogenannten "dyno grid" verteilt, der aus mehreren Servern besteht. Herokus Git-Server verarbeitet einlangende Push-Befehle von berechtigten Nutzern für deren Applikations-Repositories.[18][19]

Eine schematische Darstellung der Heroku Funktionsweise

Herokus Funktionsweise kann in zwei grosse Kategorien unterteilt werden:

Deploy[20][21]

  • Die wichtigsten Resourcen sind der Source-Code, die dazugehörigen Dependencies und ein Procfile für das auszuführende Kommando.
  • Die Applikation wird an Heroku gesandt über eine der folgenden Möglichkeiten: Git, GitHub, Dropbox oder per API.
  • Es gibt so genannte "packets", die aus Applikation, Dependencies und der Programmiersprachen-Runtime "slugs" erzeugen. Diese werden auch "build-packs" genannt und sind zentraler Bestandteil des "slug compilation process".
  • Ein "slug" ist eine Kombination aus Source Code, Dependencies, Runtime und kompiliertem/generiertem Output des Build-Systems, bereit für die Ausführung.
  • Weiters gibt es "config vars", die unabhängig vom Source Code verändert werden können.
  • Add-ons sind spezialisierte Cloud Services von Dritten, die einfach zu einer Applikation hinzugefügt werden können, um ihre Funktionalität zu erweitern.
  • Ein Release-Build ist eine Kombination aus "slug", "config vars" und Add-ons.
  • Heroku verwaltet eine Logfile, den "append-only ledger", in dem alle Releases der Applikation festgehalten werden.

Runtime

  • Die wichtigste Komponenten, die auch die Runtime bereit stellen, sind die "dynos", welche isolierte, virtualisierte Unix-Container sind.
  • Die "Dyno-Formation" einer Applikation ist die Gesamtzahl aller momentan ausgeführten "dynos", aufgeteilt zwischen den verschiedenen aufgestellten Prozesstypen.
  • Der "dyno"-Manager ist verantwortlich für das Management aller "dynos" die auf Heroku laufen.
  • Applikationen die den gratis "dyno"-Typ nutzen gehen nach 30 Minuten Inaktivität in den Sleep-Modus. Der Einsatz mehrere Web-"dynos" oder anderer "dyno"-Typen verhindert diesen Modus.
  • "One-off dynos" sind temporäre "dynos" die ihre IO-Streams an ein lokales Terminal gebunden haben. Auf ihnen läuft der neueste Release.
  • Jeder "dyno" hat sein eigenes flüchtiges Dateisystem mit einer frischen Kopie des neues Release. Es kann als temporäres Scratchpad benutzt werden, Veränderungen am Filesytem werden nicht auf anderen "dynos" übertragen.
  • Logplex sammelt automatisch alle Logeinträge von allen "dynos" der Applikation, sowie von weiteren Komponenten wie z.B. Routers, und stellen damit eine einzelne Informationsquelle dar.
  • Um eine Applikation zu skalieren muss die Anzahl der "dynos" für jeden Prozesstypen angepasst werden.

Produkte

Vorlage:Prose Vorlage:Advert

Die Heroku Plattform
Das Heroku-Netzwerk führt die Applikationen ihrer Nutzer in virtuellen Containern aus, die wiederum das Runtime-Environment bereitstellen. Heroku nennt diese Container "dynos". Diese "dynos" unterstützen Node, Ruby, PHP, Go, Scala, Python, Java, Clojure. Heroku stellt auch "buildpacks" bereit, mit denen Entwickler auch Applikationen in weiteren Programmiersprachen deployen können. Die Entwickler können ihre Applikationen leicht und schnell skalieren indem sie entweder die Anzahl der "dynos" erhöhen, oder ihren Typen verändern.
Heroku Postgres
Heroku Postgres ist ein Cloud Database (DBaaS) Service von Heroku, der auf PostgreSQL basiert. Heroku Postgres verfügt über Features wie z.B. "continuous protection","Rollback", "hight availability", "forks", "followers" und "dataclips".
Heroku Redis
Heroku Redis ist eine angepasst Redis-Version von Heroku, mit dem Ziel einer besseren Entwickler-Experience. Es wird von Heroku administriert und als Service bereitgestellt. Es hilft dabei Instanzen über ein Command-Line-Interface zu verwalten, Daten mit Postgres zu verbinden um weiteren Analysen über diverse SQL-Tools anzustellen und ermöglicht dem Nutzer Performance-Monitoring.

See also

Vorlage:Too many see alsos

References

Vorlage:Reflist

External links

Vorlage:Commons category Vorlage:Cloud computing Vorlage:YC companies


  1. Heroku. Crunchbase. Abgerufen im March 2, 2016.
  2. About Heroku. Stack Overflow. Abgerufen im March 2, 2016.
  3. Salesforce.com Buys Heroku For $212 Million In Cash https://techcrunch.com/2010/12/08/breaking-salesforce-buys-heroku-for-212-million-in-cash/
  4. James Lindenbaum - Founder @ Heavybit - crunchbase. Abgerufen im 22 October 2016.
  5. Adam Wiggins. Abgerufen im 22 October 2016.
  6. https://www.linkedin.com/in/orion-henry-9056727
  7. Ruby on Rails Startup Heroku Gets $3 Million[1], Tech Crunch, 2008-05-08
  8. SourceLabs' Byron Sebastian Joins Heroku as CEO[2], Venture Beat, 2009-10-14
  9. Ruby’s Creator, Matz, Joins Heroku[3], Ruby Inside, 2011-07-12
  10. Facebook Partners With Heroku to Offer Developers Free Sample Application Hosting[4], Social Times, (Please provide a date or year)
  11. Six Things to Consider When Using Redis on Heroku. Redis Labs. Abgerufen im March 2, 2016.
  12. NoSQL, Heroku, and You[5], Heroku, 2010-07-20
  13. Rails Heroku Tutorial. RailsApps Project. Abgerufen im March 2, 2016.
  14. The term is merger of "Hero" and "Haiku". | Hacker News. In: news.ycombinator.com . Abgerufen am 5. August 2016.
  15. Douglas Drumond's answer to What does Heroku mean? - Quora. In: qr.ae . Abgerufen am 5. August 2016.
  16. What is application containerization (app containerization)? - Definition from WhatIs.com. Abgerufen im 22 October 2016.
  17. Dynos and the Dyno Manager - Heroku Dev Center. Abgerufen im 22 October 2016.
  18. Scalability: How does Heroku work? - Quora. Abgerufen im 22 October 2016.
  19. Deploying Node.js Apps on Heroku - Heroku Dev Center. Abgerufen im 22 October 2016.
  20. Heroku Working Model.
  21. Heroku Cloud Application Development. Packt Publishing Ltd., 2014.