20. Juli 2022

Wie testet man ein in der Cloud erstelltes Image?

AuthorMattia de Filippo
Kategorien

Je nach Cloud-Anbieter gibt es verschiedene Möglichkeiten, ein Image zu entwickeln. Ein Image ist eine einzelne Datei mit einer vollständigen Kopie der Struktur und des Inhalts des Dateisystems eines Datenträgers. Software-Distributionen, wie z. B. Betriebssystem-Distributionen oder Datenträger mit vorinstallierten Produkten, können über Images verteilt werden.

In unserem Blogbeitrag: „Wie erstellt man ein Image auf einem Cloud Marketplace?“ gibt es eine Schritt-für-Schritt-Anleitung zur Erstellung eines Cloud Images. Nach der Erstellung eines solchen Images, stehen Entwickler oft vor einem mühsamen manuellen Prozess, um den erstellten Code zu testen.

Doch wäre es nicht viel besser, mit nur einem Mausklick ein Image bereitzustellen und zu testen?

Der dritte Teil der Blogreihe zum Thema Cloud Marketplaces widmet sich dem Thema: „Wie testet man ein in der Cloud erstelltes Image?“.

Test-Workflow – Mit nur einem Mausklick

Um von einem langwierigen und mühsamen Prozess wegzukommen, bei dem die Entwickler die Tests ihres Codes manuell durchführen, kann eine CI/CD-Pipeline verwendet werden. Dies führt zu einem robusteren und zuverlässigeren Testprozess. Die Idee ist, dass Entwickler in der Lage sein sollen, Images mit nur einem Mausklick bereitzustellen und zu testen. Um dies zu erreichen, können Gitlab CI/CD, Packer, Terraform und Shell-Skripte verwendet werden.

Mit Packer kann ein Image erstellt und bei einem Cloud-Anbieter gehostet werden. Terraform hingegen nimmt dann das erstellte Image und stellt eine virtuelle Maschine mit diesem Image bereit. Während die virtuelle Maschine läuft, können Testskripte ausgeführt werden (Prüfung, ob ein bestimmter Port offen ist, Prüfung, ob die Anmeldung funktioniert, Prüfung der tatsächlichen Funktionalitäten des Produkts usw.).

Nach Beendigung der Testskripte vernichtet Terraform alle im Cloud-Anbieter erstellten Ressourcen, die während der Tests bereitgestellt wurden.  

Alle Schritte im Überblick

Schritt 1: Entwickler überträgt Code
Schritt 2: Image-Erstellung mit Packer wird ausgelöst
Schritt 3: Packer erstellt das Image und gibt die Image-ID zurück (z. B. id = xyz)
Schritt 4: VM mit Image-ID = xyz starten
Schritt 5: Terraform startet die VM und gibt die IP-Adresse der VM zurück
Schritt 6: VM mit der IP aus Schritt 5 testen
Schritt 7: Testergebnisse werden gespeichert
Schritt 8: Test-VM vernichten
Schritt 9: Test-VM vernichtet

Gitlab CI/CD – Prozessautomatisierung

Ohne GitLab CI/CD würden die Entwickler zunächst manuell ein Image für die Cloud mit Packer erstellen. Sobald das Image erstellt und bei einem Cloud-Anbieter gehostet ist, würde der Entwickler eine virtuelle Maschine auf der Grundlage des erstellten Images erstellen. Der Prozess der VM-Erstellung erfolgt in der Regel über die Konsole des Cloud-Anbieters.

Nachdem die virtuelle Maschine erstellt wurde, testet der Entwickler das Image manuell, z. B. um zu prüfen, ob die Website über den Browser zugänglich ist, die Anmeldeseite zugänglich ist, das Produkt tatsächlich funktioniert und so weiter. Mit GitLab CI/CD können all diese Prozesse automatisiert werden.

GitLab CI/CD orchestriert die gesamte Kommunikation zwischen Packer, Terraform und Testskripten und sorgt für die richtige Reihenfolge der Ausführung.

Packer – Erstellung des Images

Sobald der Entwickler ein Commit in das GitLab-Repository vorgenommen hat, beginnt Packer mit der Erstellung des gewünschten Images. Sobald der Image-Erstellungsprozess abgeschlossen ist, wird das Image bei einem Cloud-Anbieter gehostet. Jedes Image hat seine eigene eindeutige ID. Es ist wichtig, dass die ID eines bestimmten Images GitLab CI/CD bekannt ist, denn mit dieser Image-ID kann der nächste Schritt durchgeführt werden – das Starten einer virtuellen Maschine mit dieser Image-ID mithilfe von Terraform.

Terraform – Start der virtuellen Maschine

Terraform erhält die Image-ID aus dem vorherigen Schritt als Eingabe. Entwickler haben bereits eine Terraform-Konfiguration für den Start virtueller Maschinen (dies ist eine Art Vorlage, die Terraform mitteilt, welche Art von virtueller Maschine gestartet werden soll). In der Terraform-Konfiguration wird angegeben, wo die virtuelle Maschine gestartet werden soll (welches Netzwerk, Subnetz usw.) und welche Art von Maschine gestartet werden soll (wie viele CPU-Kerne, Festplattenplatz, GB RAM usw.). Es gibt auch einen Parameter für die Image-ID, und diese Image-ID kommt von Packer. Auf der Grundlage all dieser Informationen (Netzwerk, Subnetz, Festplattenplatz, Anzahl der CPU-Kerne und Image-ID) kann Terraform diese spezielle VM starten. Sobald die Maschine gestartet ist, ist die IP-Adresse dieser Maschine GitLab CI/CD bekannt, denn mit dieser IP-Adresse kann der nächste Schritt durchgeführt werden – das Testen der VM.

Skripte automatisiert testen

Um die VM testen zu können, müssen die Testskripte unter anderem die IP-Adresse des zu testenden Rechners kennen. Mithilfe von Shell-Skripten können wir die Konnektivität zu der von Terraform bereitgestellten Instanz und vor allem die tatsächlichen Funktionen des von uns erstellten Images überprüfen.

Wege in die Cloud mit Libelle-Software

Sie möchten noch mehr zum Thema Cloud erfahren? Dann besuchen Sie gerne unsere entsprechende Blog-Kategorie.

Auch wir bei der Libelle IT Group setzen auf die Vorteile der Cloud und stellen Ihnen verschiedene Lösungen zur Verfügung. Nutzen Sie jetzt die Cloud-Editions von Libelle DataMasking (AWS / Microsoft Azure), Libelle SystemCopy (AWS / Microsoft Azure) oder Libelle CloudShadow (IBM Cloud).


Empfohlenene Artikel
22. Dezember 2022 Libelle IT-Glossar Teil 22: Was ist DevOps?
30. November 2022 Die 12-Faktor-App Teil 3: (Einweggebrauch, Dev-Prod-Vergleichbarkeit, Logs, Admin-Prozesse)

Alle Blogartikel