Qualitätssicherung: Grenzenlose Testumgebungen in der Cloud

Qualitätssicherung: Grenzenlose Testumgebungen in der Cloud

genua wächst und wächst. Dies zeigt sich nicht nur am Umsatz oder an der Anzahl der Mitarbeiter. Auch die Anforderungen an unsere Produkte und Lösungen verändern sich. Immer größere und komplexere Setups unserer Kunden müssen dabei selbstverständlich auch in den Testumgebungen Berücksichtigung finden. Die Lösung: Einsatz einer privaten Cloud für die Qualitätssicherung bei genua. Erfahren Sie mehr!

Unsere – sehr stark vereinfachte – Aufgabenstellung in der Qualitätssicherung lautet: "Verifiziert bitte, dass unsere Lösungen auch unter realistischen Bedingungen funktionieren." Was sich vielleicht auf den ersten Blick ganz einfach anhört, hat auf den zweiten Blick viele Facetten, die weit weg von "einfach" sind: Wie können wirklich realistische Testsetups erzeugt werden? Wie kann ich meine Umgebung mal eben auf das zehn-, 100-, 1000-fache skalieren? Wann wähle ich zwischen Prognose, Berechnung, Simulation, Virtualisierung, Hardware …?

Mit diesen Fragen beschäftigen wir uns natürlich schon immer, nur merken wir langsam, dass wir ein wenig Umdenken müssen, um auch mit den zukünftig steigenden Anforderungen Schritt halten zu können.

Mehr Flexibilität in der Cloud

Recht verheißungsvoll hat sich hier schon immer der Einsatz von Infrastructure as a Service (IaaS) Cloud-Technologie angehört. Die für uns interessantesten Punkte dabei sind:

  • Rechen- und Speicherkapazität kann sehr flexibel eingesetzt werden
  • Rechen- und Speicherkapazität kann sehr einfach erweitert werden
  • Kompatibilität mit Public Cloud Anbietern (Hybrid Cloud) ist möglich
  • Klar definierte Schnittstellen schaffen Übersichtlichkeit

Umfangreiche Möglichkeiten zur Orchestrierung verbessern die Automatisierung

In der Qualitätssicherung haben wir nun vor etwa einem Jahr entschieden, diesem Thema einen weitaus höheren Stellenwert beizumessen. Innerhalb eines internen Projekts sollte dabei das Cloud Framework OpenStack evaluiert und auf unsere aktuellen und zukünftigen Anforderungen hin geprüft werden. Wir haben uns natürlich auch mit naheliegenden Fragen beschäftigt wie z. B.:

  • Warum selbst das notwendige Know-how aufbauen, wenn andere jahrelange Erfahrung damit haben?
  • Warum nicht einfach eine Public Cloud nutzen, anstatt alles selbst aufzubauen?

Testen in der CloudSkalierbare Umgebung: Die Cloud macht realistische Test-Setups möglich

Dass wir uns trotzdem sehr schnell auf OpenStack konzentriert, der privaten Cloud den Vorzug gegeben und das Ganze auch noch selbst aufgebaut haben, hat dabei sehr viele Gründe. Vereinfacht ausgedrückt war es uns wichtig, die Cloud sehr viel genauer kennenzulernen und an die speziellen Bedürfnisse unserer Qualitätssicherung anpassen zu können.

Mittlerweile haben wir eine stabile Cloud-Umgebung, die bereits für verschiedene Tests unserer Produkte im Einsatz ist. Das alles war nur durch die rege Unterstützung aus unseren Entwicklungsgruppen möglich, die unsere Produkte für den Einsatz in dieser Cloud optimiert haben.

Testinfrastructure as Code – jetzt sind wir so weit!

Mit unserer OpenStack Cloud als stabile und skalierbare Basis, können wir nun die folgenden Komponenten sinnvoll miteinander verknüpfen und kombinieren:

Infrastructure as Code: Über OpenStack Heat Orchestration Templates (HOT) ist die Beschreibung unserer Infrastruktur möglich. Hier können wir Netzwerke/Router definieren, Server bereitstellen, Sicherheitsgruppen zuweisen und vieles mehr.

Configuration as Code: Nachdem wir uns die üblichen Verdächtigen (Chef, Puppet, Salt, Ansible) angesehen haben, ist unsere Wahl auf Ansible gefallen. Hier sehen wir unsere Anforderungen mit dem geringsten Overhead erfüllt. Ansible erlaubt es uns nun, Systeme flexibel nach unseren Wünschen zu provisionieren. Wird also z. B. innerhalb einer Testumgebung ein Webserver in einem festgelegten Versionsstand benötigt, muss hier nur das passende Ansible-Playbook herangezogen werden. Die notwendige Software wird daraufhin installiert und in Abhängigkeit zur Testumgebung konfiguriert.

Orchestration: Der im Cloud-Umfeld häufig verwendete Begriff "Orchestration" beinhaltet viele Bereiche. Wir sehen für uns hauptsächlich die automatisierte (oder auch teils manuelle) Steuerung, Anpassung und Integration unserer Workflows. Hier verwenden wir bei Bedarf eine Kombination aus den Möglichkeiten von OpenStack-Heat, Ansible, Jenkins und Docker-Swarm.

Container-Technologie: Docker als Platzhirsch kommt bereits in mehreren Bereichen zum Einsatz. Einerseits können wir durch Image-Revisonierung in einer Registry auf z. B. Test-Tools einer bestimmten Version und Konfiguration zurückgreifen. Anderseits aber auch durch die geringeren Hardware-Anforderungen unsere Ressourcen in der Cloud effizienter nutzen.

Versionsverwaltung: Alle zuvor genannten Punkte entfalten erst dann ihr vollständiges Potenzial, wenn eine gemeinsame und zentrale Code-Verwaltung vorhanden ist. Über unser git bzw. gitlab sind wir nun in der Lage, die gesamte Testinfrastruktur (natürlich inkl. unserer Tests) als lesbaren Code zu hinterlegen. Anpassungen können dabei von verschiedensten Mitarbeitern nachvollziehbar vorgenommen werden. Durch die Versionsverwaltung kann ebenso eine ältere Testinfrastruktur jederzeit reproduziert werden.

Darüber hinaus konnten wir auch einige Continuous Integration Prozesse mit der Cloud verbinden. So ist es z. B. bereits möglich, aus gitlab heraus den Aufbau einer Infrastruktur in der Cloud zu initiieren und bestehende Regressionstests durchzuführen. Hier kommt auch gleich ein besonderer Vorteil der Cloud zum tragen: Die aufgebauten Infrastrukturen beeinflussen sich nicht gegenseitig. Es ist also möglich, viele gleiche oder verschiedene Umgebungen parallel zu betreiben. Damit lassen sich natürlich einige Abläufe beschleunigen.

Nächste Schritte

Zuerst einmal möchten wir weitere Testumgebungen in unsere Cloud integrieren und noch mehr Erfahrung sammeln. Besondere Aufmerksamkeit gilt dabei auch der Stabilität und Performance der Cloud unter größerer Last. Anschließend möchten wir unsere Hardware-Appliances enger mit der Cloud verküpfen. Zukünftig wollen wir dann auch Tests durchführen, die Aussagen über die Performance unserer Systeme ermöglichen. Weiterhin werden wir die möglichen Einsatzgebiete von PaaS und SaaS ausloten, um unsere Abläufe zu beschleunigen und Aufwände zu minimieren.

 

Bildquelle: © thodonal, alexmillos - Fotolia.com


Lesen Sie auch

Diskutieren Sie mit

Sie können diesen Artikel sofort ohne Registrierung als Gast-User kommentieren.

Registrieren Sie sich jetzt! Mit einem User Account genießen Sie Vorteile:
Ihr Kommentar wird sofort im genublog veröffentlicht und Sie werden über Reaktionen auf Ihre Kommentare informiert.

Bereits registrierte User gelangen hier zum Login.



Registrieren Sie sich jetzt! Mit einem User Account genießen Sie Vorteile:
Ihr Kommentar wird sofort im genublog veröffentlicht und Sie werden über Reaktionen auf Ihre Kommentare informiert.

Bereits registrierte User gelangen hier zum Login.