Deployment with punkt.de

Developer Week 2015 took place in Nuremberg from June 15 to 18, 2015. Trends, tools and paradigms from various areas of IT were presented in 10 parallel sessions over three days in the areas of ".NET", "MOBILE", "WEB" and "DWX". In addition, there were numerous evening events to exchange ideas with other developers. I was the only employee from punkt.de at the conference. Here is a short experience report.

Reading duration: approx. 2 Minutes

The infrastructure makes it ...

punkt.de relies on agile processes: Instead of creating a comprehensive catalog of requirements with all specifications in advance of a project, we implement sub-components in 14-day scrum sprints, which we then make available to our customers. This means that our customers receive new features every two weeks. However, extensive testing is carried out beforehand - continuously throughout the entire development process. A fully automated integration and deployment process enables us to transfer the entire system to the test server at the click of a mouse and test it there without any manual effort. This allows us to identify certain error patterns at an early stage, take targeted countermeasures during development and only then release new elements. We have continuously improved our code and test structure. This allows us to recognize whether a code is working or not even before it goes live.

At the heart of this is the continuous integration server Jenkins, which - triggered by the version management system gitlab - delegates the test tasks to other little helpers and continuously informs the developers about the quality of the code. If PHPUnit, Jasmine, Selenium and Behat give the green light, deployment can begin. This is done by the TYPO3.Surf flow package. Controlled via simple and structured PHP configurations, Surf reliably delivers the software even on complex architectures. But that's not all: the website also needs to be tested on the test and production systems. The friendly butler Jenkins lets Behat and Selenium run over the website for this purpose. Speaking of running: Especially on the web, reaction times and speed are hard cash. So, with Gatling at the ready, Jenkins fires countless requests against the page and visualizes their response time on a central dashboard. This allows us to keep an eye on everything and at the same time concentrate on what we can't - and don't want to - leave to the machines: programming.

Continuous integration server Jenkins in interaction with PHPUnit, Jasmine, Selenium and Behat, mocha, Solr, GTmetrix and Gatling

... but also communication ...

One thing is clear: when a new project is about to start, every team needs a while to get into the groove. But over time, workflows settle in, tasks are clearly assigned, requirements are clarified - and everything then runs much more smoothly. Tools such as our ticket and project management system JIRA play an important role here. This is because all development tasks and their status are clearly and transparently mapped in the tickets. This makes it clear who is responsible for what and what the current status is. Our customers also have access to the ticket system - and therefore always have a complete overview of the deployment process.

... and regularity!

As with many things, the same applies to deployment: it pays to keep at it. If you deploy regularly, you can be sure that everything will work in the end. At the same time, you avoid the risk of the system breaking down due to the many features that have never been tested in a live environment before. This saves the developers a lot of work. And a lot of money for the customer.

Share:

More articles

$success = $this -> getConnected();
Mihriban Dalmis, Entwicklung at punkt.de
Working at punkt.de