[002] Hilfe ein Update!

Veröffentlichung:

Willkommen zu der zweiten Folge des bereits jetzt legendären shopcast.fm Podcasts. Wie schon angekündigt möchten wir uns abwechselnd auch praktischen Shoptech Themen widmen. Themen die wehtun können, Themen die auch Angst und Schrecken verbreiten können, Themen wie “Hilfe, ein Update”. Wenn ihr jetzt in Schock und Starre verfallen seid, das Thema kommt von Marcus, er ist der Schuldige :).

Aber noch könnt ihr flüchten, denn vorher berichten wir über unser unglaublich aufgregendes Leben. So erzählt Niklas von seinen Geister-Escaperoom Erfahrungen und damit verbundenen Ängsten “angefasst” zu werden. Marcus tut was ein Marcus tun muss, nämlich einen neuen Shop aufbauen - mit einer rekordverdächtigen Zeitvorgabe. Zum Glück soll er aber einen Artikel beinhalten. Edin jammert mal wieder über seinen Agentur-Stress und outet sich als ehemaliger Java-Programmierer.

Danach widmen wir uns dem Hauptanliegen. Zunächst wird es chaotisch theoretisch. Es werden (vielleicht) Grenzen zwischen einem Update, Upgrade und einer Migration gezogen. Dabei werden seitens Niklas 50 verschiedene Shades of Migrations erörtert. Es werden Updatearten in passende Schubladen gesteckt wie Security, Patch, Minor und Major (Achtung! Dies ist kein Militärrangordnungsbegriff) und wie man diese z.B. nach semver durchnummerieren kann. Im gleichen Atemzug erklärt uns Niklas warum bei Shopware dieses sinnvolle Durchnummerierungsystem selbstverständluch umgekrempelt wird. Wir wären aber nicht wir wenn wir einheitlicher Meinung wären ob z.B. Shopware Update von 5.5 auf 5.6 ein Update oder Upgrade ist (Achtung Spoiler-Alarm: es kommt drauf an ob ein Update einen Migrationshintergrund hat). Wo wir uns drei aber defintiv einig sind, dass wir von einem guten und wertvollem Upgrade sprechen wenn man von anderen Systemen nach Shopware wechselt :)

Nachdem der philosophische Part nun abgeschlossen ist wenden wir uns dem Praktizismus zu. Niklas wirft eine leicht ketzerische Frage in den Raum: Soll man bei eher simplen Shops einfach so ein Update machen, sprich ins Backend reingehen und den Knopf drücken? Auch wenn das Gesicht von Marcus nicht zu sehen ist, fühlt man sein blankes Entsetzen. Und wenn es mit dem Update z.B. aufgrund einer Sicherheitslücke gar nicht schnell genug gehen kann? Hierfür gibt es in der Shopware-Welt das bekannte Sicherheitsplugin. Damit bekommt man die aktuellen Lücken schnell gestopft um das richtige Update mit Ruhe, Bedacht und Tests einzuspielen. Edin berichtet parallel von seiner Daumen ohne Pi Regel, wie lange man nach der Verfügbarkeit eines Updates auf das Einspielen abwarten sollte, weil da gab es mal so ne Sache in der Vergangenheit. Und die Release Notes sollten grundsätzlich zu Rate gezogen werden, wie Marcus richtigerweise anmerkt.

Um die Thematik nicht ausschliesslich aus der Shopware Perspektive zu betrachten, wird über die Update-Erfahrungen mit Gambio berichtet. Zudem wird die Qualität der Release Notes verschiedener Systeme angesprochen und Niklas punktet mit interessanten Insights zum Thema Erstellen der Security Updates von Shopware.

Bekanntermaßen gehören das Testen und das Updaten zusammen wie Siegfried und Roy. Aber wie testet man ein Update nun richtig? Niklas hat dazu eine klare Meinung wie es künftig bei Shopware laufen wird. Er stellt uns kurz seine…NEIN, nix da kurz! Natürlich benötigt es einer theoretisch fundierten Einführung über verschiedene Testarten, alleine schon weil Edin und Marcus beim Thema raus sind wie auf Bewährung (Zitat Ferris MC). Kurz vorgespult, the way to go ist Cypress, eine End-to-End Testing-Suite basierend auf Javascript mit der man Frontend-Tests automatisieren kann, riiiichtig lecker! Abgeschlossen wird die Debatte über das was und wie oft getestet werden soll und wo die Grenzen von cypress liegen.

Aber werden heutzutage die Tests und Updates überhaupt noch manuell durchgeführt? Nein, denn auch hier gibt es genug Automatisierungsmöglichkeiten um den Faulheitsdrang eines jeden DevOps zu befriedigen. Die Runde ist sich einig: es geht nix über Deployer. Marcus hat die Ehre es uns vorzustellen. Dank einer von den Kellerkinden auf Github bereitgestellten Deployer-Konfiguration ist der Einstieg Kellerkinder-leicht zu bewältigen. So leicht dass Marcus doch lieber zum guten alten FTP greift :). Spaß, denn wie Marcus richtigerweise anführt, die Voraussetzung für die Nutzung vom Deployer ist eine Composer basierende Shopware Installation. Zum Glück gibt es einige gute Tutorials zu dem Themengebiet, z.B wie man zur Composer Installation switchen kann, wie man mit Hilfe eines Plugins von Shyim auch die gekauften Plugins miteinbeziehen kann, oder ein Beitrag vom Shopware Enterprie Guru Thomas Eiling wie man das Deployement automatisieren kann.

Die Automatisierung bringt für die DevOps viele Vorteile, wir fragen uns aber ob auch der Shop Betreiber davon profitiert. Und überhaupt: wenn man sich die ganzen Tools anschaut, kann ein Shop-Betreiber ohne IT-Hintergrund ruhigen Gewissens ein Update machen? Man kann es der Folge entnehmen, dass die Meinungen etwas auseinandergehen. Als Gegenbeispiel zu komplexen Deployments werden Systeme wie Wordpress genannt, die selbst und eigenständig Updates einfach so durchführen, was nicht unbedingt ein Nachteil sein muss.

Gegen Ende der Folge gehen noch einmal auf die Migrationen ein. Vielen ist das Shopware 5 Migrationstool bekannt. Doch demnächst steht in der Shopwarewelt eine noch viel größere Migrationwelle bevor, nämlich von Shopware 5 auf Shopware 6. Und da weiß uns Marcus bereits einiges zu berichten. Niklas lässt sich nicht die Gelegenheit nehmen uns die Einblicke zur Entstehung solcher Tools zu gewähren.

Zum Schluss erwähnen wir noch ein Paar nützliche Tipps auf die wir aus Zeitgründen nicht mehr ganz gebührend eingehen können:

  • Shopware Update Check erstellt die Liste alle Changes zwischen zwei beliebig wählbaren Shopware Versionen
  • Blue/Green Deployement Ansatz um zwischen zwei Major (Minor? 🤔) Versionen sich vor und zurück bewegen zu können
  • Shopware-eigenes FAQ bei Update Problemen
  • Und ein recht alter Tipp: Wenn dein Shopware-Shop im Wartungsmodus ist, man kann einfach durch das Anlegen einer maintenance.html eine eigene Wartungsseite anzeigen.

Noch als berühmte letzten Worte bevor wir uns verabschieden: Gerade bei diesem Thema wird uns einmal mal mehr bewusst wieviel Output und Geduld die Shopware-Community abliefert, wodurch wir alle in unserer täglichen Arbeit profitieren, daher ein dickes Danke an euch alle! ❤️

Bis zum nächsten Mal!

// Edin

Comments powered by Talkyard.