Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Webseite zu analysieren. Außerdem geben wir Informationen zu Ihrer Verwendung unserer Webseite an unsere Partner für soziale Medien, Webung und Analysen weiter. Unsere Partner führen diese Informationen möglicherweise mit weiteren Daten zusammen, die Sie ihnen bereitgestellt haben oder die sie im Rahmen Ihrer Nutzung der Dienste gesammelt haben. Sie akzeptieren unsere Cookies, wenn sie "Cookies zulassen" klicken und damit fortfahren diese Webseite zu nutzen.

Cookies zulassen Datenschutzerklärung

Heroku Plattform

Heroku ist eine Cloud-Plattform und funktioniert als Platform-as-a-service (PaaS). Heroku hilft Programmierern und Unternehmen dabei Anwendungen (Apps) zu installieren, zu überwachen und zu skalieren ohne das tiefgründige Kenntnisse von System-Administration nötig sind. Aktuell in 2017 werden alle Anwendungen die mit Ruby, Java, Node.js, PHP, Go, Scala, Play oder Clojure programmiert werden unterstützt.

Coding

Eine kleine Historie 

James Lindenbaum, Orion Henry und Adam Wiggins gründeten 2007 Heroku und wurden bereits 2010 von Salesforce aufgekauft. Der Unternehmenssitz, wie kann es anders sein, ist in San Francisco. Zu Beginn unterstützte die Cloud-Platform nur Anwendungen die mit RubyOnRails geschrieben wurden. Um das Jahr 2010 gab es einen regelrechten RubyOnRails Boom und Heroku profitierte natürlich davon. Laut des Unternehmens halfen sie zum damaligen Zeitpunkt bereits Millionen von Programmierern bei der Erstellungen von Apps auf Amazon Web Services (AWS). Seit der Übernahme von Salesforce integrierten sie immer mehr cloud-basierte Services, unterstützten mehr und mehr Programmiersprachen und änderten nicht nur einmal Preisstruktur und Aussehen der Benutzeroberfläche.


Bildschirmfoto-2017-09-17-um-12.41.59.jpg#asset:361

Screenshot Heroku.com

Funktionalitäten

Heroku ist anwendungsortientiert

Die Hauptzielgruppe sind Programmierer, Programmier-Teams und Softwareentwicklungsfirmen die sich nicht auf die Bereitstellung und Einrichtung von Server Infrastrukturen kümmern, sondern sich auf die Entwicklung von Anwendungen konzentrieren möchten. Die cloud-basierte Umgebung umfasst Benutzer-Management, Entwicklung, Testen, Qualitätsmanagement und Handhabung von Test- und Produktivsystemen.

Einfach Skalierung von Apps

Ein großer Vorteil von Heroku ist die Möglichkeit per Mausklick weitere Ressourcen (dyno) für eine Anwendung dazu zu buchen. Eine Auto-Skalierung von Dynos ist ebenfalls möglich und spart so Kosten.

heroku-scaling.jpg#asset:363Screenshot selection of dynos

Benutzerfreundliche Umgebung

Mittlerweile unterstützt Heroku viele verschiedene Programmiersprachen und Integrationen. So kann praktisch jeder Programmierer das passende Set mit Programmiersprache, Datenbank und Services für die Anwendung aussuchen. Herausragend gegenüber der Konkurrenz sind auch die Dokumentationen zu den einzelnen Funktionen und Erstellung von Anwendungen für z.B. RubyOnRails, Spring oder die Einrichtung und Benutzung einer Datenbank wie z.B. Postgres oder MongoDB.

Sicheres und nachvollziehbares Deployment

Heroku benutzt für das deployment von Anwendungen GIT Versionskontrolle. Dadurch wird ein sicherer und nachvollziehbarer Deployment Prozess bereitgestellt, der dem Entwicklungs-Workflow gerecht wird. 

Test- und Produktivsysteme (Staging & Production)

Heroku vereinfacht die Handhabung von Test- und Produktivsystemem (Staging & Production). Das Testsystem dient dabei als deployment Server für Entwickler und ebenfalls als Testsystem für die Qualitätssicherung. Der aktuelle Stand des Testsystems lässt sich dann per Mausklick auf das Produktivsystem übertragen.

Kontinuierliche Integration (Continuous Integration)

Ein weiterer nützlicher Service is die Continuous Integration für Anwendungen. Seit der Einrichtung haben wir in unserem Team bereits viel Zeit und Fehler eingespart! Auf einfache Weise lassen sich GitHub Repository, Codeship oder andere CI-Services mit der Deployment-Pipline (Staging & Production) verbinden, visuell darstellen und vereinfacht den allgemeinen Prozess.

Heroku Marktplatz

Heroku ist mittlerweile zu einem der größten Marktplätze für Softwareentwicklungs-Services geworden. Viele Dienste lassen sich per Mausklick installieren und mit einem kleinen Skript für die Anwendung integrieren. Die Services umfassen verschiedene Datenbanken, Überwachung-Tools, Logging-Services, Email/SMS Versand, Caching, Fehlerbehandlung, Content Management Systeme (CMS), Suchfunktionen, Tools für Metriken und Analysen, Netzwerk-Services, Fehlermeldungen und Benachrichtigung, Management von Benutzern, Sicherheit, Bild- und Videoverarbeitung etc.

heroku-market.jpg#asset:364

Screenshot heroku Marketplace

Heroku Enterprise

Heroku hat mittlerweile eine Umgebung geschaffen, in der sich auch größere Unternehmen wohlfühlen. Heroku Enterprise hilft Teams dabei Anwendungen in Kollaboration zu entwickeln und bringt eine mehrstufiges Benutzermanagement mit. Mit Heroku Enterprise genießt man außerdem einen besseren Support, der ansonsten bei der Vielzahl an Entwicklern leider etwas zu kurz kommt.

Gibt es auch Nachteile?

Natürlich haben die vielen Vorteile bei der Benutzung der Plattform auch seine Nachteile. Ein großer Nachteil ist der Kostenfaktor! Bis zu einem bestimmten Level kann man den Hobby Dyno von Heroku nutzen mit sehr geringen Kosten von 7$/Monat. Möchte man aber bereits ein ordentliches Testsystem bereitstellen mit größerer Postgres-Datenbank und 1-2 externe Services, dann können die Kosten im Monat schnell auf 50-80$/Monat klettern. Parallel zum Testsystem läuft natürlich noch das Produktivsystem mit einem ähnlichen Preis für Dyno(s) und Datenbank pro Monat. 

Ein weitere Nachteil ist der abgeschlossene Bereich der Anwendung, zu dem man keinen Zugriff per SSH erhält. Man muss also komplett auf die Einstellungen und Installationskripte von Heroku und Drittanbietern vertrauen. (Vielleicht aber auch nicht so schlecht, da sonst Entwickler ohne entsprechendes KnowHow ständig ihre Apps abschießen). Mit Heroku-CLI kann man sich zumindest auf einer Art Konsole für seine App bewegen und der Aufbau einer Verbindung zu einer Datenbank ist ebenfalls möglich.

Lohnt sich Heroku für mich, mein Unternehmen, mein Startup oder meine Kunden?

Wir denken, dass Heroku die ideale Plattform für alle ist, die es sich nicht leisten können entsprechende Kompetenzen im Bereich der System-Administration aufzubauen oder einzukaufen. Sollten jedoch die monatlichen Kosten der App sich einem Gehalt eines System-Administrators nähern, dann halten wir es für sinnvoll eine eigene Infrastruktur aufzubauen.

Gibt es bereits einen System-Administrator im Team oder in ihrem Unternehmen, dann ist die Benutzung einer eigenen Serverumgebung für Ihre Anwendung wohl eher die richtige Wahl. Dennoch sollten Sie Heroku ihren Server-Admins vorführen und die Anwendungen testweise entwickeln und deployen lassen. Auch wenn man den Dienst am Ende nicht benutzt, kann man jedoch in Sachen Benutzerfreundlichkeit einiges von Heroku lernen.

Welche Alternativen gibt es zu heroku?

Nicht nur Salesforce hat das potential von cloud-basierten Entwicklungsumgbungen erkannt. Seit dem Start von Heroku bis heute (2017) entwickeln verschiedene Firmen eine „Platform-as-a-Service" (Paas). Je nach Ausrichtung der Community oder des Unternehmens wird ein einfacher Workflow für die Entwicklung von Apps versprochen. Meist gibt es eine Vielzahl an Integrationsmöglichkeiten von verschiedenen Services. Hier eine kleine Übersicht:

OpenShift - Open Source, Auto-skalierung, cloud-basiert, git

DigitalOcean - SSD Cloud-Server, dedizierter IP und Root-Zugriff

Google App Engine - Deploy von Apps in Googles Datenzentren und Infrastruktur, früher Hauptfokus Java

Microsoft Azure - Einfaches hosting und Skalierung mit Microsoft Azure und SQL Azure

Nanobox - Starke Konkurrenz zur Heroku Umgebung mit weniger Kosten und ähnlichen Funktionen

Cloudfoundry - Open Source, Paas für Java, Ruby, Python und Node.js

CleverCloud - Sichere Infrastruktur, Auto-Skalierung, faire Kostenstruktur und Integration von vielen Services

EN