In umfangreicheren Installationen wünscht man sich oft, dass man Änderungen am System nicht an der Live-Site vornehmen muss. Auch ein redaktioneller Workflow ist mit Contao normalerweise nicht vollständig abzubilden. Und ein Backup macht man auch viel zu selten. Hier schafft SyncCto vielseitig Abhilfe.
Die Extension von den Kollegen der Agentur Men at Work ist eine meiner Basisextensions, die ich in so gut wie jeder Installation verwende. Die Fähigkeiten sind vielfältig und reichen von Datenbank- und Filesynchronisation über Versionierung bis hin zum Backupmanagement. Sicher kann ein Backup auch mit anderen Mitteln erstellt werden und eine Installation auch manuell auf ein Livesystem überspielt werden. Mit SyncCto ist das aber übersichtlich und einfach zu lösen.
SyncCto besteht aus mehreren Komponenten, die für Synchronisationseinstellungen, Clients, Backups und den Check auf benötigte Servervoraussetzungen bestehen. Kurz und auf die Kernfunktion beschränkt bietet SyncCto eine Applikation, die auf Quell- und Zielserver innerhalb eines Contao-Systems installiert wird und mit der beide Systeme gegeneinander abgeglichen und synchronisiert werden können.
Die Systemvoraussetzungen sind nicht ganz anspruchslos und beinhalten u.a. Verschlüsselungs- und Packoptionen. Der Transfer das Daten erfolgt - abgesichert durch einen Hash-Key - schlicht mittels HTTP. Probleme mit Firewalls und speziell freizuschaltenden Ports sind also nicht zu erwarten.
Ein möglicher Workflow könnte sein, ein für Redakteure zugängliches System auf einen Liveserver zu synchronisieren - in der Fachsprache nennt sich das 'Staging'. Änderungen werden nicht am Livesystem vorgenommen sondern an einem Server, der auch geschützt mittels Authentifizierung, lokal oder in einem Intranet stehen kann. Haben redaktionelle Userinnen und User Änderungen in diesem geschützten System vorgenommen und sind alle Änderungen abgenommen, dann kann der Datenstand mit dem Liveserver abgeglichen werden - die Daten sind erst danach 'veröffentlicht'.
Im Redaktionssystem wird dazu der Liveserver als 'Client' angelegt und der dort erzeugte Schlüssel-Hashwert hinterlegt. Diese Absicherung verhindert zuverlässig die Kaperung fremder Live-Server. Schon vor Beginn der Synchronisation gibt ein Status-Icon Auskunft über die ordnungsgemäße Funktion des Client-Zielservers, auch ein Systemcheck ist remote möglich.
Grundsätzlich findet eine Synchronisation auf Grundlage vorab festgelegter Einstellungen statt - welche Datenbanktabellen, welche Ordner aus der Dateistruktur. Nutzer (also beispielsweise Redakteure) muss man nicht synchronisieren - sie haben auf dem Livesystem ohnehin nichts verloren. Nach Klick auf 'Client synchronisieren' erfolgt eine Abfrage, welche Bereiche synchronisiert werden sollen (Datenbank, Dateien), danach werden die Datenstände beider Systeme verglichen und in zwei Detailseiten zur Überprüfung und Bestätigung angeboten.
Anschließend werden alle ausgewählten Daten auf das Zielsystem übertragen, dort entpackt und eventuell fällige Datenbankupdates angestoßen. Eine gute Idee ist es, dabei in der Ferne die Caches leeren zu lassen. Insgesamt ist eine Synchronisation erstaunlich schnell - sieht man mal vor der Replikation vollständiger Contao-Installationen ab, bei denen durchaus etliche Megabyte durch die Leitungen rauschen können.
Damit ist dann schon das zweite Highlight von SyncCto erwähnt. Die Extension ist in der Lage, Installationen der Contao-Versionen 2.9 bis 2.11 3.5 vollständig zu replizieren. Einzige Voraussetzung dazu ist auf der Gegenseite ein installiertes Contao ab Version 2.9 und ein dort installiertes SyncCto. Dabei ist es vollkommen unerheblich, ob die Contao-Versionen gleich oder unterschiedlich sind. Ein auf dem Zielserver fälliges Update (oder auch Downgrade) wird bei der Synchronisierung automatisch durchgeführt.
Für mich hat es sich also bewährt, auf einem eigenen Server ein neues System zu entwickeln, dann auf dem Zielsystem Contao zu installieren (was mit Hilfe des neuen Contao-Checktools auch in unter einer Minute erledigt ist), dort SyncCto zu installieren, den benötigten Schlüssel zu erzeugen und dann das Entwicklungssystem einfach draufzusynchronisieren. Das geht auch fix.
Für Backups gehen wir gerne den umgekehrten Weg. Neben der Möglichkeit, direkt im Backend Datenbank und Dateistruktur (auch einer vollständigen Contao-Installation) zu sichern kann man ja auch ein Notfallsystem im Liveserver als Client hinterlegen. Der Backupserver wird dann also ebenfalls mit SyncCto bespielt. Befindet sich eine Backupinstallation auf demselben Server (vielleicht unter einer Subdomain), dann kann man ein Notfallsystem also im Fall der Fälle binnen weniger Minuten Live schalten und so Ausfallzeiten minimieren.
Wem die Einstellungsmöglichkeiten jetzt noch nicht reichen oder wer sich die Unterstützung automatisierter Synchronisation mittels Cronjob wünscht: demnächst wird es eine 'Pro'-Version geben, die das unterstützt. Dann wird es auch möglich sein, einzelne Systemeinstellungen einesContao-Systems von der Synchronisation auszunehmen - wie beispielsweise hinterlegte Domains eines CDN.
Fazit:
SyncCto macht vieles richtig. Für den Alltagsbetrieb, für schnelle Installationen und sichere Backups ist es ein absolut empfehlenswertes Tool. Ein kleiner Minuspunkt ist, dass erweiterte Voreinstellungen und Automatisierung erst in der Pro-Version zur Verfügung stehen werden.
Einen Kommentar schreiben
Kommentar von Maik |
Update des Artikels? Es hat sich ja schon einiges getan.
LG
Antwort von Carolina Koehn
Was gibt es da upzudaten? Inhaltlich stimmt das ja weiterhin.
Hast Du Fragen oder Anregungen? Dann nutze die Kommentarfunktion.