Continuous Deployment Experience (CDX)

Continuous Deployment Experience (CDX)

Um den entwickelten Code auf Ihren Server zu laden benötigen Sie eine Deployment Pipeline. Das sind Technik, Prozesse und Werkzeuge, um den auf dem lokalen Computer entwickelten Code auf dem Produktivsystem auszuliefern (deployen).
Bei unseren Neu-Entwicklungen erfolgt diese Integration (integration) kontinuierlich (continuous) in Zusammenarbeit mit unseren DevOps-Spezialisten.
Wir sind IT‘ler, die sich sowohl mit dem Bereich Development, als auch IT Operations auskennen. Wir sind passionierte IT‘ler, die sich sowohl mit dem Bereich Development, als auch IT Operations auskennen. Wir lieben das Optimieren von Softwarequalität und die Geschwindigkeit der Applikation fortlaufend im Einklang mit Entwicklung und Auslieferung von neuen Funktionen zu halten/zu bringen. Dieses wird unterstützt durch Monitoring, Logging & Auswertung - so haben wir einen stetigen Refactoring Lifecircle erschaffen.

Unser neues Herzstück - ‚Continuous Deployment Experience‘ (CDX):

Als E-Commerce Manufaktur entwickeln wir seit über 8 Jahren mit viel Leidenschaft maßgeschneiderte Lösungen für Online-Shops auf Basis des Magento 2 Ökosystems, Sylius oder eigenständigen Frameworks, wie zum Beispiel VueStorefront. Als 7-köpfiges Team haben wir langjährige Erfahrungen im Bereich der Magento Programmierung in diversen Projekten gesammelt und mit viel Enthusiasmus durchgeführt.
Oft stehen wir vor der Herausforderung unterschiedliche Kundenwünsche mit notwendigen Sicherheitsupdates und Fehlerkorrekturen zu verbinden - dabei sind wir schnell und effektiv, um unnötige Kosten für unsere Kunden zu sparen.
Coden ist unsere DNA und unsere Berufung! Durch langjährige und vielfältige Kundenprojekte haben wir umfangreiche DevOps Skills und gehören in den Bereichen Development wie auch IT-Operations zu den Top-Spezialisten.

Mit diesem Hintergrund hat unser Team mit viel Herzblut das Continuous Deployment Experience (CDX) entwickelt. Nach mehrjähriger Entwicklung und Testing ist auf Basis des DevOps Cycles (Lebenszyklus in der Softentwickelung) unsere Neu-Entwicklung, der CDX, entstanden.

Durch den Einsatz des DevOps Cylces erreichen wir bessere Softwarequalität, höhere Geschwindigkeit der Entwicklung sowie schnellere Code-Auslieferung - 100% agile & customer driven.

Unser „Add-on" im Rahmen des DevOps Cylces ist die automatisierte Feedbackschleife direkt aus dem System. Das Ergebnis ist die „Experience" in Form von Kundenzufriedenheit, geringerem Ausfall-risiko, Kostenersparnis, geringere Fehlerquote und einer Umsatzsteigerung für unsere Kunden.

Der Lifecyle garantiert den dynamischen, agilen und nicht endlichen Prozess der stetigen Code-Überprüfung mit:

  • Monitoring
  • Logging
  • Reporting/ Auswertung/ Refactoring
Weitere ausführliche Informationen finden Sie hier: Gitlab devops lifecycle

Was ist CDX und für wen?

Ihr Bedarf:

Sie benötigen eine automatisierte E-Commerce Infrastruktur, möchten Ihre bestehende nach Best Practises aktualisieren oder mehrere Projekte gleichzeitig auf Ihren Servern implementieren?
Mit unserem DevOps Cycle bieten wir Ihnen eine Deployment Pipeline (Technik, Prozesse, Werkzeuge), um den Code lokal zu entwickeln, Ihren entwickelten Code auf dem Produktivsystem auszuliefern (deployen) und kontinuierlich (continuous) durch Monitoring, Logging & Auswertung zu verbessern und weiterzuentwickeln. Somit erhöhen Sie die „Experience" in der eigenen Kundenzufriedenheit, bei den Entwicklern und der Stabilität der Systems.

Zielgruppen:

Unser Setup hilft E-Commerce Betreibern, Agenturen, die Software entwickeln und gemeinschaftliche Projektentwickler.

Umfang:

Der DevOps Cycle beruht bei uns auf 3 Säulen, wie der lokalen Entwicklungsumgebung, der Orchestrierung und der Server Infrastruktur.
Je nach Bedarf kann entschieden werden, ob Säule 1 (lokale Entwicklungsumgebung) des Kreislaufs benötigt wird, ein anderer Part oder das gesamte Setup. Jede Säule ist einzeln nutzbar und in EINE Struktur integrier- und umsetzbar. Das bedeutet, dass wir SEHR flexibel in der Umsetzung Ihrer individuellen Wünsche bzw. in der Bearbeitung Ihres vorhandenen Setups sind. Die Nutzung jeder einzelnen Säule ist noch kein Kreislauf - sondern eine „Einbahnstrasse". Nur die Summe der einzelnen Säulen inkl. des automatisierten Feedbacks führt zu einem neuen Erlebnis in der Softwareentwicklung (Experience).

Technische Basis des DevOps Lifecycles

Lokale Entwicklungsumgebung

Wir nutzen in unserer lokalen Entwicklungsumgebung Tests in den Bereichen ‚Unit‘, ‚Acceptance‘ und ‚Functional‘. So wird direkt die Qualität der Code-Bausteine (z.B. Magento 2 oder Sylius) überprüft. In der Entwicklungsumgebung mit Best Practises sind verschiedene Setups vorkonfiguriert, die einen schnellen Einstieg in das Projekt ermöglichen, so dass Entwickler sofort anfangen können zu arbeiten. Die einzelnen Entwickleraufgaben (Tickets, Tasks, Issues) sind in Ticketsystemen wie z.B. Gitlab, Redmine, Jira oder ähnlichen protokolliert. Bei uns ist durch die Nutzung von Gitlab als Ticketsystem direkt alles miteinander verknüpft, Projektmanagement, Ticketerstellung und -planung, Testing und Auslieferung.

Orchestrierung

Die Orchestrierung ist der Motor für den DevOps Cycle. Darüber kann der Automatisierungsgrad der Prozesse innerhalb der Entwicklungspipeline (Continuous Delivery/ Integration / Deployment) festgelegt werden. Wir nutzen als Orchestrierung Gitlab. Das Versionskontrollsystem hat automatisierte Test, baut die Pipeline für den gewünschten Code und das Auto-Deployment kann jederzeit angestoßen werden. Wir arbeiten mit einem für GitLab angepassten GitFlow Prozess. Wie bei der lokalen Entwicklungsumgebung sind hier Static Tests (Unit Testing) und Acceptance Tests (Frontend Testing) integriert und der getestete Code kann automatisiert ausgeliefert werden, wenn er den Validierungsparametern für das Live-Deployment entspricht. Die Orchestrierung ist systemunabhängig, letztendlich ist es eine Konfiguration ob Magento, Sylius, Shopware, Symfony, Spryker oder andere Software/Frameworks bedient werden sollen.

Server Infrastruktur

Die Struktur der Serverlandschaft bedarf eine Definition: Welche Art von Server soll genutzt werden? Zum Beispiel Bare Metal Hoster oder ein Cloud Hoster? Hier gibt es weitere Unterschiede in hochskalierbar wie AWS und kostengünstigere Alternativen. Auch für die Serversoftware gibt es unterschiedliche Möglichkeiten. Wenn Sie bereits eine fertige, stabile Server Infrastruktur haben, kann diese weiter genutzt werden. Alternativ bieten wir unser Setup an. Wir nutzen eine Docker basierte AWS Struktur mit Kubernetes. Darüber bedienen wir Instanzen vom Test- bis zum Produktivsystem.

Die Dev-Umgebung für automatisiertes Testing, die Stage-Umgebung für internes Testing, die Release-Umgebung als Kunden-Testsystem, die Prod-Umgebung - das sind der tatsächliche Live-Shop. Zusätzlich sind je nach Projektgröße Feature-Umgebungen möglich, in der einzelne Feature losgelöst getestet werden können.

Automatisiertes Feedback über Monitoring & Logging um DevOps Cycle zu schließen

Optional empfehlen wir ein Monitoring und Logging des Produktivsystems einzurichten. Mit dem Monitoring werden wir über eine vorliegende Störung informiert. Mit dem richtigen Logging kann in einem Störfall schnell und zielgerichtet eingegriffen werden, um Probleme zu beseitigen.

Ein stabiles System ist das A und O

Unsere Kernkompetenz ist die Deployment-Infrastruktur zukunftsweisend zu planen und aufzubauen. Mit dem neusten Stand der Technik und stetigem Feedback aus dem Live-System, haben wir best-mögliche Sicherheit und Performance. Wir sind immer in der Lage auf aktuellen Live-Versionen neue Entwicklungen anzustoßen und auszuprobieren.
Trotz ständiger Feature-Entwicklungen nach Kundenwünschen halten wir das System stabil. Hierüber schließt sich der DevOps Cycle. Shopsysteme an sich sind recht komplex und teilweise kleinteilig - daher empfiehlt es sich den gesamten Prozess weitgehend zu automatisieren.

Ihre Vorteile

Unser gelebter DevOps Cycle garantiert, dass Projekte mit Hilfe der agilen Infrastruktur wirklich agil entwickelt werden können - der Traum eines jeden Kunden, Entwicklers und Projektmanagers.

Die Vorteile dieser Vorgehensweise sind die schnelle und verlässliche Behebung von Codefehlern, um Kosten aufgrund von Fehlprogrammierungen von Anfang an so gering wie möglich zu halten (je später Fehler erkannt werden, desto aufwendiger ist es den Fehler zu beheben). Das Projekt ist lokal schnell aufzusetzen (lokale Entwicklungsumgebung) und die Deployment Struktur kann für große, unterschiedliche Projekte genutzt werden.

Bei unserer Continuous Development Experience geht es um das dynamische Integrieren von Code, sowie um das Überprüfen von Codes mit Units und/oder Acceptance-Tests (Best Practices). Nach positivem Testing wird das Entwickelte automatisiert auf einen Test-Server deployt. Das kontinuierliche Bauen der Software kann somit als standardisierter Prozess für unterschiedliche Frameworks definiert werden. Über den automatisierten Feedbackkanal des Livesystems wird Coden zum Erlebnis.
Nutzen Sie bei der lokalen Entwicklungsumgebung ein lokales Setup, welches immer in der gleichen Form für Projekte verwendet wird, führen wir gerne ein Refactoring Ihrer vorhandenen Struktur durch, um Verbesserungsvorschläge zu definieren (SOLL/IST).
Die automatisierte Erstellung von Issues in einem Ticketsystem, die sich aus dem Monitoring & Logging ergeben, sind das „Bindeglied". Die Tickets können anschließend in der Planung des Projektmanager berücksichtigt werden. Aufgrund dessen findet eine ständige Codeverbesserung statt und das System wird neben der Feature-Entwicklung anwenderfreundlicher, performanter, stabiler, wartbarer und macht Spaß und Freude in der Anwendung.

USP’s unserer ‘Continuous Deployment Experience' (CDX):

Sie können in hohem Maße mitbestimmen:
  • 100% customer driven
  • Komplettes Sprint Deployment - alternativ spezielles Feature Deployment
  • Budgetersparnis
  • Mehr Umsatz durch stabileres System & schnelle Features
  • Über verschiedene Testinstanzen können Sie zeitlich mitbestimmen, wann was live gestellt wird
Projektmanagement & Stakeholder können verlässlich planen:
  • Entwickler & PMler können sehr agil an unterschiedlichen Projekte arbeiten & zwischen diesen variieren
  • Automatisierte Ticketerstellung
  • Geringere interne Verwaltungskosten
  • Ausführlich getesteter Code geht schneller live
Entwickler können stressfrei entwickeln:
  • Frühzeitige Fehlermeldungen durch intensives Testing
  • Funktionierende & einfach zu nutzende Struktur
  • Identische Projektstruktur für alle Projekte (systemunabhängig)
  • Schnelle Durchlaufzeiten

Continuous Integration, Delivery und Deployment

Der Start mit Continuous Integration

Bei Continuous Integration geht es um das Integrieren von Code sowie um das Validieren von Codes mit Units und/oder Acceptance-Tests. Nach positiver Validierung wird das Entwickelte automatisiert auf einem Test-Server deployt. Das kontinuierliche Bauen der Software ist somit als Prozess verfügbar, das eigentliche Installieren auf dem Webserver muss händisch angestoßen werden.

Next Step - Continuous Delivery

Im Continuous Delivery Prozess ist der Shop auf Basis von Releases deploybar. Die Tests sind automatisiert integriert und das Auto-Deployment kann jederzeit angestoßen werden. Wir orientieren uns an GitLab Flow, das immer noch in stetiger Entwicklung ist. Wie auch im ersten Step sind hier bereits Static Tests (Unit Testing) und Acceptance Tests (Frontend Testing) integriert und der getestete Code wird automatisiert, „auf Knopfdruck", ausgeliefert.

Letzter Schritt - Continuous Deployment

Der letzte Hebel zur Live-Stellung wird in diesem Prozess nicht mehr händisch angestoßen und läuft vollautomatisiert. Das heißt, wenn der getestete Code den Validierungsparametern für das Live-Deployment entspricht, wird dieser live geschoben - ohne menschliches Eingreifen. Ob dieser Prozess gewünscht ist, liegt in Ihrer Erwartungshaltung - möglich ist es.

Warum sollten Sie Ihren Deployment-Prozess automatisieren?

Schon beim Aufsetzen der Entwicklungs-Infrastruktur sollten Sie auch das Produktiv-System im Blick haben und natürlich an das Thema Magento Hosting denken - der Umzug mit Magento auf einen anderen Server ist immer mit einer Downtime verbunden. Gerne helfen wir Ihnen dabei, Ihre Deployment-Infrastruktur zukunftsweisend zu planen, aufzubauen und stets auf dem neusten Stand der Technik zu halten.
Magento als Shopsystem zu deployen ist mit vielen kleinen Schritten verbunden. Um keinen zu vergessen und um Zeit zu sparen macht es Sinn, den gesamten Prozess zu automatisieren. Vor allem das Integrieren von Best Practices zur Codequalität sowie Integration von Testing sind für die Automatisierung geeignet.

Deployment-Infrastruktur - Inhouse-Lösung

Wenn Sie intern Mitarbeiter*innen im Bereich DevOps mit Magento Skills haben, sind das perfekte Voraussetzungen für eine interne Lösung. Sollte es an Know-how fehlen, vermitteln wir gerne in internen Schulungen das nötige Fachwissen.
CITT - Continuous Integration Training und seTup

Externe Deployment-Infrastruktur-Lösung

Sie haben Inhouse keine fachlichen Kapazitäten oder möchten von vornherein den Bereich Deployment-Infrastruktur auslagern? Kein Problem! Wir nehmen Ihr Projekt gerne in unsere bestehende Infrastruktur auf. Da wir Ihr Projekt nicht kennen, gehen wir von einem Standard-Setup aus. Hierfür haben wir eine Anforderungsliste zusammengestellt und kalkuliert, was die Test-Infrastruktur bei uns kostet.
Continuous Deployment für Ihren Magento Online-Shop

Können Sie diese Deployment Struktur mit jedem Hoster nutzen?

Das lässt sich pauschal nicht beantworten. Es ist immer im Einzelfall zu prüfen, ob die entsprechenden Konfigurationsmöglichkeiten bei dem gewählten Hoster zu Verfügung stehen. Sollte dies nicht der Fall sein, evaluieren wir mit Ihnen gerne die Anforderungen und geben Empfehlungen für Hostingpakete und Hoster. Wir selber hosten nicht. Wir empfehlen immer ein managed Hosting 24/7, da wir keine 24/7 Bereitschaft anbieten. Für das Hostingpaket ist nicht nur die Deployment Infrastruktur maßgebend, sondern auch die generelle Struktur des Magento Online-Shops wie z.B. Varnish, Redis, FPC, Cache Warmer, Loadbalancer, High availability setup etc. - welche Tools eingesetzt werden hängt vom Kundenanspruch und Budget ab. Hier beraten wir Sie sehr gerne. Jetzt Infrastruktur Beratung anfordern.
webvisum layer Logo

Warum sollte man innerhalb der Infrastruktur testen?

Zu einem perfekt umgesetzten Magento Projekt gehört auch eine gute Test-Infrastruktur. Nach unseren Anfängen mit Continuous Integration und dem späteren Wechsel auf Continuous Delivery arbeiten wir heute intern mit GitLab Continuous Deployment und damit befinden wir uns in der Königsklasse. Was das konkret bedeutet, können Sie demnächst in unserem Blog lesen.
Wir können keine Produkte entsprechend dieser Auswahl finden

Schreiben Sie Uns

Get in touch:

Schreiben Sie uns eine Nachricht und wir werden uns schnellstmöglich bei Ihnen melden.