Zum Hauptinhalt springen
Logo Marketing Factory Consulting GmbH
Kontakt
Logo Marketing Factory Consulting GmbH
  • Agentur
    • Unsere Arbeitsweise
      • Team Sphinx
      • Team Phoenix
    • Aktuelles
    • Über uns
    • Offene Stellen bei MFC
  • 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
    • 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
    • Neu: Launch des Westfalia Shopware 6 Shops
  • Community
    • Community-Initiativen
    • Aktuelles aus der MFC
  • Blog
  • Karriere
    • Stellenangebote
      • TYPO3-Entwickler (m/w/d)
      • Backend-Entwickler (m/w/d)
      • Systemadministrator Linux (m/w/d)
      • Projektmanager (m/w/d)
    • Praktika
      • Praktikum TYPO3-/CMS-Entwicklung (m/w/d)
      • Praktikum Systemadministration (m/w/d)
      • Dreiwöchiges Schülerpraktikum in Digitalagentur
  • Kontakt
  • Deutsch
  • English

Sie sind hier:

  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

  • Reviews von Trusted Shops in Shopware 6 anzeigen
  • Logging-Erweiterung für Shopware 6
  • TYPO3 und SAP Customer Data Cloud
  • Entwicklung einer Schnittstelle von Addressware an Shopware 6 zur Steigerung der Adressqualität

Wir freuen uns, wenn Ihr diesen Beitrag teilt.


Kommentare

Sammy Baghdadi

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

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

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 Consulting 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 ist TYPO3 Solution Partner
  • Marketing Factory ist Gold-Mitglied der TYPO3 Association
  • Marketing Factory ist Shopware Business Partner
    Bildnachweise
    1. "Programmcode": lmonk72 / Lizenz: Pixabay License (CC0 1.0)