Infrastruktur-Tests und CI-Pipelines
Wenn (veränderliche!) IT-Infrastruktur durch Systeme wie Puppet oder Ansible automatisiert wird, wird sie durch "Code" konfiguriert und man spricht von Infrastructure as Code. In der Entwicklung (DevOps!) sollten dann Tests auf die Erzeugnisse in sogenannten CI-Pipelines vorliegen. Mit der Jenkins Job-DSL/dem Jenkinsfile lässt sich eine solche Pipeline eng am Code alternativ zu beispielsweise GitHub/Travis spezifizieren.
Angelehnt an Puppet, aber leicht abstrahierbar, entwickelt der Vortrag einen Überblick über Testmethodik, -ausführung und -Pipelining, bevor in einer kurzen Demo mit der Jenkins-Serverspec Tests auf einer simulierten Infrastruktur durchgeführt werden.
Vorkenntnisse
Besucher sollten Vorkenntnisse in erstens einer beliebigen Configuration-Management-Sprache haben und zweitens den grundsätzlichen Aufbau verteilter Systeme kennen. Drittens ist ein grundsätzliches Verständnis von CI-Prozessen erforderlich. Kenntnisse in Jenkins, Serverspec und Ruby sind nicht erforderlich, im Fokus steht der prinzipielle Aufbau einer Pipeline, die konkrete Instanziierung ist nur das Beispiel.
Lernziele
Besucher sollen Motivation, Methodik, Aufbau und Pipelining von Tests auf Infrastruktur-Code kennen lernen, wenn diese Infrastruktur nicht immutable gehalten werden kann/soll - für Applikations-Container ist der Ansatz weniger geeignet. Weiterhin soll der Besucher anhand der Beispiele einen Überblick über mögliche Instanziierungen der Prinzipien sowie Alternativen gewinnen.