Zum Inhalt springen
Marketing Factory Digital GmbH
Kontakt
Logo Marketing Factory Digital GmbH
  • Agentur
    • Aktuelles
    • Über uns
    • Geschichte
  • Leistungen
    • Beratung, Analyse und Strategie
    • Programmierung und Entwicklung
      • Schnittstellen
      • PIM-/ERP-Anbindungen
      • Individualentwicklungen
      • Seamless CMS Integration
    • Hosting und Betreuung
      • Betrieb auf unserer Colocation-Hardware
      • Cloud-Strategien
    • Leistungen mit Dritten
  • Technologie
    • TYPO3
      • Aktuelle TYPO3-Versionen
    • Shopware
    • IT-Sicherheit
      • DDoS-Protection
      • Continuous Upgrading
      • Privacy First
    • Tech Stack
      • Bekenntnis zu Open Source
      • Technologieauswahl
      • PHP-Ökosystem
      • Containerisierung & Clustering
      • Content Delivery Networks
      • Suchtechnologien
  • Referenzen
    • Projekte
    • Kunden
      • Kundenliste
    • Screenshot der Homepage der neuen Maxion Wheels WebsiteNEU: Relaunch der Corporate Website von Maxion Wheels
  • Community
    • Community-Initiativen
  • Blog
  • Kontakt
  • Deutsch
  • English

Sie sind here:

  1. Blog
  2. Dynamische Entwicklungsumgebungen – was soll das?
Programmiercode
  • Development
20.05.2019

Dynamische Entwicklungsumgebungen – was soll das?


In vielen unserer Projekte ist es üblich, dass wir mit mehreren Mitarbeitern an mehreren Entwicklungen gleichzeitig arbeiten. Deswegen passiert es dann öfters, dass zwei oder mehrere Aufgaben parallel entwickelt, aber unabhängig voneinander getestet oder abgenommen werden sollen. Wieso wir uns zur Lösung dieses Problems für dynamische Entwicklungsumgebungen entschieden haben, verraten wir Euch jetzt:

Wie wir bisher gearbeitet haben: Zentrale Abnahmesysteme

Grundsätzlich erstellen wir pro Aufgabe einen eigenen Branch in Git, wodurch das parallele Testen und Abnehmen kein Problem darstellt. Für viele Projekte besitzen wir allerdings nur ein zentrales Abnahmesystem. Auf dieses Abnahmesystem kann dann immer nur ein Branch nach dem anderen ausgespielt werden. Verzögert sich beispielsweise die Abnahme einer Entwicklung durch Abwesenheit eines Mitarbeiters oder des zuständigen Ansprechpartners beim Kunden, so sind alle weiteren Entwicklungen vorerst blockiert und das gesamte Projekt kommt zum Stillstand. Das sorgt nicht nur für Verzögerungen im Gesamtprojekt, sondern auch für Unzufriedenheit bei unseren Mitarbeitern.

Damit wir also zukünftig mehrere Branches gleichzeitig ausspielen können, mussten mehrere Abnahmesysteme her. Hierzu haben wir bereits auf dem TYPO3Camp Rhein-Ruhr 2017 ein Konzept für dynamischen Entwicklungsumgebungen entwickelt.

Wie funktionieren dynamische Entwicklungsumgebungen?

Auf Basis von Docker und Kubernetes haben wir uns zunächst einen eigenen Cluster für Docker-Container aufgesetzt.

Die Steuerung der dynamischen Entwicklungsumgebungen übernimmt Gitlab CI. Durch jeden Push eines Branches erzeugt ein Job in der Pipeline von Gitlab CI eine neue Version eines Docker-Images. Das Image für Docker wird speziell nur für den Branch erzeugt und beinhaltet unter anderem alle Artifacts und das Projekt an sich.

Das Starten bzw. Aktualisieren einer Entwicklungsumgebung erfolgt dann via Slack-Befehl oder direkt über Gitlab CI. Löschen wir den Branch, so stoppt in Gitlab CI die Pipeline. Bevor die Pipeline stoppt, wird durch einen Job noch die Entwicklungsumgebung gestoppt und gelöscht.

Vor- und Nachteile dynamischer Entwicklungsumgebungen

Der größte Vorteil ist ganz klar, dass wir pro Aufgabe in einem Projekt ein eigenes Abnahmesystem haben. Hierdurch stellt das Testen und Abnehmen von parallelen Aufgaben kein Problem mehr dar. Für Projektleiter und Entwickler entsteht dadurch kein Mehraufwand zum Ausspielen und Testen einer Aufgabe. Besonders in Kundenprojekten, in denen häufig viele Entwicklungen und Teilprojekte gleichzeitig laufen, konnten wir durch die dynamischen Entwicklungsumgebungen den Druck aus dem System nehmen und einen Großteil der vorher notwendigen Absprachen innerhalb der Teilprojekt-Teams eliminieren. Auch der allgemeine Unmut bei "besetzten" Abnahmeumgebungen gehört nun der Vergangenheit an.

Als Nachteil müssen wir hier ganz klar die benötigte Infrastruktur nennen. Je mehr Abnahmesysteme auf dem Cluster laufen, desto mehr Hardware benötigen wir. Entsprechend muss auch die Finanzierung des Clusters gewährleistet sein. Zudem entsteht logischerweise ein gewisser Aufwand, um den Cluster und die darauf laufenden Entwicklungsumgebungen zu konfigurieren und zu verwalten.

Christian Hellmund
Blog als RSS-Feed abonnieren

Verwandte Beiträge

  • Relaunch der Website unseres Kunden Maxion Wheels auf Basis von TYPO3 12.4 LTS
  • BFSG: Was ist der richtige Alt-Text für welche Bilder?
  • Effiziente Entwicklungsumgebungen: Warum wir Kubernetes durch Virtual Machines ersetzt haben
  • Anwenderfreundliche Individualisierungen des TYPO3-Backends

Wir freuen uns, wenn Ihr diesen Beitrag teilt.


Kommentare

Sammy Baghdadi

28.08.2019, 10:23 Uhr

Moin,

interessantes Thema und sehr naheliegende Lösung. Gibt es aber dazu irgendwo auch ein wenig Code bzw. Konfiguration zu sehen? Wir versuchen gerade auch so eine Lösung zu bauen und haben schon einige Teile vom Puzzle zusammen aber noch nicht alles. Uns hilft es bestimmt, wenn wir mal einen Blick erhaschen könnten :). Eventuell wäre auch ein Austausch für euch hilfreich.

Besten Dank schonmal!

Antworten

Christian Hellmund

28.08.2019, 10:30 Uhr

Hallo Sammy,

wir haben einen Teil 2 für diesen Blog-Beitrag geplant, wo wir vor allem auf die technischen Themen näher eingehen wollen. Leider haben wir bislang keine Zeit gefunden, diesen Beitrag auch zu schreiben.

Viele Grüße
Christian

Antworten

Kommentar verfassen.

Ich bin darauf hingewiesen worden, dass die Verarbeitung meiner Daten auf freiwilliger Basis erfolgt und dass ich mein Einverständnis ohne für mich nachteilige Folgen verweigern bzw. jederzeit gegenüber der Marketing Factory Digital GmbH per Post (Marienstraße 14, D-40212 Düsseldorf) oder E-Mail (info@marketing-factory.de) widerrufen kann.

Mir ist bekannt, dass die oben angegebenen Daten so lange gespeichert werden, wie ich die Kontaktaufnahme durch Marketing Factory wünsche. Nach meinem Widerruf werden meine Daten gelöscht. Eine weitergehende Speicherung kann im Einzelfall erfolgen, wenn dies gesetzlich vorgeschrieben ist.

  • Datenschutzerklärung
  • Impressum

© Marketing Factory Digital GmbH

Bildnachweise
  1. "Programmcode": lmonk72 / Lizenz: Pixabay License (CC0 1.0)