
Config-System
Ein Config-System sammelt alle Einstellungen eines Programms an einer zentralen Stelle, statt sie fest in den Programmcode zu schreiben. Dadurch lässt sich dieselbe Software in verschiedenen Umgebungen betreiben, ohne sie jedes Mal neu zu bauen.
Jedes größere Programm hat Werte, die sich ändern können: die Adresse einer Datenbank, ein Passwort, ein Zeitlimit, die Anzahl paralleler Arbeitsschritte. Man könnte diese Werte direkt in den Programmtext schreiben. Dann müsste man das Programm aber jedes Mal neu erstellen, wenn sich ein einziger Wert ändert. Ein Config-System löst das anders: Die Werte stehen außerhalb des Programms, meist in eigenen Dateien. Beim Start liest das Programm diese Dateien ein und richtet sich danach. Der Begriff kommt von „configuration“, also Einstellung oder Konfiguration.
Warum Einstellungen nicht in den Code gehören
Software läuft fast nie nur an einem Ort. Entwickler testen sie auf ihrem eigenen Rechner. Danach läuft sie auf einem Testserver, und erst am Ende bei den echten Nutzern. Diese drei Umgebungen brauchen unterschiedliche Werte. Auf dem Laptop soll das Programm eine kleine Testdatenbank benutzen, im Echtbetrieb die große. Der Programmcode selbst ist aber überall identisch. Genau diese Trennung macht ein Config-System möglich.
Ein zweiter Grund ist Sicherheit. Passwörter und Zugangsschlüssel dürfen nicht im Programmcode stehen, denn der wird oft öffentlich geteilt. Es gab schon zahlreiche Fälle, in denen Firmen versehentlich Schlüssel für Cloud-Dienste veröffentlicht haben. Fremde konnten damit auf Kosten der Firma rechnen lassen. Werden solche Werte über die Konfiguration eingespeist, bleiben sie außerhalb des geteilten Codes.
In der KI-Welt kommt ein dritter Grund dazu: Nachvollziehbarkeit. Beim Training eines Modells legt man Dutzende Zahlen fest, etwa die Lernrate oder die Größe der Datenpakete. Speichert man diese Werte in einer Konfigurationsdatei, weiß man Monate später noch genau, wie ein Ergebnis zustande kam. Ohne diese Datei ist ein Versuch praktisch nicht wiederholbar.
Von der Datei bis zum laufenden Programm
Die Einstellungen stehen meist in einfachen Textdateien mit fester Struktur. Verbreitete Formate heißen YAML, JSON oder TOML. Sie bestehen aus Paaren von Name und Wert, etwa „port: 8080“. Manche erlauben auch verschachtelte Gruppen, sodass alle Datenbank-Einstellungen zusammenstehen. Für Menschen bleiben diese Dateien lesbar, für das Programm sind sie eindeutig auswertbar.
Typischerweise gibt es mehrere Ebenen, die sich überlagern. Zuunterst liegen Standardwerte, die der Entwickler festgelegt hat. Darüber liegt eine Datei für die jeweilige Umgebung. Ganz oben stehen sogenannte Umgebungsvariablen, also Werte, die das Betriebssystem beim Start übergibt. Jede höhere Ebene überschreibt die darunter. Das funktioniert wie eine Schulordnung: Es gibt allgemeine Regeln, dann Regeln für die einzelne Klasse, und im Zweifel entscheidet die Lehrkraft vor Ort.
Ein gutes Config-System prüft die Werte außerdem beim Start. Es meldet sofort, wenn eine Pflichtangabe fehlt oder eine Zahl unsinnig ist. Der Fachbegriff dafür ist Validierung. Ohne diese Prüfung stürzt das Programm erst Stunden später ab, an einer völlig anderen Stelle. Ein häufiger Irrtum ist übrigens, ein Config-System mit einem Feature-Flag-Dienst zu verwechseln. Der schaltet Funktionen im laufenden Betrieb an und aus, während die Konfiguration meist nur beim Start gelesen wird.
Configs in Apps, Servern und KI-Projekten
Wer schon einmal einen Spiele-Server aufgesetzt hat, kennt das Prinzip. Dateien wie „server.properties“ bei Minecraft sind nichts anderes als Konfiguration. Auch das Einstellungsmenü einer Handy-App speichert seine Werte in einer solchen Datei. Der Unterschied ist nur, dass dort eine Oberfläche davorliegt statt eines Texteditors.
In der professionellen Softwareentwicklung sind Config-Systeme Standard. Große Anbieter wie AWS oder Azure bieten eigene Dienste an, die Einstellungen und Geheimnisse zentral verwalten. In Nachrichten tauchen sie meist dann auf, wenn etwas schiefgeht. Mehrere große Ausfälle bei Cloud-Anbietern gingen auf eine fehlerhafte Konfiguration zurück, nicht auf einen Programmierfehler. Eine falsche Zeile in einer Datei kann Dienste weltweit lahmlegen.
Bei KI-Projekten begegnet dir der Begriff besonders oft. Frameworks zum Trainieren von Modellen arbeiten fast ausschließlich mit Konfigurationsdateien. Wer ein offenes Sprachmodell herunterlädt, findet dort meist eine Datei namens „config.json“. Darin steht, wie viele Schichten das Modell hat und wie groß seine Bausteine sind. Ohne diese Datei wären die reinen Zahlenwerte des Modells nicht benutzbar.