Docker und DevOps - Teil 1
Was ist der Nutzen einer dynamischen Infrastruktur?
Begriffe wie dynamische Infrastruktur, Infrastructure as Code, Docker oder DevOps gewinnen in der Unternehmenswelt zunehmend an Bedeutung. Mit den folgenden Artikeln wollen wir etwas Licht ins Dunkel bringen. Dieser Artikel beschäftigt sich ausführlicher mit dem Konzept einer dynamischen Infrastruktur. Im zweiten und dritten Teil gehen wir auf die Begriffe IaC, DevOps, Docker sowie Amazon Webservices (AWS) ein und zeigen, in welchem Zusammenhang diese zur dynamischen Infrastruktur stehen.Was ist eigentlich Docker, IaC und Co?
Die wichtigsten Begriffe des Artikels in der Übersicht:- Dynamische Infrastruktur: Server können automatisiert gestartet und reduziert werden, je nachdem wie hoch die Auslastung ist.
- Infrastructure as Code (IaC): auch programmierbare Infrastruktur genannt. Es handelt sich hierbei, um eine IT-Infrastruktur, die keine manuelle Verfahren verwendet, sondern den Code zum Betreiben der Infrastruktur automatisiert bereitstellt und verwaltet.
- Docker: Ist eine Software, mit der Anwendungen in Container bereitgestellt werden, sodass diese weitgehend isoliert von anderen Anwendungen und dem jeweiligen Betriebssystem ablaufen können.
- Amazon Web Services: Hierbei handelt es sich, um eine Cloud Computing Plattform, die einen schnellen und flexiblen Zugriff auf IT-Ressourcen, wie Server, Speicher oder Datenbanken ermöglicht.
- DevOps: Der Begriff ist ein Kunstwort, das sich zusammensetzt aus „Dev“ für Development und „Ops“ für Operations. Wie die Wortkreation bereits andeutet, soll bei dieser Unternehmenskultur eine effizientere Zusammenarbeit von Softwareentwicklung und IT-Betrieb erreicht werden.
Dynamische Infrastruktur: Ein Anwendungsbeispiel
Wofür benötige ich denn nun eine dynamische Infrastruktur? Werfen wir hierfür einen Blick auf die Auslastung einer Anwendung. Wir gehen davon aus, dass an einem gewöhnlichen Morgen zwei Server ausreichen, um die Last zu bewältigen. Es ist allerdings selten der Fall, dass die Last im Tagesverlauf konstant ist.Oft nimmt die Anzahl der Anwender im Tagesverlauf zu und es ist nötig, zusätzliche Server zu starten. Zum Beispiel laufen mittags zwölf Server. Während der Nacht hingegen ist von einer geringen Nutzung auszugehen, so dass die Anzahl der Server auf ein Minimum reduziert werden kann, sagen wir mal auch zwei Server.
Wichtig: Warum nicht auf einen reduzieren? Aus Sicherheitsgründen sollte sich die Anwendung an zwei verschiedenen Datencenterorten befindet. Wenn ein Datencenter ein Problem hat, „brennt noch eine Kerze“ in der anderen. Die Anzahl der laufenden Server steht somit im Verhältnis zur Anzahl der (aktiven) Anwender. Abhängig von der Anwendung könnte es beispielsweise am Vormittag und am späten Nachmittag Lastspitzen geben. Ein Anwender merkt allerdings nicht, was auf der IT-Infrastrukturebene geschieht, wenn Server gestartet oder gestoppt werden. Die Anwendung ist einfach nur immer „da“.
Erfolg als größter Feind einer statischen Infrastruktur
In der Vergangenheit waren am häufigsten statische Umgebungen anzutreffen. Deren Nachteil ist offensichtlich: Die Serverkapazität muss sich an der zu erwartenden Spitzenlast orientieren. Ein Großteil dieser maximalen Kapazität wird jedoch kaum genutzt. Eine statische Umgebung erfordert 24 Stunden am Tag und das ganze Jahr über den finanziellen Aufwand, den man nur für die Spitzenzeiten benötigt.Und selbst wenn man sich an der Spitzenlast orientiert, kann es zu Ausfällen kommen. Der größte Feind einer statischen Infrastruktur ist der Erfolg, in diesem Fall die Steigerung der Anwenderzahlen. Aus Kostengründen wird in vielen Fällen eine statische Infrastruktur aufgebaut, die nicht allzu viel Reserve aufgebaut. Jede erfolgreiche Marketingkampagne (oder was auch immer die Nutzung und damit die Last erhöht) bedeutet eine latente oder akute Bedrohung der Infrastruktur. Je erfolgreicher das Marketing ist, desto langsamer wird die Web-Anwendung oder die Server funktionieren überhaupt nicht mehr.
Eine gut gemachte dynamische Infrastruktur hingegen bewältigt diese Spitzen mit Leichtigkeit und ohne Leistungsabfall. Der „Erfolgskonflikt“ wird vermieden. Dabei werden die Server nicht manuell gestartet und gestoppt. Es gibt auch keinen Zeitplan. Die Choreographie, wenn zusätzliche Server gestartet oder heruntergefahren werden, wird in einer sogenannten Metrik definiert.
Die Metrik definiert, bei welcher Serverlast zusätzliche Server für den Start vorbereitet werden und wann sie tatsächlich auf die „Bühne“ dürfen. Der Kaltstart eines neuen Servers dauert ein bis zwei Minuten. Die Feinabstimmung dieser Metrik ist der Schlüssel für eine beständige Leistung bei minimalen Kosten. Sobald die Metrik verfeinert ist, verwaltet sich die Umgebung dynamisch selbst. Regelmäßige Überprüfungen durch qualifizierte Administratoren sind jedoch empfehlenswert.
Vorteile einer dynamischen Infrastruktur
Aus diesem automatisierten Prozess einer dynamischen Infrastruktur lassen sich folgende Vorteile ableiten:- Kostenersparnis: Cloud-Dienste wie Amazon Web Services berechnen normalerweise Server auf Minutenbasis. Das spart Geld in Zeiten geringer Nutzung. Bei Bedarf ist jedoch genug Leistung vorhanden. In den Wochen vor Weihnachten könnte es beispielsweise in Spitzenzeiten 30 Server geben. Was auch immer für eine konstante Leistung und eine hervorragende User Experience erforderlich ist.
- Regionales Hosting: Für global laufende Web-Anwendungen ist es sinnvoll, die entsprechende Infrastruktur näher bei den Anwendern zu haben, da die Internet-Verbindungsgeschwindigkeit über größere Entfernungen sinken kann. Für Anwender in Asien kann sich beispielsweise eine Webanwendung, die auf Servern in Europa oder Amerika läuft, langsam anfühlen. In diesem Fall ist es sinnvoll, Server in einem asiatischen Rechenzentrum aufzusetzen. Die Infrastruktur ist dabei typischerweise global vernetzt.
- Geringere Fehleranfälligkeit: Falls einer der Anwendungsserver ein Problem hat ( „hängt“), ist kein manuelles Eingreifen erforderlich. Durch die Verwendung von Selbstheilungsfunktionen wird der Server automatisch aus dem Betrieb genommen, gelöscht, dann installiert, konfiguriert und wieder in Betrieb genommen. Das bedeutet, dass sich die Hosting-Umgebung ohne manuelle Arbeit von Server-Administratoren selbst reparieren kann, ohne dass die Anwender ein Problem bemerken. Mit dynamischem Hosting lässt sich zudem Redundanz schaffen: Server werden automatisch in einem anderen Datencenter gestartet, wenn ein Problem im Hauptdatencenter vorliegt.
- Vereinfachte Updates-Installation: Updates sind dem Selbstheilungsprozess sehr ähnlich. Ein Update bedeutet, den Anwendungsservern einfach nur mitzuteilen, dass eine neue Software-Version verfügbar ist. Server für Server wird aus dem Dienst entfernt, gelöscht und erneut installiert, jetzt aber mit der neuen Software-Version. In vielen Fällen ist es nicht erforderlich, während der Installation von Updates eine Wartungsseite anzuzeigen. Updates können während des normalen Betriebs installiert werden.
Benötigen Sie Unterstützung beim Einrichten einer dynamischen Infrastruktur?
Wenn Sie Unterstützung bei der Umsetzung einer dynamischen Infrastruktur benötigen, sprechen Sie uns an. h.com unterstützt Sie bei der Migration Ihrer bestehenden Anwendung zu einer dynamischen Infrastruktur und erstellt komplexe Setups mit Skalierbarkeit, Redundanz, Failover-Strategie und Backup-Lösungen. Mit der Erfahrung komplexer internationaler Infrastrukturen können wir genauso gut der Leuchtturm im Nebel der Cloud bei der Einrichtung kleinerer Umgebungen sein.Christian Haag, Gründer und Geschäftsführer von h.com networkers GmbH