Blog

Wie Sie die Anzahl der Variablen in Ihrer gewünschten Zustandskonfiguration minimieren können

Mark van Holsteijn

Mark van Holsteijn

Aktualisiert Oktober 16, 2025
3 Minuten

In der Welt der unveränderlichen Infrastruktur und der gewünschten Statuskonfiguration ist es wichtig, die Anzahl der Variablen in Ihrer Umgebung auf ein absolutes Minimum zu beschränken. In diesem Blog kategorisieren wir die verschiedenen Arten von Variablen, denen Sie begegnen können, und geben Ihnen Regeln an die Hand, wie Sie diese minimieren können.

Einführung

Vor langer Zeit waren wir bei einem Kunden, der XLDeploy zur Verwaltung seiner Anwendungsbereitstellungen in vier verschiedenen Umgebungen verwendete. Und sie hatten Probleme, wenn sie eine neue Anwendung hinzufügen mussten. Als ich ihre Variablen untersuchte, fanden wir mehr als 150 Variablen für vier verschiedene Umgebungen. Das bedeutet, dass sie potenziell 600(!) verschiedene Werte verwalten mussten. Wie Sie sich vorstellen können, war das viel zu viel für ein menschliches Gehirn. Wie könnte man das vereinfachen?

Arten von umgebungsspezifischen Variablen

Als wir die verschiedenen umgebungsspezifischen Variablen in diesem System analysierten, fanden wir fünf verschiedene Typen:

  • Netzwerk-Endpunkte

Hostnamen, IP-Adressen und Portnummern der Dienste, mit denen sich Ihre Anwendung verbindet.

  • Berechtigungsnachweise

API-Schlüssel, Benutzername/Passwörter und andere Identitätsnachweise, die Ihre Anwendung verwendet, um sich bei den Diensten, mit denen sie sich verbindet, zu authentifizieren. Anmeldedaten können unterteilt werden in Anmeldedaten, die von einer dritten Partei stammen, oder in Anmeldedaten, die Teil des Systemumfangs sind.

  • Umschaltbare Funktionen

Werte, die das Laufzeitverhalten der Anwendung ändern.

  • Globaler Kontext

Werte, die den globalen Kontext Ihrer Anwendung beschreiben: Der externe DNS-Domänenname, der Umgebungsname, die Ziel-Cloud-Konten, die externen Service-Endpunkte und die Anmeldedaten, um nur einige zu nennen.

Überprüfen Sie einfach alle Ihre Konfigurationsvariablen. Haben Sie weitere Kategorien gefunden? Lassen Sie es uns wissen. Prüfen Sie nun die Werte der einzelnen Variablen für verschiedene Umgebungen. Wenn eine Variable in zwei oder mehr Umgebungen denselben Wert hat, könnte es sein, dass Ihr System mit Abhängigkeiten zwischen den Umgebungen eingesetzt wird. Dies ist ein Anzeichen für Infrastrukturgeruch.

wie man die Anzahl der Variablen minimiert

Von diesen fünf Kategorien sollten nur der globale Kontext und die Anmeldeinformationen je nach Umgebung unterschiedlich sein. Davon sollte der globale Kontext als Variable im Quellcode angegeben werden. Die Berechtigungsnachweise sollten für jede Umgebung generiert und bereitgestellt werden. Für jede dieser Kategorien werden wir Ihnen sagen, was zu tun ist.

  • Ersetzen Sie Netzwerk-Endpunkte mit unqualifizierten DNS-Namen.

Jetzt löst die Umgebung den entsprechenden Netzwerkendpunkt auf, mit dem eine Verbindung hergestellt werden soll. Sie brauchen keine Variable mehr.

Sie können Ihre Service-Endpunkte in Ihrem privaten DNS registrieren, das mit Ihrem internen Netzwerk verbunden ist, und den DNS-Resolver so konfigurieren, dass er zuerst in Ihrem internen Domainnamen sucht.

Wenn Sie kubernetes verwenden, wird dies automatisch für Sie erledigt. Die DNS-Suchdomäne des kubernetes-Clusters wird auf den richtigen Service-Endpunkt in Ihrem Cluster aufgelöst. Es unterstützt sogar <Service>.<Namespace> Namen, um sich mit Endpunkten in anderen Namespaces zu verbinden.

  • Speichern Sie Anmeldedaten in einem geheimen Speicher.

Jetzt kann die Anwendung die Anmeldedaten einfach aus dem geheimen Speicher abrufen. Der geheime Name ist in jeder Umgebung derselbe, so dass Sie die Variable entfernen können.

  • Funktionen fest codieren und umschalten

Jetzt ist die Version Ihrer Anwendung mit dem Feature Toggle im gewünschten Zustand verknüpft. Ihre CI/CD-Pipeline wird sie in Ihren Umgebungen bereitstellen. Auf diese Weise können Sie das Verhalten dieser Einstellung in den verschiedenen Umgebungen validieren, so wie Sie es bei jeder anderen Anwendungsänderung tun würden.

Wenn eine Umschaltfunktion wirklich dynamisch ist, sollte sie Teil der Anwendungsfunktionalität sein.

Fazit

Wenn Sie die Vorschläge in diesem Blog beherzigen, können Sie die Anzahl der Variablen in Ihrem Konfigurationscode für den gewünschten Zustand auf eine Handvoll reduzieren. Dadurch wird die Komplexität reduziert und die Zuverlässigkeit Ihres Softwareentwicklungsprozesses verbessert.

Bild von Arek Socha aus Pixabay


Tags:

Verfasst von

Mark van Holsteijn

Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.

Contact

Let’s discuss how we can support your journey.