SlideShare ist ein Scribd-Unternehmen logo
1 von 35
In komplexen Umgebungen
TYPO3 Migration
in komplexen Umgebungen
Upgrade
Relaunch
Update
● Extensionentwicklung
(Powermail, Femanager)
● TYPO3-Trainer
● Certified Developer
● Certified Integrator
● TYPO3-Engagement
● Gründer in2code
Alexander
Kellner
● Platinummember
● Extensions
● TYPO3 Usergroup
● Sponsor
● Organisator
● Ehrenamtliche
Mitarbeit
● Nur TYPO3
in2code
TYPO3
Migrationen
● Update
● Upgrade
● Relaunch
● Migration
● Individualisierung
● Technische Schulden
● Ökonomie
Definition
Was kostet ein TYPO3-Update und wie lange
wird es dauern?
Aufwand? Gering:
# composer update typo3/cms
# ./vendor/bin/typo3cms database:updateschema
# ./vendor/bin/typo3cms upgrade:all
Ja, aber...
„I love deadlines. I like the
whooshing sound they makes as they
fly by.“
DOUGLAS ADAMS
13 Schritte
Zur erfolgreichen Migration
#1 Aufwandsschätzung
● Anzahl, Qualität der eingesetzten
Erweiterungen (Update? Ersatz? Fork?
Migration? Entfall?)
● Schnittstellen?
● Konfiguration (TypoScript,
TSConfig, PHP, YAML, etc…)
● Refactoring?
● RWD vs. vorhandene Inhalte
(Tabellen + Bilder im RTE, etc...)
Komplexität? Umfang? Altlasten?
Viele Extensions mal schnell ausprobiert?
Was wird überhaupt noch benutzt?
#2 Roadmap
● Gemeinsam mit Auftraggeber/Product-
Owner/Projektleitung
● Zeiträume für technische
Updates, Migration, händische
Nachabeiten, Content Freeze,
Rollout
● Verbindlichkeiten (wer muss
bis wann was liefern)
Tipp: Regelmäßige Treffen oder
Telefonkonferenzen sind unersetzlich
#3 Migrationsbaum
● Auf alter Live-Umgebung
● Alle Seitentypen, Content Elemente,
Plugins (in verschiedenen Ausprägungen),
Überschriften, Fließtextformatierungen,
Bildpositionen, Sprachen, etc...
● Auch künftig nicht mehr verwendete
Elemente
Beispiel: Migrationsbaum auf alter Umgebung
#4 Evaluierung Content
● Gemeinsam mit Auftraggeber
● Welche Elemente müssen
wie migriert werden?
● Welche Elemente können entfallen?
● Gibt es neue Elemente?
● Tipp: Extension additional_reports zeigt
die Verwendung von Plugins an
Tipp: Einige Elemente sind eventuell gar nicht
(mehr) in Benutzung – eine Analyse lohnt sich!
#5 From the scratch
● Entwicklung auf neuem Server
● Leere Instanz
● Alle benötigten Funktionen
● Alte Konfiguration oder Refactoring
(falls möglich)
● Erstellung eines Testbaums (ähnlich
Migrationsbaum) mit allen Funktionen, CE,
Layouts, Plugins, etc...
Tipp: Gleichzeitige Verwendung des Testbaums
als Online-Hilfe für Redakteure
#6 Update
● Einspielen der alten Datenbank
+ Dateien und Update mit Bordmitteln
● Install Tool (Upgrade-Wizard, DB-Compare)
● Eventuell Zwischenschritte (6 → 7 → 8)
● Tipp: typo3_console + Shellscript für
häufigere Updates
Schrittweise: TYPO3-Update
# ./vendor/bin/typo3cms upgrade:wizard
--identifier=processedFilesChecksum
#7 Automatische Migration
● Individuelle Migration des Contents
(z.B. templavoila → gridelements,
csc → fsc, tt_news → news,
backend_layouts, Eigenentwicklungen)
● Migration über Shell
● Stetiger Prozess bis Ergebnis ideal
● Vergleich Migrationsbaum
alte vs. neue Umgebung (im FE)
Beispiel: Content-Migration
#8 Problembehandlung
● Mögliche Probleme nach automatischer
Migration bzw. durch Verwendung eines
neuen Layouts mit alten Inhalten
(Oftmals: Bilder im RTE, Tabellen im RTE,
Grid in Grids, Tabellen, Textlaufweiten,
Bildgrößen, „Editor-Hacks“, etc…)
● Anpassung der Migration bzw.
● Händische Nacharbeit
(Abhängig vom Aufwand)
Leider: Ein perfektes, automatisch erzeugtes
Ergebnis gibt es in der Regel nicht.
#9 Content-Freeze
● Übergangszeit zwischen finaler Migration
und Launch
● $GLOBALS['TYPO3_CONF_VARS']
['BE']['adminOnly'] = 1;
● Dauer sehr unterschiedlich (ja nach Umfang
Nacharbeiten, größe des Redaktionsteams)
● Alternative: Doppelpflege der Inhalte
auf alter und neuer Umgebung
Tipp: Redakteure mit einbeziehen und über
Zeitplan, Erfolg und Hürden informieren.
#10 Finale Migration
● Letzte automatisierte Migration
● Schrittweise
an Hand der Migrationsdokumentation
bzw. des Migrationsprotokolls
Fertige Migration: Von TemplaVoila zu
Gridelements (mit Shortcuts)
#11 Händische Nacharbeiten
● Umbau Seitenstruktur
(häufig bereits auf alter
Umgebung vor Content Freeze)
● Seitenweise Kontrolle
● „Aufhübschen“ des Contents
● Auflösen von „Grids in Grids“
● Sauberer Nachbau von „Editor Hacks“
● Bilder erneuern/ergänzen
Beispiel: Gridelements m. Verschachtelungstiefe
von 8 – händisches Auflösen der einfachste Weg
#12 Relaunch
● Neue Seite unter Hauptdomain
verfügbar machen
(DNS, Virtual Host Einträge, etc…)
● Backend freigeben
● Redakteure benachrichtigen
Tipp: Halten Sie Ihre Redakteure auf dem
Laufenden.
#13 Benefits
● Upgrade statt Update
● Darüber sprechen
● Google Pagespeed
● Performance
● Usability
Tipp: Zeigen Sie den Wert Ihrer Arbeit nach
dem Projekt mit einer Mail an die Beteiligten
„Der Zauber steckt immer
im Detail.“
THEODOR FONTANE
Die automatisierte Migration
Hands on
TYPO3 Migration
Hochschule Karlsruhe
Was zu tun war
• Migration Ext Einrichtung:
pthskaadmin => facilities
• Migration Ext Downloads:
pthskaadmin => downloads
• Migration Ext Kontakte:
pthskaadmin => contacts
• Migration Ext Videos: hskalisting
=> in2videoaudio
• Migration Ext Audios: hskalisting
=> in2videoaudio
• Migration fe_users: pthskaadmin
=> users
• Migration Ext News:
tt_news => news
• Migration Ext Formulare:
Powermail 2.0 => 3.x
• Migration Ext Mails:
Powermail 2.0 => 3.x
• Migration Ext Kalender:
pthskaadmin => hskacalendar
• Migration Seiten:
TemplaVoila => backend_layouts
• Migration Content:
CSC => FSC
• Migration Content:
TemplaVoila => gridelements
Alt Neu
Migration
Der generelle Aufbau
● Parallelbetrieb auf 2 Servern:
● Projektstatus für Beteiligte
● Versch. PHP, MySQL Versionen
● Störungsfreier Betrieb der Seite
● Lokale Migration (empfohlen)
● Migrationsergebnis von Zeit zu Zeit
auf neuem Server bereitstellen
Die 4 Schritte
● 1. Anpassung (Nachbesserung) -
Migrationsscript verbessern oder
anpassen
● 2. Migration durchführen
(testweise aus partiell)
● 3. Ergebniskontrolle – Vergleich an
Hand des Migrationsbaums
● 4. Reset der Migration – Daten/Dateien
zurücksetzen (z.B. Dump einspielen)
Migration
Kontrolle
Anpassung
Reset
Funktionen
Dev: Migration
Projektdauer optimieren
● Beispielteam aus 3 Personen
● Parallelisierung Funktion/Migration
● 2 kurzlebige Entwicklungsserver
● Stand Migration (Migrationsbaum)
● Stand Funktionen (Funktionsbaum)
● Server während Projekt relevant
● Server können anschließend
entfernt oder umgewandelt
werden
Migration
GIT
Dev: Funktionen (BE)
Dev: Funktionen (FE)
DB/Files
Deployment
Dokumentation
● Individuelle Migration muss beim
Erstellen häufig durchgeführt (und ggf.
zurück gerollt werden):
Änderungen + Fortschritte dokumentieren
● „Truck-Number“ erhöhen
● Transparenz für Auftraggeber
● Erfahrungen ins nächste Projekt
übernehmen
Tipp: Schritte dokumentieren
Migrationsprotokoll
Importer Boilerplate
● Ansehen, kopieren, modifizieren
● Vereinfacht strukturierte Migrationen
● PHP auf Konsole (CommandController)
● Limitiere Migration auf Seitenbaum etc.
● Viele Konfigurationsmöglichkeiten
● Einige Zusatzfunktionen
github.com/einpraegsam/ImporterBoilerplate
EXT:migration
Blick ins Migrationsscript
„Es ist kein Drama, wenn das Projekt nicht
nach Plan läuft. Es ist ein Drama, wenn der
Verantwortliche nichts davon weiß.“
PETER HOBBS
● Kommunizieren!
● Vereinfachung!
● Migrationsstände
häufig zeigen
● Probleme frühzeitig
melden
● Usability f. Redakteure
● Extensions reduzieren
● Wiederkehrende
Aktionen scripten
Best Practice
Fragen zu TYPO3-Upgrades
oder TYPO3-Migrationen?
in2code.de
KENNST
DU DAS?
Alles immer nur schnell schnell?
Alles irgendwie hinrotzen?
Komm zu uns – TYPO3 geht auch anders!

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

TYPO3: Extension news
TYPO3: Extension newsTYPO3: Extension news
TYPO3: Extension news
 
Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)Neos CMS - das Kompendium (Version 2.0.0)
Neos CMS - das Kompendium (Version 2.0.0)
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep Dive
 
Deploy Magento Shops with Capistrano v3
Deploy Magento Shops with Capistrano  v3Deploy Magento Shops with Capistrano  v3
Deploy Magento Shops with Capistrano v3
 
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerkTYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
 
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
 
Typo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im ÜberblickTypo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im Überblick
 
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
 
TYPO3 CMS 7.4 - Die Neuerungen - pluswerk
TYPO3 CMS 7.4 - Die Neuerungen - pluswerkTYPO3 CMS 7.4 - Die Neuerungen - pluswerk
TYPO3 CMS 7.4 - Die Neuerungen - pluswerk
 
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbHTYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
 
Caretaker TYPO3 Monitoring
Caretaker TYPO3 MonitoringCaretaker TYPO3 Monitoring
Caretaker TYPO3 Monitoring
 
TYPO3 CMS 7
TYPO3 CMS 7TYPO3 CMS 7
TYPO3 CMS 7
 
Upgrade auf TYPO3 6.2
Upgrade auf TYPO3 6.2Upgrade auf TYPO3 6.2
Upgrade auf TYPO3 6.2
 
Dnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basicDnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basic
 
TYPO3 CMS 7.6 - Die Neuerungen - pluswerk
TYPO3 CMS 7.6 - Die Neuerungen - pluswerkTYPO3 CMS 7.6 - Die Neuerungen - pluswerk
TYPO3 CMS 7.6 - Die Neuerungen - pluswerk
 
The Best Things in Life Are Free – Wie Sie Ihre IBM ConnecEons Umgebung koste...
The Best Things in Life Are Free – Wie Sie Ihre IBM ConnecEons Umgebung koste...The Best Things in Life Are Free – Wie Sie Ihre IBM ConnecEons Umgebung koste...
The Best Things in Life Are Free – Wie Sie Ihre IBM ConnecEons Umgebung koste...
 
TYPO3 CMS 7.1 - Die Neuerungen - pluswerk
TYPO3 CMS 7.1 - Die Neuerungen - pluswerkTYPO3 CMS 7.1 - Die Neuerungen - pluswerk
TYPO3 CMS 7.1 - Die Neuerungen - pluswerk
 
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
 
Ec13 xpages-basic
Ec13 xpages-basicEc13 xpages-basic
Ec13 xpages-basic
 

Ähnlich wie TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten

P-I-DO_Automatisierung_Backup_Switches.pdf
P-I-DO_Automatisierung_Backup_Switches.pdfP-I-DO_Automatisierung_Backup_Switches.pdf
P-I-DO_Automatisierung_Backup_Switches.pdf
jnxexo
 

Ähnlich wie TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten (20)

Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Update TYPO3 V4.5 > 6.2 LTS
Update TYPO3 V4.5 > 6.2 LTSUpdate TYPO3 V4.5 > 6.2 LTS
Update TYPO3 V4.5 > 6.2 LTS
 
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerkTYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
 
Neuerungen in TYPO3 6.0
Neuerungen in TYPO3 6.0Neuerungen in TYPO3 6.0
Neuerungen in TYPO3 6.0
 
P-I-DO_Automatisierung_Backup_Switches.pdf
P-I-DO_Automatisierung_Backup_Switches.pdfP-I-DO_Automatisierung_Backup_Switches.pdf
P-I-DO_Automatisierung_Backup_Switches.pdf
 
Domino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
Domino 12(.0.2) Lessons learned - DNUG Stammtisch HamburgDomino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
Domino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
 
TYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerkTYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerk
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?
 
Domino Statistiken verstehen und nutzen (Teil 1) - 41. DNUG Konferenz
Domino Statistiken verstehen und nutzen (Teil 1) - 41. DNUG KonferenzDomino Statistiken verstehen und nutzen (Teil 1) - 41. DNUG Konferenz
Domino Statistiken verstehen und nutzen (Teil 1) - 41. DNUG Konferenz
 
Asynchrone Event Verarbeitung
Asynchrone Event VerarbeitungAsynchrone Event Verarbeitung
Asynchrone Event Verarbeitung
 
der Freitag - Eine überregionale deutsche Wochenzeitung setzt auf Plone
der Freitag - Eine überregionale deutsche Wochenzeitung setzt auf Ploneder Freitag - Eine überregionale deutsche Wochenzeitung setzt auf Plone
der Freitag - Eine überregionale deutsche Wochenzeitung setzt auf Plone
 
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaCloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
 
OSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
OSMC 2010 | Monitoring mit Shinken by Gerhard LaußerOSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
OSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
 
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenIcsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
 
OSMC 2008 | Monitoring von Messaging Systemen mit Nagios by Markus Thiel
OSMC 2008 | Monitoring von Messaging Systemen mit Nagios by Markus ThielOSMC 2008 | Monitoring von Messaging Systemen mit Nagios by Markus Thiel
OSMC 2008 | Monitoring von Messaging Systemen mit Nagios by Markus Thiel
 
Rollout-Prozess für APEX Anwendungen
Rollout-Prozess für APEX AnwendungenRollout-Prozess für APEX Anwendungen
Rollout-Prozess für APEX Anwendungen
 
DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011
 
Making the internet faster HTTP/3 und QUIC
Making the internet faster HTTP/3 und QUICMaking the internet faster HTTP/3 und QUIC
Making the internet faster HTTP/3 und QUIC
 
Rex - Infrastruktur als Code
Rex - Infrastruktur als CodeRex - Infrastruktur als Code
Rex - Infrastruktur als Code
 

Mehr von Alex Kellner

Alle Änderungen zu TYPO3 6.0
Alle Änderungen zu TYPO3 6.0Alle Änderungen zu TYPO3 6.0
Alle Änderungen zu TYPO3 6.0
Alex Kellner
 

Mehr von Alex Kellner (14)

Alle Änderungen zu TYPO3 6.0
Alle Änderungen zu TYPO3 6.0Alle Änderungen zu TYPO3 6.0
Alle Änderungen zu TYPO3 6.0
 
Powermail 2.0
Powermail 2.0Powermail 2.0
Powermail 2.0
 
TYPO3 Extension in2snippets
TYPO3 Extension in2snippetsTYPO3 Extension in2snippets
TYPO3 Extension in2snippets
 
jQuery Mobile mit TYPO3
jQuery Mobile mit TYPO3jQuery Mobile mit TYPO3
jQuery Mobile mit TYPO3
 
TYPO3 coding guidelines
TYPO3 coding guidelinesTYPO3 coding guidelines
TYPO3 coding guidelines
 
jQuery in TYPO3 nutzen
jQuery in TYPO3 nutzenjQuery in TYPO3 nutzen
jQuery in TYPO3 nutzen
 
TYPO3 TypoScript: IF, CASE, CONDITIONS
TYPO3 TypoScript: IF, CASE, CONDITIONSTYPO3 TypoScript: IF, CASE, CONDITIONS
TYPO3 TypoScript: IF, CASE, CONDITIONS
 
Extension linkhandler
Extension linkhandlerExtension linkhandler
Extension linkhandler
 
SEO for Editors
SEO for EditorsSEO for Editors
SEO for Editors
 
Secure TYPO Extensions
Secure TYPO ExtensionsSecure TYPO Extensions
Secure TYPO Extensions
 
Powermail Tritum
Powermail TritumPowermail Tritum
Powermail Tritum
 
TYPO3 security updates
TYPO3 security updatesTYPO3 security updates
TYPO3 security updates
 
SEO on TYPO3 homepage
SEO on TYPO3 homepageSEO on TYPO3 homepage
SEO on TYPO3 homepage
 
Presentation of Powermail for TYPO3
Presentation of Powermail for TYPO3Presentation of Powermail for TYPO3
Presentation of Powermail for TYPO3
 

TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten

  • 1. In komplexen Umgebungen TYPO3 Migration in komplexen Umgebungen Upgrade Relaunch Update
  • 2. ● Extensionentwicklung (Powermail, Femanager) ● TYPO3-Trainer ● Certified Developer ● Certified Integrator ● TYPO3-Engagement ● Gründer in2code Alexander Kellner
  • 3. ● Platinummember ● Extensions ● TYPO3 Usergroup ● Sponsor ● Organisator ● Ehrenamtliche Mitarbeit ● Nur TYPO3 in2code
  • 5. ● Update ● Upgrade ● Relaunch ● Migration ● Individualisierung ● Technische Schulden ● Ökonomie Definition
  • 6. Was kostet ein TYPO3-Update und wie lange wird es dauern? Aufwand? Gering: # composer update typo3/cms # ./vendor/bin/typo3cms database:updateschema # ./vendor/bin/typo3cms upgrade:all Ja, aber...
  • 7. „I love deadlines. I like the whooshing sound they makes as they fly by.“ DOUGLAS ADAMS
  • 9. #1 Aufwandsschätzung ● Anzahl, Qualität der eingesetzten Erweiterungen (Update? Ersatz? Fork? Migration? Entfall?) ● Schnittstellen? ● Konfiguration (TypoScript, TSConfig, PHP, YAML, etc…) ● Refactoring? ● RWD vs. vorhandene Inhalte (Tabellen + Bilder im RTE, etc...) Komplexität? Umfang? Altlasten? Viele Extensions mal schnell ausprobiert? Was wird überhaupt noch benutzt?
  • 10. #2 Roadmap ● Gemeinsam mit Auftraggeber/Product- Owner/Projektleitung ● Zeiträume für technische Updates, Migration, händische Nachabeiten, Content Freeze, Rollout ● Verbindlichkeiten (wer muss bis wann was liefern) Tipp: Regelmäßige Treffen oder Telefonkonferenzen sind unersetzlich
  • 11. #3 Migrationsbaum ● Auf alter Live-Umgebung ● Alle Seitentypen, Content Elemente, Plugins (in verschiedenen Ausprägungen), Überschriften, Fließtextformatierungen, Bildpositionen, Sprachen, etc... ● Auch künftig nicht mehr verwendete Elemente Beispiel: Migrationsbaum auf alter Umgebung
  • 12. #4 Evaluierung Content ● Gemeinsam mit Auftraggeber ● Welche Elemente müssen wie migriert werden? ● Welche Elemente können entfallen? ● Gibt es neue Elemente? ● Tipp: Extension additional_reports zeigt die Verwendung von Plugins an Tipp: Einige Elemente sind eventuell gar nicht (mehr) in Benutzung – eine Analyse lohnt sich!
  • 13. #5 From the scratch ● Entwicklung auf neuem Server ● Leere Instanz ● Alle benötigten Funktionen ● Alte Konfiguration oder Refactoring (falls möglich) ● Erstellung eines Testbaums (ähnlich Migrationsbaum) mit allen Funktionen, CE, Layouts, Plugins, etc... Tipp: Gleichzeitige Verwendung des Testbaums als Online-Hilfe für Redakteure
  • 14. #6 Update ● Einspielen der alten Datenbank + Dateien und Update mit Bordmitteln ● Install Tool (Upgrade-Wizard, DB-Compare) ● Eventuell Zwischenschritte (6 → 7 → 8) ● Tipp: typo3_console + Shellscript für häufigere Updates Schrittweise: TYPO3-Update # ./vendor/bin/typo3cms upgrade:wizard --identifier=processedFilesChecksum
  • 15. #7 Automatische Migration ● Individuelle Migration des Contents (z.B. templavoila → gridelements, csc → fsc, tt_news → news, backend_layouts, Eigenentwicklungen) ● Migration über Shell ● Stetiger Prozess bis Ergebnis ideal ● Vergleich Migrationsbaum alte vs. neue Umgebung (im FE) Beispiel: Content-Migration
  • 16. #8 Problembehandlung ● Mögliche Probleme nach automatischer Migration bzw. durch Verwendung eines neuen Layouts mit alten Inhalten (Oftmals: Bilder im RTE, Tabellen im RTE, Grid in Grids, Tabellen, Textlaufweiten, Bildgrößen, „Editor-Hacks“, etc…) ● Anpassung der Migration bzw. ● Händische Nacharbeit (Abhängig vom Aufwand) Leider: Ein perfektes, automatisch erzeugtes Ergebnis gibt es in der Regel nicht.
  • 17. #9 Content-Freeze ● Übergangszeit zwischen finaler Migration und Launch ● $GLOBALS['TYPO3_CONF_VARS'] ['BE']['adminOnly'] = 1; ● Dauer sehr unterschiedlich (ja nach Umfang Nacharbeiten, größe des Redaktionsteams) ● Alternative: Doppelpflege der Inhalte auf alter und neuer Umgebung Tipp: Redakteure mit einbeziehen und über Zeitplan, Erfolg und Hürden informieren.
  • 18. #10 Finale Migration ● Letzte automatisierte Migration ● Schrittweise an Hand der Migrationsdokumentation bzw. des Migrationsprotokolls Fertige Migration: Von TemplaVoila zu Gridelements (mit Shortcuts)
  • 19. #11 Händische Nacharbeiten ● Umbau Seitenstruktur (häufig bereits auf alter Umgebung vor Content Freeze) ● Seitenweise Kontrolle ● „Aufhübschen“ des Contents ● Auflösen von „Grids in Grids“ ● Sauberer Nachbau von „Editor Hacks“ ● Bilder erneuern/ergänzen Beispiel: Gridelements m. Verschachtelungstiefe von 8 – händisches Auflösen der einfachste Weg
  • 20. #12 Relaunch ● Neue Seite unter Hauptdomain verfügbar machen (DNS, Virtual Host Einträge, etc…) ● Backend freigeben ● Redakteure benachrichtigen Tipp: Halten Sie Ihre Redakteure auf dem Laufenden.
  • 21. #13 Benefits ● Upgrade statt Update ● Darüber sprechen ● Google Pagespeed ● Performance ● Usability Tipp: Zeigen Sie den Wert Ihrer Arbeit nach dem Projekt mit einer Mail an die Beteiligten
  • 22. „Der Zauber steckt immer im Detail.“ THEODOR FONTANE
  • 25. Was zu tun war • Migration Ext Einrichtung: pthskaadmin => facilities • Migration Ext Downloads: pthskaadmin => downloads • Migration Ext Kontakte: pthskaadmin => contacts • Migration Ext Videos: hskalisting => in2videoaudio • Migration Ext Audios: hskalisting => in2videoaudio • Migration fe_users: pthskaadmin => users • Migration Ext News: tt_news => news • Migration Ext Formulare: Powermail 2.0 => 3.x • Migration Ext Mails: Powermail 2.0 => 3.x • Migration Ext Kalender: pthskaadmin => hskacalendar • Migration Seiten: TemplaVoila => backend_layouts • Migration Content: CSC => FSC • Migration Content: TemplaVoila => gridelements
  • 26. Alt Neu Migration Der generelle Aufbau ● Parallelbetrieb auf 2 Servern: ● Projektstatus für Beteiligte ● Versch. PHP, MySQL Versionen ● Störungsfreier Betrieb der Seite ● Lokale Migration (empfohlen) ● Migrationsergebnis von Zeit zu Zeit auf neuem Server bereitstellen
  • 27. Die 4 Schritte ● 1. Anpassung (Nachbesserung) - Migrationsscript verbessern oder anpassen ● 2. Migration durchführen (testweise aus partiell) ● 3. Ergebniskontrolle – Vergleich an Hand des Migrationsbaums ● 4. Reset der Migration – Daten/Dateien zurücksetzen (z.B. Dump einspielen) Migration Kontrolle Anpassung Reset
  • 28. Funktionen Dev: Migration Projektdauer optimieren ● Beispielteam aus 3 Personen ● Parallelisierung Funktion/Migration ● 2 kurzlebige Entwicklungsserver ● Stand Migration (Migrationsbaum) ● Stand Funktionen (Funktionsbaum) ● Server während Projekt relevant ● Server können anschließend entfernt oder umgewandelt werden Migration GIT Dev: Funktionen (BE) Dev: Funktionen (FE) DB/Files Deployment
  • 29. Dokumentation ● Individuelle Migration muss beim Erstellen häufig durchgeführt (und ggf. zurück gerollt werden): Änderungen + Fortschritte dokumentieren ● „Truck-Number“ erhöhen ● Transparenz für Auftraggeber ● Erfahrungen ins nächste Projekt übernehmen Tipp: Schritte dokumentieren Migrationsprotokoll
  • 30. Importer Boilerplate ● Ansehen, kopieren, modifizieren ● Vereinfacht strukturierte Migrationen ● PHP auf Konsole (CommandController) ● Limitiere Migration auf Seitenbaum etc. ● Viele Konfigurationsmöglichkeiten ● Einige Zusatzfunktionen github.com/einpraegsam/ImporterBoilerplate EXT:migration
  • 32. „Es ist kein Drama, wenn das Projekt nicht nach Plan läuft. Es ist ein Drama, wenn der Verantwortliche nichts davon weiß.“ PETER HOBBS
  • 33. ● Kommunizieren! ● Vereinfachung! ● Migrationsstände häufig zeigen ● Probleme frühzeitig melden ● Usability f. Redakteure ● Extensions reduzieren ● Wiederkehrende Aktionen scripten Best Practice
  • 34. Fragen zu TYPO3-Upgrades oder TYPO3-Migrationen? in2code.de
  • 35. KENNST DU DAS? Alles immer nur schnell schnell? Alles irgendwie hinrotzen? Komm zu uns – TYPO3 geht auch anders!