Zum Hauptinhalt springen
Version: 1.89.x (Q2 26)

Codesphere Reactives

Teil von Runtimes

Dies ist eine detaillierte Anleitung für Codesphere Reactives. Für einen Überblick über alle Runtime-Typen und die Auswahl zwischen ihnen siehe Runtimes Overview.

Codesphere Reactives sind eine Runtime-Umgebung, mit der die Anwendungsumgebung über Standard-Bash-Befehle definiert werden kann – genau wie auf einer lokalen Maschine oder VM – während die Plattform die gesamte Infrastrukturverwaltung automatisch übernimmt. Damit erhält man die Freiheit einer imperativen Linux-Konfiguration, ohne Container bauen, verwalten oder überhaupt bedenken zu müssen. Die Runtime verbindet die Leistungsfähigkeit traditioneller Server-Umgebungen mit automatischer Skalierung und minimalem Infrastruktur-Overhead, wenn sie nicht läuft.

Überblick

Anders als klassische Serverless-Plattformen, die zustandslos und auf kurzlebige Funktionsausführungen beschränkt sind, oder herkömmliche VMs, die kontinuierlich Ressourcen verbrauchen, vereinen Codesphere Reactives die Vorteile beider Paradigmen:

MerkmalTraditionelles ServerlessTraditionelle VMsCodesphere Reactives
UmgebungskonfigurationNein – eingeschränkte RuntimesJa – vollständige Betriebssystemverwaltung erforderlichJa – Standard-Bash-Befehle
ZustandspersistenzNein – zustandslosJa – vollständiger ZustandJa – gemeinsames Dateisystem
RessourceneffizienzJa – Bezahlung nach NutzungNein – läuft dauerhaftJa – abschaltbar bei Nichtnutzung
StartzeitSekundenMinutenSekunden
Langlaufende ProzesseNein – ZeitlimitsJa – unbegrenztJa – unbegrenzt
UmgebungskontrolleNein – begrenztJa – volle KontrolleJa – flexibel über Nix
InfrastrukturverwaltungJa – automatischNein – manuelle Einrichtung & WartungJa – automatisch

Architektur

Codesphere Reactives sind voll funktionsfähige Ubuntu-Container nach offenen Standards, die mithilfe unserer patentierten Deployment-Orchestrierung für verbesserte Startleistung orchestriert werden. Für Private-Cloud-Deployments kann das Basisimage von Organisationsadministratoren frei angepasst werden. Unsere Architektur ermöglicht die schnellen Startzeiten, die Reactives zu der Technologie machen, die alle Codesphere Workspace-Cockpit-Deployments antreibt. Jede Instanz erhält ein Netzwerk-Dateisystem-Volume, das über Neustarts und Replikate hinweg erhalten bleibt, sodass ins Dateisystem geschrieben werden kann wie auf einer lokalen Maschine. Im Leerlauf skalieren Reactives automatisch auf null herunter, wodurch Rechenressourcen freigegeben werden, während der Zustand des Dateisystems erhalten bleibt. Bei der nächsten Anfrage starten sie aus einem vorgewärmten Pool neu.

Architektur der Reactive Runtime

Entsprechende barrierefreie Textbeschreibung

Zentrale Komponenten

Gemeinsames Netzwerk-Dateisystem

Jede Reactive hat Zugriff auf ein leistungsstarkes Netzwerk-Dateisystem, das persistenten Speicher über Neustarts und Replikate hinweg bereitstellt. Beliebige Dateien oder Verzeichnisse aus dem Netzwerk-Dateisystem können in jedes beliebige Ziel im Container eingebunden werden. Standardmäßig werden Dateien in /home/user/app erhalten, während andere Speicherorte flüchtigen Speicher verwenden.

Ressourcenverwaltung

Gepoolte Compute-Instanzen über mehrere Knoten hinweg ermöglichen einen sofortigen Start und eine automatische Freigabe von Ressourcen während Leerlaufzeiten. Ungenutzte Ressourcen stehen anderen Workloads sofort zur Verfügung, und eine Wakeup-Logik startet Dienste bedarfsgerecht neu.

Kubernetes-basierte Orchestrierung

Aufgebaut auf Kubernetes mit Health-Monitoring, Load Balancing, Auto-Scaling und geordnetem Herunterfahren – alles von der Plattform verwaltet, ohne dass Kubernetes-Kenntnisse erforderlich sind.

Wann Codesphere Reactives verwendet werden sollten

Anwendungsfälle in der Entwicklung

Reactives eignen sich besonders gut für die Entwicklung, da Code skalierbar ausgeführt werden kann, ohne Container-Images ständig neu bauen zu müssen. Das macht Iterationen schnell und effizient:

  • Schnelles Prototyping und Testen
  • Schnelle Abhängigkeitsänderungen ohne Docker-/Container-Image-Neubau
  • Sofortige Codeänderungen mit Hot Reload
  • Skalierbare Entwicklungsumgebungen, die die Produktion widerspiegeln

Anwendungsfälle in der Produktion

Reactives werden in der Produktion von Kunden eingesetzt, die auf über 70 Replikate skalieren, sowie von großen Unternehmen, die den einfachen Einsatz und den minimalen DevOps-Overhead schätzen:

  • Web-Services und APIs mit automatischer Skalierung
  • Microservices-Architekturen
  • Zustandsbehaftete Anwendungen mit Bedarf an persistentem Speicher
  • Services mit geringem bis hohem Traffic bei effizienter Ressourcennutzung
  • Kostensensitive Workloads, die von der Abschaltung bei Nichtnutzung profitieren

Migration von VMs

Reactives eignen sich gut für Anwendungen, die von traditionellen VMs migrieren, insbesondere wenn:

  • die Anwendung ohne Root-Zugriff laufen kann
  • lokale Abhängigkeiten (installiert über Nix oder Paketmanager) ausreichend sind
  • die Modernisierung ohne umfangreiches Refactoring erfolgen soll

Überlegungen für den Produktionseinsatz

Beim Einsatz von Reactives in der Produktion sollte die Reproduzierbarkeit sichergestellt werden durch:

  • explizites Fixieren von Abhängigkeitsversionen in den Prepare-Schritten
  • Dokumentation aller Anwendungs-Setup-Schritte in der ci.yml
  • Testen des vollständigen Prepare- und Run-Zyklus zur Sicherstellung der Konsistenz
  • Verwendung von Nix für eine deterministische Installation von Abhängigkeiten

Wann Managed Containers stattdessen in Betracht gezogen werden sollten

Managed Containers sollten verwendet werden, wenn:

  • ein bestimmtes Basis-Betriebssystem oder eine bestimmte Distribution benötigt wird
  • bereits vorhandene OCI-Images genutzt werden sollen
  • Abhängigkeiten für garantierte Reproduzierbarkeit vorab eingebacken werden sollen
  • bestimmte systemnahe Pakete benötigt werden, die über Nix nicht verfügbar sind

Konfiguration & Lebenszyklus

Codesphere Reactives werden über die Datei ci.yml im Repository konfiguriert. Umfassende Anleitungen zur Konfiguration und Verwaltung von Reactives finden sich hier: