Konzepte
Team, Server, App, Prozesse, Add-ons und Umgebungen, und wie sie zusammenpassen.
Eine kurze Übersicht über die Begriffe, die du überall im Dashboard und in diesen Docs siehst.
Team
Alles gehört einem Team: seine Server, Apps, Datenbanken, Cloud-Zugangsdaten und Historie. Mitglieder haben eine Rolle (Viewer, Deployer, Admin, Owner). Siehe Teams, SSO und Zugriff.
Server
Ein Server ist eine Maschine, auf der deine Apps laufen. Entweder erstellt Railyard einen in deinem eigenen DigitalOcean-, Vultr-, Hetzner-, AWS- oder OVH-Konto, oder du verbindest eine beliebige Ubuntu-Maschine über SSH. In beiden Fällen installiert Railyard Docker, einen Routing-Proxy und einen kleinen Agent, der Anweisungen von der Control Plane entgegennimmt und deine Container ausführt. Der Server gehört dir, und dein Provider stellt dir direkt in Rechnung. Siehe Server hinzufügen.
Ein Server kann auch für einen einzigen Zweck reserviert sein: ein Build-Server für aufwendige Builds oder ein Datenbank-Server, der nur Daten hält. Siehe Datenbank-Server.
App
Eine App ist eine deploybare Einheit: ein Repository, ein Docker-Image, eine statische Site oder eine Function. Füge eine Repo-URL ein oder wähle ein Image, und Railyard liest es aus, um Framework, Port, Prozesse und Variablen zu befüllen. Siehe Aus einem Repository deployen und Ein Docker-Image deployen.
Prozesse
Eine App kann mehrere Prozesse aus demselben Image ausführen:
- web — beantwortet HTTP-Traffic, auf dem Port, auf dem deine App lauscht.
- workers — Background-Job-Runner (Sidekiq, Solid Queue, Celery …), unabhängig von web skaliert.
- release command — läuft einmal, bevor die neue Version Traffic bekommt, typischerweise Migrationen.
- cron — ein Befehl, der nach einem Zeitplan läuft, mit Run-Historie.
Siehe Worker und geplante Jobs.
Add-ons und Datenbanken
Postgres, MySQL, Redis, MongoDB, ClickHouse, Elasticsearch und mehr lassen sich auf einem Server provisionieren, wobei die Zugangsdaten automatisch in die App injiziert werden. Siehe Datenbanken und Backups.
Umgebungen
Ein Projekt gruppiert zusammengehörige Apps. Eine Umgebung (Produktion, Staging …) ist eine vollständige Kopie eines Projekts, erstellt vom Canvas aus. Ein Pull-Request-Preview ist eine temporäre Kopie einer App für einen offenen PR, die beim Schließen des PR entfernt wird. Siehe Umgebungen und Previews.
Deploys und Releases
Ein Deploy baut (oder zieht) ein Image, führt den Release-Befehl aus und schaltet den Traffic dann auf die neue Version um, sobald sie gesund ist. Jeder erfolgreiche Deploy wird zu einem Release, zu dem du zurückrollen kannst. Siehe Deploys und Rollbacks.
Domains
Jede App bekommt sofort eine funktionierende URL; füge deine eigene Domain mit Besitznachweis und automatischem Zertifikat hinzu. Siehe Domains und HTTPS.