Echt-Serverless Event-Infrastruktur

Es laesst sich nicht leugnen, dass die neuen Apple M1-MacBooks beeindruckend sind. Ich wuerde mich nicht als Fanboy bezeichnen, aber diese Maschinen sind grossartig - die Prozessoren schneiden in vielen Bereichen sehr gut ab.

Natuerlich gibt es ein “Aber”: Nicht alles ist bereit fuer einen nahtlosen Uebergang von Intel zu ARM.

Als starker Docker-Nutzer habe ich auf die harte Tour gelernt, dass das Ausfuehren von Kafka auf meiner lokalen Docker-Instanz auf ARM nicht unkompliziert war. Die Suche nach Kafka-Docker-Images mit ARM-Unterstuetzung blieb erfolglos.

Schau dir diese GitHub-Issues an und du wirst sehen, was ich meine:

Vielleicht gibt es Unterstuetzung, wenn dieser Artikel veroeffentlicht wird.

Zeit, nach anderen Loesungen zu suchen.

Ich hatte noch nie viel eine Cloud-basierte Kafka-Loesung ausprobiert; meine Projekte verliessen sich normalerweise auf lokale oder On-Premises-Setups. Ich bin auch vorsichtig bei Cloud-Anbietern, die erfordern, dass man im Voraus ein Kontingent kauft - wenn ein Projekt endet, liegt dieses Geld oft einfach ungenutzt herum.

Drei Gruende fuer die Verwendung von Upstash

Ich wollte eine On-Demand-Loesung mit nutzungsbasierter Abrechnung ohne Verwaltung von Hardware, VMs oder Docker-Containern.

Zweitens sollte es nichts kosten, wenn es nicht benutzt wird - es sollte auf Null skalieren, was bedeutet, dass ueberhaupt nichts zu bezahlen ist.

Drittens sollte es kostenlos zum Ausprobieren fuer Nebenprojekte mit geringem Traffic und zu Lernzwecken sein.

Die Loesung ist Upstash, ein echtes Serverless-Angebot fuer Kafka und Redis.

Siehe ihren Beitrag “AWS MSK and Confluent. Are they really Serverless?” fuer einen detaillierten Vergleich von Cloud-Anbietern und Kostencharakteristiken.

Erstellen eines Clusters und eines Topics

Nach dem Erstellen eines Kontos (keine Kreditkarte erforderlich) gehe zum Kafka-Bereich und klicke auf “Create Cluster”.

Gib einen Namen ein, waehle die Region und waehle Single- oder Multi-Zone.

Nachdem der Cluster erstellt wurde, erstelle dein erstes Topic.

Mach dir keine Sorgen ueber die Optionen - verwende die Standardwerte und passe sie spaeter nach Bedarf an.

Wenn du fertig bist, wird die Cluster-Uebersichtsseite angezeigt. Diese Seite bietet alle Informationen, die zum Verbinden mit dem Cluster erforderlich sind. Wir werden sie im naechsten Abschnitt benoetigen.

Jetzt, da unser Kafka-Cluster eingerichtet ist, werden wir ihn testen.

Testen des Clusters

Upstash bietet fertige Beispiele, die du kopieren und einfuegen kannst.

Die Werte fuer bootstrap.servers und sasl.jaas.config werden dynamisch fuer deinen Cluster generiert. Kopiere nicht die Konfiguration unten - sie gehoerte zu meinem Tutorial-Cluster, den ich nach dem Schreiben geloescht habe.

Du musst keinen Code fuer einen schnellen Smoke-Test schreiben. Verwende ihre REST-API mit curl oder Postman.

Das Upstash-Team liefert vollstaendige curl-Befehle zum Produzieren und Konsumieren von Beispielnachrichten.

Also, lass es uns versuchen:

Links habe ich den Producer-Befehl ausgefuehrt und rechts den Consumer. Ich habe ein Event zu tutorial-topic veroeffentlicht; es war nicht meine erste Nachricht - die Nachricht hatte Offset 18.

Fazit

Mein kurzes Experiment mit einer echten Serverless-Kafka-Infrastruktur war ein Erfolg.

Alle meine Anforderungen wurden erfuellt und das Ausprobieren hat mich nichts gekostet.

Ich werde den Service weiter testen und dich auf dem Laufenden halten.

Danke fuers Lesen!