Skip to content
Marketing Factory Digital GmbH
Contact
Logo Marketing Factory Digital GmbH
  • Agency
    • About us
    • History
  • Services
    • Consulting, Analysis and Strategy
    • Programming and Development
      • Interface Development
      • PIM/ERP Links
      • Custom Development
      • Seamless CMS Integration
    • Hosting and Support
      • Cloud Strategies
      • Hosting Partners of Marketing Factory
    • Services with Third Parties
  • Technology
    • TYPO3
      • Current TYPO3 Versions
    • Shopware
    • IT Security
      • DDoS Protection
      • Continuous Upgrading
      • Privacy First
    • Tech Stack
      • Commitment to Open Source
      • Technology Selection
      • PHP Ecosystem
      • Containerisation & Clustering
      • Content Delivery Networks
      • Search Technologies
  • References
    • Projects
    • Clients
      • Client List
    • Screenshot of the homepage of the new Maxion Wheels websiteNEW: Relaunch of the corporate website of Maxion Wheels
  • Community
    • Community Initiatives
  • Blog
  • Contact
  • Deutsch
  • English

You are here:

  1. Blog
  2. Dynamic development environments - What's the point?
[Translate to English:] Programming code
  • Development
20.05.2019

Dynamic development environments - What's the point?


In many of our projects it is common that we work with several employees on several developments at the same time. Therefore, it often happens that two or more tasks are developed in parallel, but are to be tested or approved independently. Why we decided to use dynamic development environments to solve this problem, we will tell you now:

How we have worked so far: Central acceptance systems

Basically, we create a separate branch in Git for each task, which makes parallel testing and quality assurance no problem. For many projects, however, we have only one central acceptance system. Only one branch at a time can be deployed to this system. If, for example, the approval of a development is delayed due to the absence of an employee or the responsible contact person at the customer, all further developments are blocked for the time being and the entire project comes to a standstill. This not only causes delays in the overall project, but also dissatisfaction among our employees.

So in order for us to be able to play out several branches at the same time in the future, we needed several acceptance systems. For this purpose, we already developed a concept for dynamic development environments at the TYPO3Camp Rhein-Ruhr 2017.

How do dynamic development environments work?

Based on Docker and Kubernetes, we first set up our own cluster for Docker containers.

The dynamic development environments are controlled by Gitlab CI. Every time a branch is pushed, a job in Gitlab CI's pipeline creates a new version of a Docker image. The image for Docker is created specifically for the branch only and includes, among other things, all artifacts and the project itself.

Starting or updating a development environment is then done via Slack command or directly via Gitlab CI. If we delete the branch, the pipeline stops in Gitlab CI. Before the pipeline stops, a job still stops and deletes the development environment.

Advantages and disadvantages of dynamic development environments

The biggest advantage is clearly that we have a separate acceptance system for each task in a project. This means that testing and approval of parallel tasks is no longer a problem. For project managers and developers, this means that there is no additional effort to play out and test a task. Particularly in customer projects, in which many developments and sub-projects often run simultaneously, we were able to take the pressure off the system through the dynamic development environments and eliminate a large part of the previously necessary coordination within the sub-project teams. The general displeasure with "busy" acceptance environments is now also a thing of the past.

As a disadvantage, we must clearly mention the required infrastructure. The more acceptance systems run on the cluster, the more hardware we need. Accordingly, the financing of the cluster must also be guaranteed. In addition, a certain amount of effort is logically required to configure and manage the cluster and the development environments running on it.

Christian Hellmund
Get blog posts as RSS feed

Related blog posts

  • Relaunch of the website of our client Maxion Wheels based on TYPO3 12.4 LTS
  • What is the right alt text for which images?
  • Efficient review environments: Why we replaced Kubernetes with Virtual Machines
  • User-friendly customization of the TYPO3 backend

Please feel free to share this article.


Comments

No comments yet.

Write a comment.

I have been informed that the processing of my data is on a voluntary basis and that I can refuse my consent without detrimental consequences for me or withdraw my consent at any time to Marketing Factory Digital GmbH by mail (Marienstraße 14, D-40212 Düsseldorf) or e-mail (info@marketing-factory.de).

I understand that the above data will be stored for as long as I wish to be contacted by Marketing Factory. After my revocation my data will be deleted. Further storage may take place in individual cases if this is required by law.

  • Data privacy policy
  • Legal notice

© Marketing Factory Digital GmbH

Picture Credits
  1. "Programming code": lmonk72 / License: Pixabay License (CC0 1.0)