Continuous Integration

Faster to the finish line: our quality management sprints along.

Continuous integration is one of the agile software development methods and is strongly based on the principle of interactive working. At its core, it is about delivering software incrementally and establishing short feedback loops with the customer in order to advance projects quickly and efficiently and create high-quality software.

Continuous integration for a continuous relaunch

The trend towards continuous website optimization (continuous relaunch) instead of a big bang relaunch every five years further supports the need for continuous integration. If small improvements to a web project are to be implemented continuously, this process shortens the development time so that errors can be quickly identified and eliminated, such as those that occur due to code interdependencies.

To ensure continuous delivery, the following three points must be guaranteed:

  1. Smooth and automated deployment of the software (continuous deployment)
  2. Continuous testing of the (development) environment so that no mutual dependencies of code/features occur
  3. Integration of the customer in the feedback process


punkt.de Infrastructure

Continuous deployment as the basis for continuous integration

The development chain starts with us on the developers' computers. To ensure that the software runs on the servers of your project in the same way as it was programmed by us, our developers always have a virtualized environment of the project on their work devices. On the one hand, this has the advantage that an exact environment is mapped - thus avoiding dependencies. Once created, this environment can also be quickly exchanged between different people.

Naturally, we use versioning systems for distributed work. We rely on the open source solution Gitlab, which manages the code for your project. From there, the code is automatically forwarded to an integration server, which automatically carries out certain smaller test scenarios and can then deploy the code to the test or production system, depending on the settings. Thanks to this process and the high degree of automation in our infrastructure, we are also able to deploy large projects to complex infrastructures within a short space of time.

This enabled us to save a lot of time on the Deutsche Post project. At the beginning of the collaboration, deployment was not only time-consuming - five people were busy for around seven hours - but also error-prone because testing was not automated. Thanks to our continuous integration infrastructure, one person now only needs around 30 minutes. This mainly involves monitoring the process and preparing the documentation for the current release

Testing is the be-all and end-all

In order to deploy software quickly and automatically, it is essential that it can be tested automatically at any point during the project. In order to be able to carry out testing at various levels, we rely on different technologies.

From classic unit tests, which are highly functional but often too encapsulated, to functional tests with Behat and load and performance tests with Gatling, we use different types of tests. We even continuously test pagespeed and Y-Slow with GTmetrix. This means we can intervene if necessary - and you can sleep soundly.

With extensive web projects, the number of tests is usually relatively high, which means that testing would take a lot of time if all tests were carried out at the same time. Our solution: the right testing at the right time.

The commit stage is triggered with every code commit and checks the codestyles and semantic errors.
Once the commit stage has been successfully completed, the functional tests follow on the functional stage.

However, there are also certain stages that run for so long or require so much load on the system that they are triggered at certain times. The two stages that we mainly use are the acceptance stage and the load stage. The acceptance stage carries out extensive interface and functionality tests and therefore requires so much time that it is carried out at night in most projects. The load stage also usually has to be operated at night, as connected systems are often also tested here and these require the load for their actual purpose during the day.

Advantages of a continuous integration infrastructure

We provide you with stable and secure software that is always kept up to date without high costs. Whether you want to deliver an intranet portal for your employees or your corporate website, we enable you to roll out new features or bug fixes on your site without long maintenance periods and extensive planning.

You also get full access to our test system, where you can track changes to your system at any time. This allows you to keep track of all developments and you don't have to wait until the next review (which may not take place for another four to six weeks) to discover that the software has been developed in the wrong direction.


Do you need help with implementation?

We would also be happy to help you optimize your software development with the help of Continuous Integration. We offer various workshops on the topic of continuous integration at the Academy, so take a look and talk to us personally. We will find the right solution for you.



Still have questions about Continuous Integration?

If you have any further questions about understanding Continuous Integration, please do not hesitate to contact us.

Gesagt, getan
Jürgen Egeling, Inhaber / Product Owner at punkt.de
Working at punkt.de