Deployment at punkt.de

Developer Week 2015 took place in Nuremberg from June 15 to 18, 2015. Over the course of three days, trends, tools, and paradigms from various areas of IT were presented in 10 parallel sessions each day in the “".NET,” “MOBILE,” “WEB,” and “DWX” tracks. In addition, numerous evening events provided opportunities to network with other developers. I was the only employee from punkt.de attending the conference. Here’s a brief account of my experience.

Reading duration: approx. 2 Minutes

It’s all about the infrastructure...

punkt.de relies on agile processes: Instead of creating a comprehensive requirements catalog with all specifications at the start of a project, we develop subcomponents in 14-day Scrum sprints, which we then make available to our customers. This way, our customers receive new features every two weeks. However, extensive testing is conducted beforehand—and continuously throughout the entire development process. A fully automated integration and deployment process allows us to transfer complete systems to the test servers with a single click and test them there without any manual effort. This allows us to identify specific error patterns early on, take targeted corrective action during development, and only then release new elements. We have continuously improved our code and test structure. This enables us to determine whether a piece of code works or not even before it goes live.

At the heart of this is the Jenkins continuous integration server, which—triggered by the GitLab version control system—delegates test tasks to other tools and continuously informs developers about the quality of the code. If PHPUnit, Jasmine, Selenium, and Behat give the green light, deployment can proceed. We handle this using the TYPO3.Surf Flow package. Controlled via simple and structured PHP configurations, Surf reliably delivers the software even on complex architectures. But that’s far from the end of the story: After all, the website must also be tested on both the test and production systems. Our friendly butler Jenkins puts Behat and Selenium to work running through the website. Speaking of running: On the web, in particular, response times and speed are worth their weight in gold. So Jenkins, with Gatling at the ready, fires countless requests at the site and visualizes their response times on a central dashboard. This way, we have everything at a glance and can focus on what we can’t—and don’t want to—leave to the machines: namely, programming.

Jenkins, a continuous integration server, working in conjunction with PHPUnit, Jasmine, Selenium, Behat, Mocha, Solr, GTmetrix, and Gatling

... but also communication ...

One thing is clear: When a new project comes along, every team needs some time to get into the swing of things. But over time, workflows settle in, tasks are clearly assigned, requirements are clarified—and then everything runs much more smoothly. Tools like our ticket and project management system, JIRA, play an important role in this process. This is because the tickets clearly and transparently map out all development tasks and their statuses. This makes it clear who is responsible for what and what the current status is. Our customers also have access to the ticket system—giving them a complete overview of the deployment process at all times.

... and consistency!

As with many things, the same applies to deployment: consistency pays off. Those who deploy regularly can be more confident that everything will work in the end. At the same time, this avoids the risk of the system crashing due to the many features that have never been tested in a live environment before. This saves developers a lot of work—and the customer a lot of money. 

Share:

More articles

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