Zum Inhalt springen
BlogEntwickler-ToolsBest Practices für die Gestaltung Ihrer IaC-Infrastruktur

Bewährte Praktiken für den Entwurf Ihrer IaC-Infrastruktur

Bewährte Praktiken für den Entwurf Ihrer IaC-Infrastruktur

Infrastructure as Code (IaC) ist eine Philosophie und eiin System von Praktiken für die Bereitstellung und Verwaltung von Netzwerken im Cloud-Zeitalter. IaC wurde dazu konzipiert, die Vorteile von Cloud Computing zu maximieren und die Fähigkeiten automatisierter Konfigurations- und Implementierungstools zu nutzen, etwa Puppet, Chef, Salt, Ansible und Terraform. Dank vollautomatischer Installation und Konfiguration, die diese Tools ermöglichen, kann der Admin komplette Systeme mit Konfigurationsdateien definieren.

Konfigurationsdateien sind Anleitungen mit Angaben zu Aufbau und Konfiguration des Systems. Diese Anleitungen können viele verschiedene Formen annehmen und je nach Werkzeug unterschiedliche Namen tragen (z. B. Cookbook in Chef und ein Playbook in Ansible). Ungeachtet der Unterschiede zwischen den Plattformen führt diese Möglichkeit, eine komplette Konfiguration vorab zu definieren, zu einer neuen Vision von Infrastruktur, bei der das Wissen über die Systeme in Codeform vorliegt und schnell in der Cloud implementiert werden kann, ohne dass eine herkömmliche Installation oder Neukonfiguration mit Konsolenbefehlen erforderlich wäre.

Die Schritte für die Implementierung Ihrer eigenen Lösung können sich unterscheiden und hängen von Ihrer Automatisierungsplattform und den Details Ihres Netzwerks ab. Behalten Sie aber diese Prinzipien im Hinterkopf, wenn Sie beginnen, die Möglichkeiten von IaC zu erkunden.

  1. Einfache und modulare Systeme

In der Hardware-Ära konnte ein Büro ein einziges Serversystem für E-Mails, Dateispeicherung und verschiedene andere Aufgaben einsetzen, aber die erste Lektion, die man beim Einsatz von IaC lernt, lautet, sich von der All-in-One-Mentalität zu lösen. Große Mehrzwecksysteme erhöhen die Komplexität, und Komplexität kann zu Fehlern und Sicherheitsproblemen führen. Konzipieren Sie Ihre IaC-Infrastruktur so, dass sie einfach, effizient und modular ist, und richten Sie sie dann wie mit Bausteinen auf die Anforderungen Ihrer Umgebung aus.

  1. Einzige Informationsquelle

Mehrere Versionen der gleichen Konfigurationsdatei können Verwirrung stiften und zu Fehlern führen. Jede Konfiguration sollte eine einzige Quelle haben. Dazu ist es erforderlich, mit einem Versionskontrollsystem wie Git eine klare und effektive Versionierung zu installieren. Das Prinzip der einzigen Informationsquelle umfasst jedoch mehr als nur eine Versionskontrolle. Der Fokus sollte auf einer zentralen Konstellation von Standardvorlagen liegen, wobei benutzerspezifische Anpassungen durch einen klaren und vorhersehbaren Prozess und nicht spontan erfolgen sollten.

  1. Keine externe Dokumentation

Die Konfigurationsdatei selbst sollte alle Informationen enthalten, die zum Verständnis des Inhalts notwendig sind. Anweisungen und Kommentare zur Konfiguration in separaten Dokumenten unterzubringen, erfordert, dass das Team separate Dateien parallel verfolgt und pflegt. Die uralte Gewohnheit, zuerst die Konfiguration zu ändern und erst danach die Dokumente zu aktualisieren, führt zu Mehraufwand und Fehlern und birgt die Gefahr, dass Konfiguration und Dokumentation nicht mehr übereinstimmen.

Die meisten IaC-Plattformen bieten die Möglichkeit, den Code durch Kommentare zu ergänzen, aber es ist auch wichtig, dass die Teammitglieder sich mit den Interface-Tools und der deklarativen Sprache der IaC-Plattform vertraut machen, um die Details der Konfiguration lesen und verstehen zu können.

  1. Sicherung durch automatisierte Tests

Automatisiertes Testen ist ein zentraler Grundsatz von DevOps und der IaC-Philosophie. Dank der in die IaC-Umgebung eingebauten Modularität und Reproduzierbarkeit kann man die Produktionskonfiguration leicht in einer Testumgebung modellieren. Sie sollten mit dem Testen beginnen, nachdem Sie eine Änderung an der Konfiguration vorgenommen haben, und systematisch mit Unit-Tests, Funktionstests, Integrationstests und Regressionstests vorgehen, bevor Sie die neue Version des Systems installieren.

  1. Nicht verändern

In IaC lebt die Konfiguration im Code. Ziel ist es, die Konfigurationsdetails durch die Konfigurationsdatei auszudrücken. Sobald das System zum Leben erwacht, könnte man in Versuchung geraten, es wie jedes andere Computersystem zu verwalten und neu zu konfigurieren. Das Prinzip der Einheitlichkeit ist aber am besten gewahrt, wenn man es ganz in Ruhe lässt. Lokale Snowflake-Rekonfigurationen können dazu führen, dass Fehler auftreten und das System für andere schwierig zu sichern und zu warten ist. Idealerweise sollten Sie, wenn eine Aktualisierung erforderlich ist, alle Änderungen über die Konfigurationsdatei vornehmen und dann neu installieren, statt an einem laufendem System herumzuflicken.

  1. Legen Sie Ihre Prozesse für die Zusammenarbeit aus

Die Gesamtkonfiguration und die Ziele sollten im gesamten Team bekannt sein und nicht bei einem einzelnen Benutzer konzentriert werden. Versionskontrolle ist eine Schlüsselkomponente einer auf Zusammenarbeit ausgelegten Umgebung, aber sie ist nur der Anfang. Sie sollten interaktive Prozesse und Tools für die Zusammenarbeit so einrichten, dass ein Höchstmaß an Informationen und gemeinsamer Verantwortung gewährleistet ist und gleichzeitig sinnvolle Sicherheits- und Auditing-Richtlinien eingehalten werden. Ein Mensch, der seine Informationen für sich behält oder unübertragbar macht, ist eine Gefahr für die Kontinuität des Betriebs.

Beachten Sie diese Prinzipien, wenn Sie die Einsatzmöglichkeiten von IaC erkunden und einen Implementierungsprozess für Ihre eigene IaC-Infrastruktur ins Auge fassen.


Kommentare

Kommentar abgeben

Ihre E-Mail Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit *gekennzeichnet