Ich würde gerne ein paar Fragen in die Runde werfen welche den einen oder anderen ev. auch interessieren im Zusammenhang mit einem Projekt & Support Workflow
Anbei sind die Vorschläge, wie ich es für unsere Kunden handhabe (arbeite seit knapp 5 Monaten mit Shopware) und sollte für Neulinge mit Vorsicht behandelt werden.
Würde mich freuen, wenn ihr Punkte ergänzt.
LG Stefano aka. Arya_Svitkona
Generell:
Wie sieht euer Projekt Workflow für Kundenprojekte aus?
Plugins und Änderungen werden immer zuerst auf dem Testsystem ausgeführt und anschliessend ERNEUT im Liveshop durchgeführt mit aktiviertem Wartungsmodus.
Welche Punkte sind bei einer Installation besonders zu beachten?
gekaufte Lizenzen wenn möglich direkt auf die richtige Domain ausstellen (ansonsten via Backend / Kontaktformular bei Shopware umschreiben lassen)
Cron Plugin installieren und via Cronjob für alle „SW Cronjobs“ ausführen
Machen wir es vielleicht ein wenig einfacher: Wer nutzt Testsysteme und wie sind diese Aufgebaut?
Aus meiner Sicht bin ich beinahe gezwungen (bezüglich Lizenz) in einem Unterordner des Liveshops, meine Entwicklungs Umgebung zu hosten.
Funktioniert eine Lokale installation mit angepasster .host Datei? (www.meinshop.ch verweist auf 127.0.0.1)?
wir setzen oft eine (passwortgeschützte) Testumgebung in einem Unterordner ein, gerade auch wegen dem Punkt Lizenzen, da diese ja an eine Domain gebunden sind. Die Testumgebungen sind dann ganz einfach eine Replik des Live-Systems mit einer eigenen Datenbank. Updates, sei es des Shopsystems oder von Plugins, werden natürlich vorher erst im Testsystem durchgeführt.
Für die Fehleranalyse würde ich in der config.php noch den Wert:
Wie bringt ihr die Änderungen ins Livesystem?
Alle Änderungen erneut machen (grosser Aufwand z.b. bei Einkaufswelten mit Bilder upload etc.) oder Kopiert ihr die Lagerbestände etc. in den Testshop und setzt diesen Live?
Für die Umsetzung haben wir eine Lizenz mit Zugang zu einer Staging Umgebung. Auf dem Staging haben wir mehrere SW Installationen und können per vHost Anpassung des darauf laufendenen Webservers zwischen den verschiedenen Testinstanzen wechseln. Auf diese Weise können wir diverse Testinstallatioen betreiben und immer auf die lizenzierten Features zurückgreifen, z.B. Premium Plugins.
Bezüglich Updates / größerer Änderungen arbeiten wir mit SQL Historien. Alle Änderungen der letzten 2 Stunden werden dann in die Produktiv Datenbank synchronisiert, ausgenommen unwichtiger Tables wie Bestellungen, Kunden, etc.
Falls das nicht klappt wie wir uns das bislang überlegt haben werden wir per Script eine Kopie der Produktivumgebung machen, dort die Änderungen umsetzen und testen und wenn es klappt, die fertige Testumgebung wieder zurückbügeln, ausgenommen Kunden/Bestellungen.
Man muss halt nur Kleinigkeiten beachten wie Cache löschen etc.
Besten Dank für die ausführliche Antwort
Somit würden bei einem Update von 5.1.0 auf 5.1.3 (als Beispiel) die Kundendaten und die Bestellungen „verloren“ gehen und müssten manuell vom Kunden nachgetragen werden (neu Bestellen)?
Klingt für unseren Zweck ein wenig nach einem grösseren Unterfangen, scheint mir jedoch sauber durchdacht zu sein.
Lese mir den Post in Ruhe erneut durch und würde mich sonst nochmals melden.
Es gehen nur die Daten verloren die während der arbeiten an der kopierten Instanz gemacht werden.
Entweder also danach ein Abgleich der Daten machen wenn aus Test wieder zu produktiv repliziert wird, oder diese Daten einfach auslassen sodass Bestellungen+Kunden nie überschrieben werden in der Produktivdatenbank.
Updates z.B. macht man ja i.d.R. Spät Abends wenn das Tagesgeschäft durch ist, dann passiert ja meist eh nichts. Ansonsten, Wartungsmodus aktivieren damit in der Zeit keine Order dazwischenfunken kann.
Zurzeit mach ich das alles von Hand resp. mit einem shell script…wollte mitte Jahr ein Plugin schreiben und der Community was zurückgeben, aber da ist mir jemand zuvorgekommen. Well done!
Ja das mit den Plugins ist schon immer eine mühsame geschichte.
Einfach wäre es wenn die Plugins bei Lokalen Installationen gar nicht nach einer Gültigen Lizenz schauen und das man eine Subdomain als dev umgebung hinterlegen kann.