Deployment bei punkt.de

Vom 15. bis 18. Juni 2015 fand in Nürnberg die Developer Week 2015 statt. In den Bereichen ".NET", "MOBILE", "WEB" und "DWX" wurden an drei Tagen in jeweils 10 parallelen Sessions Trends, Tools und Paradigmen aus verschiedenen Themengebieten der IT vorgestellt. Darüber hinaus boten sich zahlreiche Abendveranstaltung für den Austausch mit anderen Entwickler_innen an. Von der punkt.de war ich als einziger Mitarbeiter auf der Konferenz vertreten. Hier ein kleiner Erfahrungsbericht.

Lesedauer: ca. 2 Minuten

Die Infrastruktur macht’s ... 

punkt.de setzt auf agile Prozesse: Anstatt im Vorfeld eines Projektes einen umfassenden Anforderungskatalog mit allen Spezifikationen zu erstellen, realisieren wir in 14-tägigen Scrum Sprints Teilkomponenten, die wir unseren Kunden dann zur Verfügung stellen. Damit erhalten unsere Kunden alle zwei Wochen neue Features. Vorher wird jedoch ausgiebig getestet – und zwar kontinuierlich während des gesamten Entwicklungsprozesses. Dabei ermöglicht uns ein vollautomatischer Integrations- und Deployment-Prozess, das komplette Systeme per Mausklick auf die Testserver zu übertragen und dort ohne manuellen Aufwand zu testen. So können wir bestimmte Fehlermuster frühzeitig erkennen, noch während der Entwicklung gezielt gegensteuern und erst dann neue Elemente freischalten. Unsere Code- und Teststruktur haben wir dabei kontinuierlich verbessert. Damit können wir bereits vor dem Livegang erkennen, ob ein Code funktioniert oder nicht.

Im Zentrum steht hierbei der Continuous-Integration-Server Jenkins, der - angestoßen vom Versionsmanagement-System gitlab - die Testaufgaben an weitere Helferlein delegiert und die Entwickler fortlaufend über die Qualität des Codes informiert. Geben PHPUnit, Jasmine, Selenium und Behat grünes Licht, kann deployed werden. Das übernimmt bei uns das Flow Package TYPO3.Surf. Gesteuert über einfache und strukturierte PHP-Konfigurationen liefert Surf die Software auch auf komplexen Architekturen zuverlässig aus. Doch damit ist noch längst nicht Schluss: Die Website muss schließlich auch auf den Test- und Produktivsystemen getestet werden. Der freundliche Butler Jenkins lässt dazu Behat und Selenium über die Website rennen. Apropos rennen: Gerade im Web sind Reaktionszeiten und Geschwindigkeit bares Geld. Also feuert Jenkins mit Gatling im Anschlag unzählige Anfragen gegen die Seite und visualisiert deren Reaktionszeit auf einem zentralen Dashboard. So haben wir alles im Blick und können uns gleichzeitig auf das konzentrieren, was wir nicht den Maschinen überlassen können - und wollen: nämlich das Programmieren.

Continuous-Integration-Server Jenkins im Zusammenspiel mit PHPUnit, Jasmine, Selenium und Behat, mocha, Solr, GTmetrix und Gatling

... aber auch die Kommunikation ...

Klar ist: Steht ein neues Projekt an, braucht jedes Team eine Weile, um sich einzugrooven. Aber im Laufe der Zeit spielen sich Arbeitsabläufe ein, werden Aufgaben klar zugeteilt, sind die Anforderungen geklärt – und damit geht dann alles viel reibungsloser. Tools wie unser Ticket- bzw. Projektmanagementsystem JIRA spielen dabei eine wichtige Rolle. Denn in den Tickets werden sämtliche Entwicklungsaufgaben und ihr Status übersichtlich und transparent abgebildet. So ist klar, wer für was zuständig und wie der Stand der Dinge ist. Auch unsere Kunden haben Zugriff auf das Ticketsystem – und damit stets den vollen Überblick über den Deployment-Prozess.

... und die Regelmäßigkeit!

Wie bei vielem gilt auch beim Deployment: Dran bleiben zahlt sich aus. Wer regelmäßig deployed, der kann sich sicherer sein, das am Ende auch alles funktioniert. Und vermeidet gleichzeitig das Risiko, dass das System aufgrund der vielen Features, die vorher noch nie in ihrer Liveumgebung getestet wurden, zusammenbricht. Das spart den Entwicklern viel Arbeit. Und dem Kunden damit viel Geld. 

Teilen:

Weitere Beiträge

Jeder Einzelne ist ein Tropfen, gemeinsam sind wir ein Meer.
Rebecca Düker, Product Owner bei punkt.de
Arbeiten bei punkt.de