7 Punkte von GN⁺ 2023-07-17 | 1 Kommentare | Auf WhatsApp teilen
  • Erläuterung der Konfiguration des Autors für den Betrieb von Servern und Internet-Infrastruktur
  • Bevorzugt das Ausführen von Server-Software auf virtuellen Maschinen oder physischen Servern statt Cloud-Lösungen
  • Der Autor nutzt für seine Dienste eine DigitalOcean-VM (virtuelle Maschine) mit Debian 10
  • Die Server-Software ist in Rust geschrieben und wird zu einer einzigen Binärdatei kompiliert
  • systemd wird verwendet, damit die Binärdatei beim Serverstart automatisch gestartet wird
  • Programme, die eine Datenbank benötigen, verwenden SQLite mit einer redundanten Backup-Lösung
  • Alle Server laufen hinter nginx für TLS-Terminierung und das Ausliefern statischer Dateien
  • Die Konfiguration ist einfach und robust und erfordert nur minimalen Wartungsaufwand
  • Durch Isolierung über Unix-Benutzerkonten können mehrere Dienste auf derselben VM ausgeführt werden
  • Das Einrichten eines neuen Projekts besteht aus dem Anlegen eines neuen Benutzers, dem Hinzufügen eines nginx-Virtual-Hosts, dem Hinzufügen einer systemd-Unit und dem Ausführen eines Deployment-Skripts
  • Änderungen an der Infrastruktur erfolgen langsam und sorgen so für Stabilität und Vorhersehbarkeit
  • Der Autor bedankt sich bei Julia Evans dafür, ihn zum Schreiben dieses Artikels ermutigt zu haben

1 Kommentare

 
GN⁺ 2023-07-17
Hacker-News-Kommentare
  • Durch HTTP ausgelöste Cloud-Funktionen sind eine beliebte Wahl, um die Serververwaltung zu vereinfachen und die Komplexität zu reduzieren.
  • Das Ausführen jedes Dienstes unter einem eigenen Unix-Benutzerkonto bietet Isolation und Sicherheit.
  • Die Verwendung der DynamicUser-Funktion von systemd kann den Einrichtungsprozess vereinfachen und Zeit sparen.
  • Viele Entwickler verwenden Linode-VMs und Debian GNU/Linux für persönliche und projektbezogene Websites.
  • Common Lisp ist in solchen Setups eine beliebte Sprache für die Softwareentwicklung.
  • Nginx wird häufig als Reverse Proxy und zum Bereitstellen statischer Dateien verwendet.
  • Docker-Container und docker-compose sind alternative Optionen zum Ausführen von Diensten.
  • Failover und Uptime sind in Produktionsumgebungen wichtige Überlegungen.
  • Sicherheitsmaßnahmen wie Backups, Firewall-Regeln und schlüsselbasierte SSH-Authentifizierung werden üblicherweise implementiert.
  • Deployment-Skripte und Versionsverwaltung sind nützlich, um App-Updates und Rollbacks zu verwalten.
  • Umgebungsvariablen, Limits für offene Dateien und Logging-Konfigurationen sind wichtige Aspekte bei der Diensteinrichtung.
  • PostgreSQL, NGINX, Redis und Node.js sind häufig verwendete Softwarekomponenten.
  • Dokku ist ein beliebtes Tool für das Deployment-Management und das Hinzufügen von Plugins.
  • Einige Entwickler bevorzugen einfachere Setups mit einem einzelnen Server und Standard-Linux-Benutzerkonten.
  • Da Komplexität zu Instabilität und Ausfallzeiten führen kann, wird Einfachheit oft bevorzugt, sofern keine spezifische Komplexität erforderlich ist.