“Ein Schweizer Taschenmesser, um Infrastruktur zu testen” soll Terratest sein. Gruntwork hat das intern genutzte Tool unter die Apache-2.0-Lizenz gestellt.
Eine große Codesammlung an Infrastruktur-Code zu verwalten, sei hart, schreibt Jewgeni Brikman, Co-Founder von Gruntwork, in einem Blogpost. Infrastructure as Code (IaC) ermögliche es zwar, den Provisioning- und Deployment-Prozess zu automatisieren, aber Änderungen an diesem Code würden mitunter negative Konsequenzen nach sich ziehen. Das schrecke viele Firmen davon ab, die eigene Infrastruktur anzutasten.
Mit Arbeit verbunden
Terratest könne laut Brikman dabei helfen, das Problem zu lösen. Das in Go geschriebene Werkzeug erleichtere es, automatisierte Tests für den Infrastruktur-Code zu schreiben, namentlich für Terraform, Packer, Docker oder AWS. Brikman warnt allerdings: Das Erzeugen solcher Tests sei durchaus mit Arbeit verbunden. Es ermögliche aber seinem kleinen Team, eine 250 000 Zeilen umfassende Infrastruktur-Codebasis bei “hunderten Kunden” zu handhaben.
Für Tests setzt Terratest auf das eingebaute Package Testing in Go. Zudem lassen sich IaC-Tools wie Terraform, Packer und Co. damit testen. Terratest validiere die Infrastruktur über HTTPS-Anfragen, API-Calls und SSH-Aufrufe. Ein einfaches Beispiel, wie sich Terratest für eine AWS EC2-Instanz einsetzen lässt, liefert der Blogeintrag auch gleich mit. Zu finden ist das jetzt veröffentlichte Werkzeug auf Github. Daneben gibt es Beispiele und einen Best Practices Guide.





