Managed Containers
Teil von Runtimes
Dies ist eine detaillierte Anleitung für Managed Containers. Für einen Überblick über alle Runtime-Typen und wie man zwischen ihnen wählt, siehe Runtimes Übersicht. Um die Unterschiede zwischen Reactives und Managed Containers zu verstehen, siehe auch Codesphere Reactives.
Managed Containers ermöglichen es, eigene OCI-Images in Codesphere einzubringen und dabei die Orchestrierungs-, Netzwerk- und Monitoring-Funktionen der Plattform zu nutzen. Dieser Runtime-Typ verwendet dieselbe zugrunde liegende Infrastruktur wie Codesphere Reactives, erlaubt aber die Definition eigener Images und das Vorbacken von Abhängigkeiten über OCI-Images.
Überblick
Managed Containers schlagen eine Brücke zwischen der Einfachheit von Codesphere Reactives und der Flexibilität eigener Container-Images:
| Funktion | Codesphere Reactives | Managed Containers |
|---|---|---|
| Basis-Image | Gemeinsames Codesphere Ubuntu (anpassbar für Private Cloud) | Eigenes OCI-Image |
| Startzeit | Millisekunden | Sekunden (abhängig von der Image-Größe) |
| Abhängigkeiten | Lokal (npm-Pakete, Python-Pakete usw.) oder Nix | Vorgebacken im OCI-Image |
| OS-Distribution | Ubuntu oder vom Organisations-Admin festgelegt | Beliebig (Alpine, Debian usw.) |
| Image Registry | Nicht zutreffend | Docker Hub, ECR, private Registries |
| Orchestrierung | Vollständige Plattformfunktionen | Vollständige Plattformfunktionen |
| Filesystem-Zugriff | Anpassbares gemeinsames Netzwerk-Dateisystem | Anpassbares gemeinsames Netzwerk-Dateisystem |
| Off-when-unused | Ja | Ja |
| Skalierung & Load Balancing | Ja | Ja |
| Plattformintegration | Integriert | Zur Laufzeit |
Architektur
Managed Containers nutzen dieselbe Orchestrierungsplattform wie Reactives, mit dem wesentlichen Unterschied bei der Quelle des Container-Images:

Entsprechende barrierefreie Textbeschreibung
Wichtige Komponenten
1. Eigenes Container-Image
- Definition eines eigenen Basis-Images über ein Dockerfile
- Abrufbar von Docker Hub, ECR, GCR oder privaten Registries
- Vorbacken aller Systemabhängigkeiten und Pakete
- Vollständige Kontrolle über OS-Distribution und Version
2. Plattform-Orchestrierung
- Dieselbe Kubernetes-basierte Orchestrierung wie bei Reactives
- Health-Monitoring, Load Balancing und Auto-Scaling
- Off-when-unused-Funktionen für Ressourceneffizienz
- Codesphere-Agent zur Laufzeit integriert für Plattformfunktionen
3. Gemeinsames Netzwerk-Dateisystem
- Identischer Filesystem-Zugriff wie bei Reactives
- Beliebige Dateien oder Verzeichnisse an beliebige Ziele im Container mounten
- Standard-Mount unter
/home/user/appfür persistente Speicherung - Dieselben Best Practices gelten (Schreiben ins app-Verzeichnis, gleichzeitige Schreibzugriffe vermeiden)
4. Image Pull & Start
- Container-Images werden beim ersten Start aus der Registry gezogen
- Nachfolgende Starts können gecachte Images verwenden (abhängig vom Cluster-Zustand)
- Startzeit typischerweise im Sekundenbereich statt Millisekunden bei Reactives
- Trade-off für vollständige Image-Anpassung
Wann Managed Containers verwenden
Managed Containers eignen sich ideal für:
- Vorhandene OCI-Images/Dockerfiles – Wiederverwendung bestehender Container-Definitionen
- Spezifische Anforderungen an das Basis-OS – Alpine, Debian, benutzerdefinierte Distributionen
- Komplexe Abhängigkeiten – Systempakete, die am besten über ein Dockerfile verwaltet werden
- Open-Source-Projekte – Bereits containerisierte Anwendungen
- Registry-basierte Workflows – CI/CD, das Images in Registries pusht
Codesphere Reactives sind stattdessen sinnvoll, wenn:
- kein spezifisches Basis-Image benötigt wird
- eine schnellere Startzeit entscheidend ist
- eine Installation von Abhängigkeiten zur Laufzeit über Nix bevorzugt wird
- ein neues Greenfield-Projekt gestartet wird
Gemeinsamkeiten mit Codesphere Reactives
Beide Runtime-Typen teilen sich dieselben zugrunde liegenden Plattformfunktionen:
| Funktion | Beide Runtimes |
|---|---|
| Filesystem-Zugriff | Gemeinsames Netzwerk-Dateisystem unter /home/user/app |
| Off-when-unused | Automatische Freigabe von Ressourcen während Leerlaufzeiten |
| Skalierung | Horizontal (Replicas) und vertikal (Plans) |
| Load Balancing | Automatisch über den Landscape Router |
| Health-Monitoring | Konfigurierbare Health-Checks und Auto-Restart |
| Privates Networking | Sichere interne Service-Kommunikation |
| Secret Management | Vault-Integration für sensible Daten |
| Monitoring | Logs, Metriken und Request-Tracing |
| Plattformintegration | Codesphere-Agent für Plattformfunktionen |
Konfiguration & Lebenszyklus
Managed Containers werden über die Datei ci.yml im Repository konfiguriert. Umfassende Anleitungen zur Konfiguration und Verwaltung von Managed Containers finden sich hier:
- Konfiguration einer Landscape – Vollständige Anleitung zur Landscape-Konfiguration
- Konfiguration der CI-Pipeline – Detaillierte Pipeline-Einrichtung einschließlich Prepare- und Run-Stages
- Landscape-Lebenszyklus – Verständnis von Deployment, Skalierung und Lebenszyklusverwaltung
- Umgebungsvariablen – Verwaltung der Umgebungskonfiguration
- Secret Management – Sicherer Umgang mit sensiblen Daten
- CI-Profile – Verwaltung unterschiedlicher Konfigurationen für Dev, Staging und Production