Was ist Heroku? Ich habe das Gefühl, dass mir das grundlegende Vokabular fehlt, wenn ich mir die Seiten anschaue. Bei Heroku habe ich mir zusammengereimt, dass das ein Backend Hoster ist, wie auch die Google App Engine oder halt Amazon. Also sind das ein Rudel VMs und Server, die man irgendwie wegabstrahiert hat, so dass ich dort nur noch die Skripte meiner Wahl deploye und die dann dort skalierbar laufen? Egal, wie groß sie werden?
Die Frage ist was du unter Skalierbarkeit verstehst. Dein "Skript" wird nicht von einer beliebig starken Maschine (vertikale Skalierung) ausgeführt. Es wird mehrfach ausgeführt (horizontale Skalierung). Du musst selber darauf achten das nicht irgendwo ein Nadelöhr entsteht und sich die Instanzen gegenseitig bremsen. Wie immer bei mehreren Aktoren ist das Datenzugriff.
Dann bietet der mir da z.B. PostgresQL an - prima, ne Datenbank werde ich auf jeden Fall brauchen. Läuft dort dann ein SQL-Server, den sich all die Millionen Apps teilen? Oder ist das auch irgendwie abstrahiert, so dass ich gar nicht merke, wenn meine Datenbank auf ein größeres Schiff umzieht?
Die bezahlten Postgres Datenbanken sind vermutlich eigene Server. Die kosten aber auch so viel als wenn man einen ganzen Server mietet. Dort hast du auch keine dynamische Skalierung, da SQL im Allgemeinen nicht horizontal skalierbar ist. Das heißt irgendwann ist da Ende mit der Leistung. Da musst du selber drum herum bauen und mehrere Server einsetzen oder direkt auf etwas horizontal skalierbares setzen. Das ist die Spielwiese für NoSQL, Datastores, Key-Value Stores etc.
Und wenn ich mir dann dort irgendwelche Addons dazumiete, was sind die dann? Was passiert, wenn ich mir da z.B.
oAuth.io lade? Ich hätte gedacht, dass dann ein Rudel zusätzlicher Skripte in meine Instanz dort geschaufelt wird. Aber wie machen die dann die Quotas und die Abrechnung? Geht dann jeder einzelne meiner Requests zusätzlich noch über die privaten Server irgendwelcher kleinen Technologie-Anbieter?
Und irgendwie habe ich Angst vor Kontrollverlust. Ich kann mir da zwar mit irgendwelchen Addons die benötigte Funktionalität zusammenklicken, aber mir graut davor, wenn dort eine Zeile mal nicht mit den anderen zusammenarbeiten will. An die eingekauften Zeilen komme ich ja wahrscheinlich nicht ran, sonst könnte ich mir die Hälfte der dort angebotenen Addons kostenlos machen, indem ich einfach den Code rauskopiere.
Die meisten Addons die ich gesehen habe sind Dienste die man dann selber anbinden muss bzw. den Beispiel Code dafür selber einbauen muss. Bei oAuth.io gehen die Auth Vorgänge wirklich zu dem Anbieter und der bietet dir vom Auth Provider unabhängig Informationen wie Name, E-Mail etc. Die Addons installieren auch nichts in deine Worker. Sie bieten höchstens Umgebungsvariablen mit einer URL für die REST API etc.