Testing Infrastructure as Code

Container helfen beim Testen verteilter Software

| Autor / Redakteur: Christoph Deppisch und Tobias Schneck* / Stephan Augsten

Container-Technologie vereinfachen und beschleunigen das Testen verteilter Software.
Container-Technologie vereinfachen und beschleunigen das Testen verteilter Software. (© Cybrain - stock.adobe.com)

Der Einsatz von Containern vereinfacht nicht nur das produktive Deployment verteilter Software-Komponenten. Auch beim Erstellen einer Testinfrastruktur bietet die Technologie völlig neue Möglichkeiten.

Unter Verwendung einer Container-Technologie wie Docker lässt sich eine Testinfrastruktur leicht und performant aufsetzen. Das Infrastructure-as-Code-Konzept kann nämlich nicht nur beim Software-Design und -Deployment, sondern auch beim Testing zur Anwendung kommen. Damit können Unternehmen maßgeschneiderte Testumgebungen ad hoc bereitstellen.

Technische Unterstützung bieten Orchestrierungstools wie Kubernetes oder komplette Container-Plattformen wie OpenShift von Red Hat, die zusätzlich zur Container-Cluster-Verwaltung auch eine Lösung für den Aufbau von automatisierten Build-Pipelines mitbringen. Die Integration der Container-Orchestrierung mit Code-Versioning-Tools wie Git bietet die nötige Versionskontrolle und ermöglicht die parallele Verwaltung von Testumgebungen in unterschiedlichen Versionsständen.

Der Markt stellt heute vorgefertigte Container zur Verfügung, die der Anwender lediglich konfigurieren muss. So stehen Komponenten wie Datenbanken, Webserver, Messaging Broker, Such-Engines und noch viele weitere Komponenten auf Knopfdruck bereit.

Generell vereinfacht der Einsatz von Container-Technologien die Bereitstellung von Testumgebungen für die Entwicklung und Qualitätssicherung (Quality Assurance, QA) deutlich. In lokalen Testumgebungen auf dem Entwicklerrechner kommen dieselben Deployment-Werkzeuge und -Konzepte zum Einsatz wie in der Test- und Staging-Umgebung und letztlich auch in der Produktion.

Dieses Setup bringt die Produktionsumgebung sehr nahe an den Test- und Development-Lifecycle. Das vereinfacht die Fehlersuche und reduziert mögliche Fehlerquellen erheblich. Die sehr schnellen Startzeiten der Container-Technologie ermöglichen neben kurzen Deployment-Zyklen auch einen wiederholbaren und vor allem kurzfristigen Infrastruktur-Aufbau für den Test.

Durch die optimierte Nutzung von Ressourcen (Memory, CPU und Storage) unterstützt die Container-Technologie auch den Einsatz vieler gleichzeitig laufender Komponenten auf einem Rechner; damit können auch große Systeme lokal getestet werden.

Container reduzieren Mehrarbeit

Die daraus gewonnene Flexibilität im Aufbau von Testumgebungen ist auch die Basis für umfangreiche Testautomatisierungsszenarien. Diese Automatisierung ist zwingend erforderlich, um die Anforderung eines Continuous-Integration-Ansatzes mittels automatisierter Build Pipelines zu realisieren.

Dies gilt als Grundvoraussetzung, um komplexe Release-Strategien wie Blue Green Deployments, Canary Releases oder A/B-Testing umzusetzen. Sie ermöglichen die schnelle und vor allem häufige Veröffentlichung eines jeweils aktuellen und getesteten Softwarestands.

Ein weiterer Vorteil von Containern ist die Portabilität, das heißt, Anwender können sie auf den Entwicklungsrechner herunterladen und somit auch für die Offline-Entwicklung und Tests außerhalb der Reichweite des eigenen Intranets – zum Beispiel auf einer Zugreise – problemlos verwenden.

Von Nutzen ist überdies der Infrastructure-as-Code-Ansatz. So wird die Einarbeitungszeit von neuen Mitarbeitern in ein Projekt drastisch reduziert, da sich die aufwendige Installation und Konfiguration lokaler, Container-basierter Entwicklungsumgebungen komplett automatisieren lässt. Somit gehört auch das „Abarbeiten“ von langen Installationsanleitungen der Vergangenheit an.

Komplexe Testszenarien

Christoph Deppisch, Consultant und Software-Architekt.
Christoph Deppisch, Consultant und Software-Architekt. (Bild: Petra Schramboehmer / Consol)

Nicht zuletzt spricht auch der „Microservices-Trend“ für einen Einsatz der Container-Technologie in der Testinfrastruktur. Microservices bringen neue Herausforderungen für das Testing mit sich, wie etwa die verifizierte Integration verschiedener Services in ein gesamtheitlich funktionierendes Softwaresystem.

Die immer komplexer werdende Zusammenstellung von einzelnen Services zu einem kompletten Ganzen ist keine Selbstverständlichkeit mehr. Die dabei teilweise sehr aufwendigen Testszenarien können Unternehmen optimal mit Hilfe von Container-Technologien meistern.

Tobias Schneck, Consultant und Software-Architekt.
Tobias Schneck, Consultant und Software-Architekt. (Bild: Petra Schramboehmer / Consol)

Insgesamt ermöglicht der Einsatz von Container-Technologien die nahtlose Integration von der Software-Entwicklung bis zur Produktivstellung – einschließlich des Testinfrastruktur-Setups. Allerdings ist für die erfolgreiche Einführung Experten-Know-how von Vorteil, idealerweise von Dienstleistern, die sowohl über Erfahrungen bei Container-Plattformen als auch beim Testing von Unit- über Integration- bis zu User-Interface (UI)-Tests verfügen.

* Christoph Deppisch und Tobias Schneck sind Software-Consultants und -Architekten mit Fokus auf Testautomatisierungslösungen beim Münchner IT-Dienstleister Consol.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45328636 / Container & Virtualisierung)