Infrastructure as Code ist angewandte DevOps Kultur. Infrastruktur zum Betrieb von Software wird durch Software erzeugt.
Je komplexer und ausdifferenzierter diese Infrastruktur ist und je mehr Menschen an der Entwicklung beteiligt sind, desto wichtiger werden die aus der “normalen” Softwareentwicklung bekannten Vorgehensweisen:
Neben der Wahl eines modularen Architekturansatzes und der vollständigen Versionierung des Codes sind auch hier Automatisierte Tests, Continuous Integration und Continuous Deployment Voraussetzung für hohe Qualität bei gleichzeitig hoher Entwicklungsgeschwindigkeit.
Nach einem kurzen Überblick im Vortragsstil (max 20min) über den kompletten Lifecycle einer IaC-getriebenen Infrastruktur, werden wir uns in der anschließendenden HandsOn Session in (testgetriebne) IaC Entwickung stürzen.
Ziel ist es, die lokale Entwicklung einer Infrastruktur-Komponente nebst Unit- und Integrationstest auf dem eigenen Laptop durchzuspielen, sowie den Aufbau einer Build- und Deployment Pipeline für diese Infrastruktur-Komponente auf einem zentralen Build-Server zumindest nachzuvollziehen.
Zum Einsatz kommen die Tools Virtualbox bzw. Docker, Vagrant, Chef, Chefspec, Testkitchen, Berkshelf, Chef-Server sowie git und Jenkins.
Die lokale Entwicklungsumgebung werden wir während der Session einrichten. Bitte bringt einen Laptop mit Unix-artigem Betriebssystem (Linux oder OSX) mit (weil der Umgang mit den og Tools unter Windows eine Geschichte für sich ist…).
Seit 1998 unterstützen Alexander Birk und Christoph Lukas als pingworks Kunden wie ProSieben, Sat1, Allsecur/Allianz oder die Deutsche Telekom AG bei der Architektur und Entwicklung webbasierter Softwarelösungen sowie beim zielgerichteten Aufbau und der Weiterentwicklung von Teams, die hochwertige webbasierte Software entwickeln (sollen).
Den technischen, organisatorischen und kommunikativen Herausforderungen, die jedes komplexe Softwareentwicklungsprojekt mit sich bringt, begegnen wir mit dem konsequenten Befolgen von Lean Principles sowie dem Einsatz von agilen Werten und Methoden.
Mit der seltenen Kombination aus technischen Skills, langjähriger Projekterfahrung und unserem Faible für Kommunikation bringen wir alle Kompetenzen mit, die nötig sind, um Entwickler zu beflügeln, Teams nach vorne zu bringen und so auch schwierige Projekte zu einem erfolgreichen Ende zu führen.
Eingebettet in die jeweiligen Projektteams begegnen wir den Menschen, mit denen wir zusammenarbeiten mit Vertrauen und Respekt, sprechen aber auch unangenehme Wahrheiten rechtzeitig deutlich an. So sorgen wir an der Schnittstelle zwischen Management und Entwicklungsteam dafür, dass die uns anvertrauten Projekte ein Erfolg werden und die mit uns entwickelte Software das leistet, was sie leisten soll.