Anhang A. Space Beaver Fallstudie: Actors, Kubernetes und mehr

Das Space Beaver Projekt (von Pigs Can Fly Labs) nutzt den Satellitendienst von Swarm und das Simple Mail Transfer Protocol (SMTP), um das anzubieten, was man höflich als wertbewusstes (aka billiges) Off-Grid Messaging bezeichnet.1 Der erste Entwurf der Kernarchitektur von Space Beaver wurde mit Scala und Akka erstellt, aber dann sind wir zu Ray gewechselt. Indem wir Ray mit Python anstelle von Akka mit Scala verwendeten, konnten wir das objektrelationale Mapping (ORM) von der Website wiederverwenden und die Bereitstellung vereinfachen.

Es ist zwar möglich, Akka-Anwendungen auf Kubernetes einzusetzen, aber es ist (nach Holdens Meinung) wesentlich komplizierter als die gleiche Aufgabe mit Ray zu bewältigen.2 In diesem Anhang gehen wir das allgemeine Design des Space Beaver Backends und den Code für die verschiedenen Akteure durch und zeigen, wie man es (und ähnliche Anwendungen) einsetzt.

Hinweis

Den Code für diese Fallstudie findest du im GitHub-Repositorium von Pigs Can Fly Labs.

High-Level-Design

Space Beavers Kernanforderung ist es, als Brücke zwischen E-Mail (über SMTP), SMS (über Twilio) und den Satelliten-APIs von Swarm zu dienen. Die meisten dieser Funktionen erfordern ein gewisses Maß an Status, wie z. B. den Betrieb eines SMTP-Servers, aber die ausgehenden Mails können ohne Status implementiert werden. Abbildung A-1 zeigt eine grobe Skizze des Designs.

Abbildung A-1. Akteur-Layout

Umsetzung

Jetzt, wo ...

Get Python mit Ray skalieren now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.