(2006-2028) • Erster Bauabschnitt mit 19 Ausstellungsbereichen • Neukonzeption der Ausstellungen & Medienstationen • TYPO3 als Redaktionssystem der Medienstationen gesetzt • Umsetzungszeitraum „Content Deployment“ 2020-2021 • Erste Teileröffnung des Umbaus Mitte 2022
(2006-2028) • Erster Bauabschnitt mit 19 Ausstellungsbereichen • Neukonzeption der Ausstellungen & Medienstationen • TYPO3 als Redaktionssystem der Medienstationen gesetzt • Umsetzungszeitraum „Content Deployment“ 2020-2021 • Erste Teileröffnung des Umbaus Mitte 2022 ein etwas anderes „Webprojekt“
mit TYPO3 v10 • „Content Deployment“ • automatisierte Auslieferung der Inhalte auf die interaktiven Medienstationen in den Ausstellungsbereichen • Ausstellungen & Medienstationen als Seiten strukturiert
HTML, XHTML, and CSS pages, to create local versions of remote web sites, fully recreating the directory structure of the original site. This is sometimes referred to as "recursive downloading." While doing that, Wget respects the Robot Exclusion Standard (/ robots.txt). Wget can be instructed to convert the links in downloaded files to point at the local files, for offline viewing.Quelle
HTML, XHTML, and CSS pages, to create local versions of remote web sites, fully recreating the directory structure of the original site. This is sometimes referred to as "recursive downloading." While doing that, Wget respects the Robot Exclusion Standard (/ robots.txt). Wget can be instructed to convert the links in downloaded files to point at the local files, for offline viewing.Quelle
das rekursive Laden von Assets müssen die relativen Links in bestimmten html Tags (zB <script> oder <img>) bzw. in bestimmten Attributen (zB src oder href) zu finden sein, damit der Crawler die Dateien einsammelt • dynamisches Nachladen von Dateien nicht möglich (zB über eine data-src Attribut) • wget unterstützt kein JavaScript
das rekursive Laden von Assets müssen die relativen Links in bestimmten html Tags (zB <script> oder <img>) bzw. in bestimmten Attributen (zB src oder href) zu finden sein, damit der Crawler die Dateien einsammelt • dynamisches Nachladen von Dateien nicht möglich (zB über eine data-src Attribut) • wget unterstützt kein JavaScript • Update: wget2 • modernere Alternative, die sich durch verbesserte Leistung und Unterstützung für neuere Webtechnologien auszeichnet, zB durch verbesserte Linkerkennung • allerdings zum damaligen Zeitpunkt noch pre-release • eigenständiges Kompilieren notwendig
Wahl im CLI Kontext • Vorteile: • Performance, Effizienz • Delta Kodierung • Flexibilität Konzept • Auslieferung des vorbereiteten Builds mit rsync auf das Zielsystem
CLI Commands im PHP • Hintergrund: Verwaltung des Workflows im TYPO3 Recherche • Evaluation von PHP Deploymenttool deployer • allerdings keine direkte Ausführung im PHP Kontext möglich
CLI Commands im PHP • Hintergrund: Verwaltung des Workflows im TYPO3 Recherche • Evaluation von PHP Deploymenttool deployer • allerdings keine direkte Ausführung im PHP Kontext möglich Umsetzung • Umsetzung einer eigenen Logik für die Ausführung von Prozessen • Grundlage ist die Ausführung im Kontext der Medienstationen • -> Prozesse werden für die Seite ausgeführt
umfasst beliebig viele Prozessschritte, welche sequentiell ausgeführt werden • bricht ein Prozess aufgrund eines Fehlers ab, wird ein Prozessschritt- spezifischer StatusCode + Fehlermeldung ausgegeben Step Step Step Process
(zB PageBuildProcess) erbt vom AbstractProcess • Prozessschritte werden in initSteps() Funktion definiert public function initSteps() { /* * Build Static Site */ $buildPageStep = new ProcessStep( Configuration::MESSAGE_BUILD_FAILURE, DeploymentStatus::BUILD_FAILURE, new Wget($this->page) ); $this->addStep($buildPageStep); ... }
Prozessinformationen in gesondertem Log • Medienstationen werden mit Status geflaggt • je nach erfolgreicher/fehlgeschlagener Ausführung des letzten Prozesses • Prozessschritt nutzt • vorgefertigte Console Command Klassen (zB Wget, Rsync, Ssh) • Custom Callback als PHP Funktion
Prozessinformationen in gesondertem Log • Medienstationen werden mit Status geflaggt • je nach erfolgreicher/fehlgeschlagener Ausführung des letzten Prozesses • Prozessschritt nutzt • vorgefertigte Console Command Klassen (zB Wget, Rsync, Ssh) • Custom Callback als PHP Funktion Beispiel PageDeploymentProcess • ping: Erreichbarkeit der Station • rsync: Übertragung des Builds • ssh: Neustart des Browsers • …
Backend • eigenes Backendmodul für die Verwaltung der Medienstationen und des Workflows für die Auslieferung Überblick • aktuelle Meldungen, Überblick über Medienstation, Status der Stationen Medienstationen • Liste aller Medienstationen + diversen Informationen u.a. Status, letzter Build/ Deployment, • Actions für manuelle Ausführung von Prozessen • Anzeige der Stationen in Preview Modus Queue • Workflow für die automatisierte Auslieferung Log • Übersicht über Logeinträge der Prozesse
Backend • eigenes Backendmodul für die Verwaltung der Medienstationen und des Workflows für die Auslieferung Überblick • aktuelle Meldungen, Überblick über Medienstation, Status der Stationen Medienstationen • Liste aller Medienstationen + diversen Informationen u.a. Status, letzter Build/ Deployment, • Actions für manuelle Ausführung von Prozessen • Anzeige der Stationen in Preview Modus Queue • Workflow für die automatisierte Auslieferung Log • Übersicht über Logeinträge der Prozesse
Backend • eigenes Backendmodul für die Verwaltung der Medienstationen und des Workflows für die Auslieferung Überblick • aktuelle Meldungen, Überblick über Medienstation, Status der Stationen Medienstationen • Liste aller Medienstationen + diversen Informationen u.a. Status, letzter Build/ Deployment, • Actions für manuelle Ausführung von Prozessen • Anzeige der Stationen in Preview Modus Queue • Workflow für die automatisierte Auslieferung Log • Übersicht über Logeinträge der Prozesse
im TYPO3 Backend • eigenes Backendmodul für die Verwaltung der Medienstationen und des Workflows für die Auslieferung Überblick • aktuelle Meldungen, Überblick über Medienstation, Status der Stationen Medienstationen • Liste aller Medienstationen + diversen Informationen u.a. Status, letzter Build/ Deployment, • Actions für manuelle Ausführung von Prozessen • Anzeige der Stationen in Preview Modus Queue • Workflow für die automatisierte Auslieferung Log • Übersicht über Logeinträge der Prozesse
1. Bearbeitung der Medienstation durch die Redaktion 2. “Freigeben” der Station für die Auslieferung durch die Redaktion 3. Medienstation wird der „Build Queue“ hinzugefügt
1. Bearbeitung der Medienstation durch die Redaktion 2. “Freigeben” der Station für die Auslieferung durch die Redaktion 3. Medienstation wird der „Build Queue“ hinzugefügt 4. Zeitfenster 1: Abarbeiten aller Build Prozesse innerhalb der Build Queue
1. Bearbeitung der Medienstation durch die Redaktion 2. “Freigeben” der Station für die Auslieferung durch die Redaktion 3. Medienstation wird der „Build Queue“ hinzugefügt 4. Zeitfenster 1: Abarbeiten aller Build Prozesse innerhalb der Build Queue 5. Medienstation wird der „Deployment Queue“ hinzugefügt
1. Bearbeitung der Medienstation durch die Redaktion 2. “Freigeben” der Station für die Auslieferung durch die Redaktion 3. Medienstation wird der „Build Queue“ hinzugefügt 4. Zeitfenster 1: Abarbeiten aller Build Prozesse innerhalb der Build Queue 5. Medienstation wird der „Deployment Queue“ hinzugefügt 6. Zeitfenster 2: Abarbeiten aller Deployment Prozesse innerhalb der Deployment Queue