DevOps & Monitoring

Portus-Gateway ersetzt Pingora durch Rama-Engine zur Reduzierung des Speicherverbrauchs

Portus Version 0.2.4 übernimmt den Rama-Network-Stack und erzielt im Vergleich zur bisherigen Basis auf Pingora eine bis zu 31 Prozent höhere Durchsatzrate sowie einen deutlich geringeren Speicherverbrauch.

Illustration eines Servers, der Speicher und Rechenleistung optimiert
Für diesen Artikel erstellte Illustration

Automatisch aus dem englischen Original übersetzt.

Das Open-Source-Projekt Portus, ein API- und AI-Gateway, hat die Version 0.2.4 veröffentlicht. Dies markiert eine wesentliche Änderung in der zugrunde liegenden Netzwerkinfrastruktur. Durch den Austausch des von Cloudflare entwickelten Pingora-Frameworks gegen die Rama-Engine berichten die Entwickler über erhebliche Verbesserungen bei der Ressourceneffizienz und der Geschwindigkeit der Anfrageverarbeitung. Diese Änderung beeinflusst, wie das Gateway Datenverkehr verarbeitet, Speicher verwaltet und innerhalb von Kubernetes oder in Standalone-Umgebungen skaliert.

Was passiert ist

Portus ist ein Open-Source-Gateway, das für die Verwaltung von API-Datenverkehr und Interaktionen mit KI-Modellen konzipiert ist. In früheren Releases basierte das Projekt auf Pingora 0.9, einem Hochleistungs-Proxy-Framework von Cloudflare. Nach Side-by-Side-Benchmarks auf identischer Hardware stellte das Portus-Team fest, dass die Rama-Engine 0.4 für ihre spezifische Architektur überlegene Leistungseigenschaften bot. Daher wird Rama in Version 0.2.4 zum Standard-Network-Stack.

Die Entscheidung wurde durch empirische Daten begründet, die am 15. September 2026 gesammelt wurden. Die Tests zeigten, dass Rama im Vergleich zu Pingora je nach Payload-Größe zwischen drei und 31 Prozent höheren Durchsatz lieferte. Für Betreiber großer Deployments war noch entscheidender, dass Rama zwei- bis zweieinhalbmal weniger Speicher verbrauchte. Diese Metriken überzeugten die Maintainer vom Wechsel des Standard-Engines, obwohl Pingora weiterhin für Nutzer mit spezifischen Legacy-Anforderungen unterstützt wird.

Neben dem Austausch des Network-Stacks stärkt das Release die architektonische Trennung zwischen Steuerlogik und Datenverarbeitung. Das System nutzt einen Shared Store, um Konfigurationsänderungen in ein Protobuf-Format zu kompilieren, das anschließend über mTLS-gRPC an die Data Planes verteilt wird. Dies stellt sicher, dass Konfigurationsupdates atomar angewendet werden, ohne aktive Verbindungen zu unterbrechen – eine kritische Funktion für die Aufrechterhaltung der Verfügbarkeit während Rolling Updates oder Policy-Änderungen.

Wichtige Details

  • Änderung des Standard-Engines: Version 0.2.4 wechselt den Standard-Network-Stack von Pingora 0.9 zu Rama 0.4.
  • Leistungssteigerungen: Rama zeigt über alle getesteten Payload-Größen hinweg eine Steigerung des Durchsatzes um drei bis 31 Prozent.
  • Speichereffizienz: Der neue Stack verbraucht zwei- bis zweieinhalbmal weniger Speicher als die vorherige Implementierung.
  • Atomare Reloads: Konfigurationsupdates treffen über sichere gRPC-Kanäle ein und werden ausgetauscht, ohne bestehende Verbindungen zu unterbrechen.
  • Standalone-Modus: Das Gateway kann außerhalb von Kubernetes mit einer einzelnen YAML-Datei betrieben werden, inklusive integrierter ACME-Zertifikatsverwaltung.
  • Isolation des AI-Ledgers: Nutzungsüberwachung und Schlüsselmanagement laufen auf einem separaten Ledger-Service, der nicht im kritischen Anfragepfad liegt.

Hintergrund

Um die Bedeutung dieser Änderung zu verstehen, hilft es, zwischen Control Plane und Data Plane in modernen Gateways zu unterscheiden. Das Control Plane verwaltet Konfigurationen wie Routing-Regeln und Sicherheitspolicies, während das Data Plane den tatsächlichen Netzwerkdatenverkehr abwickelt. Portus entkoppelt diese Schichten, sodass die Kernlogik unabhängig vom zugrunde liegenden Netzwerkframework bleibt. Diese Modularität ermöglichte es dem Team, verschiedene Engines wie Pingora und Rama zu testen, ohne die gesamte Anwendung neu schreiben zu müssen.

Rama und Pingora sind beide Rust-basierte Frameworks, die für hohe Leistung bekannt sind, optimieren jedoch unterschiedliche Trade-offs. Pingora ist in massiven globalen Netzwerken erprobt („battle-tested“), während Rama oft für seine Flexibilität und Low-Level-Kontrolle gelobt wird. Durch die Abstraktion des Network-Stacks kann Portus die spezifischen Stärken jeder Engine nutzen. In diesem Fall passte die Leichtgewichtigkeit von Rama besser zu den Anforderungen des Gateways an effizienten Speicherverbrauch und schnelle lokale Lookups für Authentifizierung und Rate Limiting.

Warum das wichtig ist

Für Teams, die Self-Hosted-Infrastrukturen betreiben, bedeutet Speichereffizienz direkt Kosteneinsparungen und Stabilität. Eine Reduzierung des Speicherverbrauchs um den Faktor zwei oder mehr ermöglicht es Organisationen, mehr Gateway-Instanzen auf derselben Hardware zu betreiben oder ihre virtuellen Maschinen zu verkleinern, ohne die Leistung zu opfern. Dies ist besonders relevant für AI-Gateways, die oft große Payloads verarbeiten und schnelle Token-Budget-Prüfungen erfordern. Geringerer Memory-Overhead reduziert das Risiko von Out-of-Memory-Crashes während Traffic-Spitzen.

Der Mechanismus für atomare Konfigurations-Reloads adressiert zudem einen häufigen Schmerzpunkt im DevOps-Bereich: Downtime während Updates. Traditionelle Proxies erfordern oft Neustarts oder kurze Unterbrechungen bei der Anwendung neuer TLS-Zertifikate oder Routing-Regeln. Der Ansatz von Portus stellt sicher, dass Verbindungen während dieser Änderungen nie unterbrochen werden. Für IT-Leads, die Service Level Agreements (SLAs) verwalten, minimiert diese Zuverlässigkeit den operativen Aufwand für Wartungsfenster und reduziert das Risiko benutzerseitiger Fehler bei routinemäßigen Konfigurationsanpassungen.

Darüber hinaus senkt die Möglichkeit, das Gateway im Standalone-Modus mit einer einfachen YAML-Datei zu betreiben, die Einstiegshürde für kleinere Teams. Nicht jede Organisation benötigt einen vollständigen Kubernetes-Cluster, um von fortgeschrittenen API-Management-Funktionen wie der automatischen Erneuerung von Let's Encrypt-Zertifikaten zu profitieren. Diese Flexibilität ermöglicht es Entwicklern, konsistente Routing- und Sicherheitspolicies über diverse Umgebungen hinweg bereitzustellen, von lokalen Docker Compose Setups bis hin zu Produktions-Virtual-Machines.

Was Sie tun können

  • Benchmark Ihrer aktuellen Umgebung: Wenn Sie Portus 0.2.3 oder älter verwenden, testen Sie das Upgrade auf 0.2.4 in einer Staging-Umgebung, um die Speichereinsparungen in Ihrem spezifischen Workload zu verifizieren.
  • Überprüfung der Standalone-Konfigurationen: Evaluieren Sie, ob Nicht-Kubernetes-Services vom Standalone-YAML-Modus profitieren könnten, insbesondere für Edge Cases, in denen ein voller Cluster Overkill wäre.
  • Überwachung der Connection Drains: Beobachten Sie, wie sich das SIGTERM-Drain-Verhalten auf Ihre Load Balancer während Deployments auswirkt, um einen reibungslosen Traffic-Shift sicherzustellen.
  • Prüfung der AI-Ledger-Einstellungen: Wenn Sie die AI-Gateway-Funktionen nutzen, überprüfen Sie die opt-in Ledger-Konfiguration, um sicherzustellen, dass Token-Budgets und Key-Fetching Ihren Sicherheitspolicies entsprechen.
  • Validierung der TLS-Automatisierung: Testen Sie den integrierten ACME-Client, um zu bestätigen, dass Zertifikatserneuerungen bei zwei Dritteln ihrer Lebensdauer ohne manuelle Intervention erfolgen.
  • Planung für Multi-Round-Tests: Beachten Sie, dass die aktuellen Benchmarks aus einer einzigen Runde stammen; bereiten Sie sich darauf vor, die bevorstehenden Daten aus einem Drei-Runden-Vergleich für robustere Performance-Einblicke zu prüfen.

Weitere News

Alle News