Deployment bei punkt.de

Joachim Mathes
Joachim Mathes sein Kung Fu beschränkt sich nicht auf PHP, Emacs und DevOps.

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 TYPONew Link3.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. 

Autor: Joachim Mathes

Kommentare

Bisher wurden noch keine Kommentare eingereicht.


Weitere Beiträge

19. August 2016

Anzeigen dynamischer Seiteninhalte im Zusammenspiel mit dem Zurück-Button

In Zeiten von dynamisch nachgeladenem Seiteninhalt kommt es häufiger vor, dass ein Zurückspringen auf … mehr

21. Juni 2016

Agile Coach Camp 17.-19. Juni 2016 in Rückersbach

Es waren einmal zwei ScrumMasterinnen bei punkt.de, die sich nach Fortbildung und Inspiration sehnten. … mehr