DevOps – die engere Verbindung von Entwicklung (Development) und Betrieb (Operations) – ist ein Thema, das zurzeit heiß diskutiert wird. Aber was ist dran am Hype? Ist DevOps nur eine Modeerscheinung, gepusht von Agilitätsromantikern?
Wenn man die Blogs der Technikteams großer Websites wie Wordpress.com, Flickr, Etsy und anderer verfolgt, möchte man seinen Augen kaum trauen: Von bis zu fünfzig Deployments in die Livesysteme pro Tag ist da die Rede, von fünfundzwanzigtausend Releases in etwas über vier Jahren und so weiter und so fort [1], [2]. Ich weiß nicht, wie es Ihnen geht, aber ich fühle mich dabei schlecht. Ich erinnere mich schmerzlich zurück an betriebliche Abnahmen, die nach Monaten daran gescheitert sind, dass noch irgendeine Betriebsdokumentation gefehlt hat. Sie scheiterten auch an Staging-Phasen, die oft länger gedauert haben als die eigentliche Entwicklung. Und ich frage mich: Was um alles in der Welt machen die eigentlich anders und vielleicht auch besser?
Um das zu verstehen, reisen wir ein wenig in der Zeit zurück, ungefähr in das Jahr 2004/2005. Der IT-Markt hatte nach dem Zusammenbruch der DotCom-Blase im Frühjahr 2000 die Talsohle durchschritten und eine neue Gründergeneration begann vor allem in den Vereinigten Staaten den Grundstein für das zu legen, was man „Web 2.0“ nennt. Die Aufbruchsstimmung war ähnlich wie Ende der 1990er Jahre, aber eines war grundlegend anders: Investorengelder gab es diesmal nicht mehr für Visionen, sondern nur noch für laufende Software. Für Start-up-Unternehmer zu dieser Zeit bedeutete das, möglichst schnell zu geringstmöglichen Kosten ein erstes vorzeigbares Produkt auf den Markt zu bringen und es dann kontinuierlich zu erweitern und zu verbessern, sobald (und falls) das Geld anfing zu fließen. Die Revolution brachten dynamische Programmiersprachen wie Ruby und Webframeworks wie Rails, mit denen Applikationsentwicklung plötzlich so effizient möglich wurde wie nie zuvor (und deren Konzepte nebenbei bemerkt mittlerweile auch die Java-Welt maßgeblich beeinflusst haben). Und auch die Betriebsinfrastruktur wurde einfacher: Keine schwerfälligen Applikationsserver mehr, für deren Konfiguration und Betrieb Spezialisten und leistungsfähige Hardware gebraucht wurden, sondern leichtgewichtige Laufzeitumgebungen, die sich mit virtuellen Maschinen beim Hoster des Vertrauens begnügten. Fand ein Kunde ein Problem, wurde der Fehler behoben und eine neue Version in Produktion gebracht – das Ganze oft innerhalb...