Magento Sicherheits-Patches mit Git

·

·

Der aktuelle Patch von Magento (PATCH-SUPEE-6788) setzt voraus, dass die meisten Patches, die vorher veröffentlicht wurden bereits auf den Shop angewendet wurden.

Da viele Extenstions und Module nach Anwendung PATCH-SUPEE-6788 nicht mehr richtig funktionieren, muss der jeweilige Shop erst auf einer Sandbox getestet werden. Das Problem dabei ist, dass manche Patches eine Änderung an der Datenbank vornehmen. Spielt man also nach dem Testen einfach den komplett gepatchten Shop auf den Liveserver, wird es ziemlich sicher Probleme mit der Datenbank geben. Die Updates sollten also Step-by-Step vorgenommen werden.

Theoretisch müsste ein Shop also erst auf dem Rechner des Developers Step-by-Step gepached werden. Danach auf der Sandbox nochmal, und ein drittes mal auf dem Liveserver.

Um das zu vermeiden lässt sich folgender Git-Workflow einsetzen:

Sicherheits-Patches auf dem Rechner des Developers

  1. Der Developer erstellt pro Patch eine Branch die auf der vorherigen basiert.
  2. Nach Anwendung des letzten Patches (SUPEE-6788) wird ein Dump der lokalen Datenbank erstellt.
  3. Die letzte Branch wird mit der Datanbank auf der Sandbox installiert und getestet
  4. Bei positiven Tests, kann nun auf dem Liveserver Step-by-Step eine Branch nach der anderen gemerged und deployed werden.

supee-6788-grafik

Der Vorgang ist also wie folgt:

Beispiel: Erster Patch

git checkout -b 1­-SUPEE­-nnn

­

  • Danach den Patch anwenden
  • Cache löschen
  • Shop Admin aufrufen
  • Shop Testen
git add --all
git commit -m"1 Patch-Supee-nnn"

Danach wird von dieser Branch aus die nächste Branch für den nächsten Patch erstellt.

Die letzte Branch (Im Beispiel «Patch 3») wird dann mit einem Datanbankdump auf der Sandbox installiert und getestet.

Deployment auf dem Liveserver

Auf dem Liveserver kann nicht einfach ein Datenbankdump eingespielt werden. Zwischenzeitlich sind ja Bestellungen, Registrierungen etc. in dem Shop eingegangen. Deswegen wird nun Branch für Branch gemerged und auf den Liveserver gepulled.
Nach jeder Branch wird auf dem Liveserver wieder der cache gelöscht und der Shop getestet.

supee-6788-grafik2

Auch wenn das ganze auf Anhieb etwas aufwändig aussieht, bietet diese Vorgehensweise die maximale Flexibilität und Sicherheit.