SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Eine überregionale deutsche
Wochenzeitung setzt auf Plone
Timo Stollenwerk
World Plone Day 2013 - Köln
Der Freitag
● Wochenzeitung
● Erscheint Donnerstags
● Auflage: 15.000
● ca. 35 Mitarbeiter
● Links-liberal
Der Freitag Online
● freitag.de
● Integration Web/Print
● ~ 60.000 Artikel (~ 35.000 Editorial)
● ~ 40.000 Kommentare (330 pro Tag)
● ~ 14.000 Mitglieder
● ~ 1000 Autoren
● ~ 15.000 Besucher pro Tag
(Online-)geschichte
● Neustart 2008/2009: Das Meinungsmedium
● Plone seit 2009 (Plone 3.x)
● Relaunch 2012 (Plone 4.x)
Team
● Gil Forcada
● Kees Hink
● Christian Schneider
● Timo Stollenwerk
Agile Entwicklung
● Scrum
● User Stories
● Rating/Velocity
● Planing/Review/Daily Meetings
● Akzeptanztests
● Pivotal Tracker
Startseite
Startseite als angemeldeter Benutzer
Startseite als Redakteur
Startseite
● Ordnerartige Strukur
● Link-Objekte referenzieren existierende
Inhalte
● Titel, Beschreibung und Bilder überschreibbar
● Inline-management-Buttons
● Sortierung von Inhalten per Drag-and-drop
Ressorts
Dexterity
Artikel
Community
Membership
● Login/Registration: z3c.form
● No membrane
● Dexterity member folder
● Sync between member profile and folder with
event handlers
● Behavior to adapt member properties
● Registration should/could go into Plone core?
Kommentare
Comments
● plone.app.discussion
● Complex custom workflow
● Blaming / editing / deleting comments
● 3 community moderators
● Most commented viewlet om front page
● About 330 new comments each day
● Allow/disallow discussion
– behavior => plone.app.dexterity
– dexterity support => plone.app.discussion 2.2x???
Migration
● Zahlen
– 30.000 Artikel
– 25.000 Blogeinträge
– 20.000 Mitglieder
– 350.000 Kommentare
● Transmogrifier
● MySQL rel DB => Plone
● Tägliche, nicht-inkrementelle Migration
● Jenkins Job (über Nacht)
● Sehr viel mehr Arbeit als gedacht! Trotzdem lief alles sehr gut!
Performanz / Skalierbarkeit
● The Grinder
● Jenkins
● Identifizierung von Bottlenecks
– Diazo
– Catalog
● Warm-up Script für Neustart
Produktions Server
● Komplett virtualisiert
● Delivery
– Web Server: NGINX
– Caching: Varnish
– Load Balancing: with HAProxy
● 10 Workers
– 2 Kerne, eine Instanz
● 1 ZEO server
– Data.fs ~1.5Gb, Catalog.fs ~2 Gb, blobs ~1.7 Gb
● Monitoring: Munin
● Mailversand bei jedem Fehler, überall
Produktions Server
● plone.app.caching
● Speicherverbrauch der Worker
– Automatischer Neustart bei 97% Speicherverbrauch
– experimented a lot with cache settings
– no way to force a mem usage ceiling
– upgrade brings down slow instances...
● Sehr langsamer Start der Instanzen
– Automatisches Startup Skript um die Instanzen aufzuwärmen
– Läd die Startseite und alle darauf verlinkten Inhalte
– Dauer: ~ 15 Minuten
– HAProxy erkennt die Instanzen
Server Deployment
● 3 in-house and 4 production servers
● Alles ist virtualisiert
– Git, Jenkins, Monitoring, Backup
– pypi, Devtest Cluster, Staging Cluster, Demo Seiten
● Fabric
● ~150 fabric tasks
– vms lifecycle, lvm, firewall, nfs, users, ssh logins
– nginx redirects, updates, maintenance tasks
● 4 Fabric Kommandos sind notwendig um innerhalb von einer Stunde den
kompletten Stack aufzusetzen
● Einzige Interaktion: Passwörter setzen
Zusammenfassung
● Plone rocks!
● Inhaltsstruktur muss passen
● Workflows
● Wünsche:
– Member Profiles, Notifications,
Speicherverbrauch beschränken, Einfacherer Weg
lange Tasks auszuführen, ZODB Replikation

Weitere ähnliche Inhalte

Was ist angesagt?

German Perl Workshop 2015 - Infrastruktur als Code
German Perl Workshop 2015 - Infrastruktur als CodeGerman Perl Workshop 2015 - Infrastruktur als Code
German Perl Workshop 2015 - Infrastruktur als Code
Jan Gehring
 

Was ist angesagt? (8)

OSMC 2015: OMD 5 Jahre Best Practice mit Matthias Gallinger
OSMC 2015: OMD 5 Jahre Best Practice mit Matthias GallingerOSMC 2015: OMD 5 Jahre Best Practice mit Matthias Gallinger
OSMC 2015: OMD 5 Jahre Best Practice mit Matthias Gallinger
 
Von Test nach Live mit Rex
Von Test nach Live mit RexVon Test nach Live mit Rex
Von Test nach Live mit Rex
 
Git
GitGit
Git
 
Rex - Infrastruktur als Code
Rex - Infrastruktur als CodeRex - Infrastruktur als Code
Rex - Infrastruktur als Code
 
Automatisierte Linux Administration mit (R)?ex
Automatisierte Linux Administration mit (R)?ex Automatisierte Linux Administration mit (R)?ex
Automatisierte Linux Administration mit (R)?ex
 
German Perl Workshop 2015 - Infrastruktur als Code
German Perl Workshop 2015 - Infrastruktur als CodeGerman Perl Workshop 2015 - Infrastruktur als Code
German Perl Workshop 2015 - Infrastruktur als Code
 
TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...
TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...
TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...
 
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
 

Ähnlich wie der Freitag - Eine überregionale deutsche Wochenzeitung setzt auf Plone

Grundlagen postgresql
Grundlagen postgresqlGrundlagen postgresql
Grundlagen postgresql
inovex GmbH
 

Ähnlich wie der Freitag - Eine überregionale deutsche Wochenzeitung setzt auf Plone (20)

TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenTYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
 
OSMC 2019 | Vom Bordstein zur Skyline by Robert Waffen
OSMC 2019 | Vom Bordstein zur Skyline by Robert WaffenOSMC 2019 | Vom Bordstein zur Skyline by Robert Waffen
OSMC 2019 | Vom Bordstein zur Skyline by Robert Waffen
 
Asynchrone Event Verarbeitung
Asynchrone Event VerarbeitungAsynchrone Event Verarbeitung
Asynchrone Event Verarbeitung
 
Dzug plone4
Dzug plone4Dzug plone4
Dzug plone4
 
OSMC 2010 | Merlin - status quo by Wolfgang Barth
OSMC 2010 | Merlin - status quo by Wolfgang BarthOSMC 2010 | Merlin - status quo by Wolfgang Barth
OSMC 2010 | Merlin - status quo by Wolfgang Barth
 
TechTalkThursday 27.10.2016: upd89.org - Orchestrierung von Security-Updates ...
TechTalkThursday 27.10.2016: upd89.org - Orchestrierung von Security-Updates ...TechTalkThursday 27.10.2016: upd89.org - Orchestrierung von Security-Updates ...
TechTalkThursday 27.10.2016: upd89.org - Orchestrierung von Security-Updates ...
 
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
 
Fedora – Die Feature-Fabrik
Fedora – Die Feature-FabrikFedora – Die Feature-Fabrik
Fedora – Die Feature-Fabrik
 
Grundlagen postgresql
Grundlagen postgresqlGrundlagen postgresql
Grundlagen postgresql
 
Übersetze mich
Übersetze michÜbersetze mich
Übersetze mich
 
Überblick Solr
Überblick SolrÜberblick Solr
Überblick Solr
 
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
 
MySQL Backup
MySQL BackupMySQL Backup
MySQL Backup
 
Icinga Director: Konfiguration leicht gemacht (Webinar vom 03. März 2016)
Icinga Director: Konfiguration leicht gemacht (Webinar vom 03. März 2016)Icinga Director: Konfiguration leicht gemacht (Webinar vom 03. März 2016)
Icinga Director: Konfiguration leicht gemacht (Webinar vom 03. März 2016)
 
Icinga Web 2: Das neue Interface (Webinar vom 09. Dezember 2015)
Icinga Web 2: Das neue Interface (Webinar vom 09. Dezember 2015)Icinga Web 2: Das neue Interface (Webinar vom 09. Dezember 2015)
Icinga Web 2: Das neue Interface (Webinar vom 09. Dezember 2015)
 
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
 
Performance?!
Performance?!Performance?!
Performance?!
 
OSMC 2015: Grafana meets Monitoring-Vorstellung einer Komplettlösung by Phili...
OSMC 2015: Grafana meets Monitoring-Vorstellung einer Komplettlösung by Phili...OSMC 2015: Grafana meets Monitoring-Vorstellung einer Komplettlösung by Phili...
OSMC 2015: Grafana meets Monitoring-Vorstellung einer Komplettlösung by Phili...
 
PHP Usergroup Berlin: Zalando - Ein Leben mit und ohne Magento (2010)
PHP Usergroup Berlin: Zalando - Ein Leben mit und ohne Magento (2010)PHP Usergroup Berlin: Zalando - Ein Leben mit und ohne Magento (2010)
PHP Usergroup Berlin: Zalando - Ein Leben mit und ohne Magento (2010)
 
Zentrales Logging mit Elasticsearch
Zentrales Logging mit ElasticsearchZentrales Logging mit Elasticsearch
Zentrales Logging mit Elasticsearch
 

Mehr von kitconcept GmbH

Reinventing Plone: Roadmap to the Modern Web
Reinventing Plone: Roadmap to the Modern WebReinventing Plone: Roadmap to the Modern Web
Reinventing Plone: Roadmap to the Modern Web
kitconcept GmbH
 

Mehr von kitconcept GmbH (20)

Keynote Plone Tagung 2024 - New Horizons: Die Zukunft von Plone 6
Keynote Plone Tagung 2024 - New Horizons: Die Zukunft von Plone 6Keynote Plone Tagung 2024 - New Horizons: Die Zukunft von Plone 6
Keynote Plone Tagung 2024 - New Horizons: Die Zukunft von Plone 6
 
Web Relaunch Deutsches Zentrum für Luft- und Raumfahrt (DLR) mit Plone 6
Web Relaunch Deutsches Zentrum für Luft- und Raumfahrt (DLR) mit Plone 6Web Relaunch Deutsches Zentrum für Luft- und Raumfahrt (DLR) mit Plone 6
Web Relaunch Deutsches Zentrum für Luft- und Raumfahrt (DLR) mit Plone 6
 
Stellensuche mit Plone - Karriere- und Stellenportale umgesetzt in Plone Vol...
Stellensuche mit  Plone - Karriere- und Stellenportale umgesetzt in Plone Vol...Stellensuche mit  Plone - Karriere- und Stellenportale umgesetzt in Plone Vol...
Stellensuche mit Plone - Karriere- und Stellenportale umgesetzt in Plone Vol...
 
German Aerospace Center (DLR) Web Relaunch
German Aerospace Center (DLR) Web RelaunchGerman Aerospace Center (DLR) Web Relaunch
German Aerospace Center (DLR) Web Relaunch
 
Plone at Scale
Plone at ScalePlone at Scale
Plone at Scale
 
Plone Conference 2021 Keynote - Plone 6: Power and Control
Plone Conference 2021 Keynote - Plone 6: Power and ControlPlone Conference 2021 Keynote - Plone 6: Power and Control
Plone Conference 2021 Keynote - Plone 6: Power and Control
 
Plone 6 - Volto: Past, Present and Future
Plone 6 - Volto: Past, Present and FuturePlone 6 - Volto: Past, Present and Future
Plone 6 - Volto: Past, Present and Future
 
On The Road - Der Weg zu Plone 6
On The Road - Der Weg zu Plone 6On The Road - Der Weg zu Plone 6
On The Road - Der Weg zu Plone 6
 
End-to-End Testing with Cypress
End-to-End Testing with CypressEnd-to-End Testing with Cypress
End-to-End Testing with Cypress
 
Breaking new Grounds - How we build the new excellence website
Breaking new Grounds - How we build the new excellence websiteBreaking new Grounds - How we build the new excellence website
Breaking new Grounds - How we build the new excellence website
 
On The Road - Plone 6 and Beyond
On The Road - Plone 6 and BeyondOn The Road - Plone 6 and Beyond
On The Road - Plone 6 and Beyond
 
Keep 'em coming: Komplexe und umfangreiche Migrationen mit Plone meistern
Keep 'em coming: Komplexe und umfangreiche Migrationen mit Plone meisternKeep 'em coming: Komplexe und umfangreiche Migrationen mit Plone meistern
Keep 'em coming: Komplexe und umfangreiche Migrationen mit Plone meistern
 
Plone - User Experienced Revisited
Plone - User Experienced RevisitedPlone - User Experienced Revisited
Plone - User Experienced Revisited
 
GatsbyJS - A static site generator in React
GatsbyJS - A static site generator in ReactGatsbyJS - A static site generator in React
GatsbyJS - A static site generator in React
 
Volto - A React-based Enterprise Content Management System
Volto - A React-based Enterprise Content Management SystemVolto - A React-based Enterprise Content Management System
Volto - A React-based Enterprise Content Management System
 
Theming Volto
Theming VoltoTheming Volto
Theming Volto
 
Volto Case Studies: When Stability and Security meet Speed and a Modern User ...
Volto Case Studies: When Stability and Security meet Speed and a Modern User ...Volto Case Studies: When Stability and Security meet Speed and a Modern User ...
Volto Case Studies: When Stability and Security meet Speed and a Modern User ...
 
Reinventing Plone: Roadmap to the Modern Web
Reinventing Plone: Roadmap to the Modern WebReinventing Plone: Roadmap to the Modern Web
Reinventing Plone: Roadmap to the Modern Web
 
The Evolution of JavaScript Frameworks
The Evolution of JavaScript FrameworksThe Evolution of JavaScript Frameworks
The Evolution of JavaScript Frameworks
 
Python & JavaScript - Django, Plone, React, Angular, Vue
Python & JavaScript - Django, Plone, React, Angular, VuePython & JavaScript - Django, Plone, React, Angular, Vue
Python & JavaScript - Django, Plone, React, Angular, Vue
 

der Freitag - Eine überregionale deutsche Wochenzeitung setzt auf Plone

  • 1. Eine überregionale deutsche Wochenzeitung setzt auf Plone Timo Stollenwerk World Plone Day 2013 - Köln
  • 2. Der Freitag ● Wochenzeitung ● Erscheint Donnerstags ● Auflage: 15.000 ● ca. 35 Mitarbeiter ● Links-liberal
  • 3. Der Freitag Online ● freitag.de ● Integration Web/Print ● ~ 60.000 Artikel (~ 35.000 Editorial) ● ~ 40.000 Kommentare (330 pro Tag) ● ~ 14.000 Mitglieder ● ~ 1000 Autoren ● ~ 15.000 Besucher pro Tag
  • 4. (Online-)geschichte ● Neustart 2008/2009: Das Meinungsmedium ● Plone seit 2009 (Plone 3.x) ● Relaunch 2012 (Plone 4.x)
  • 5. Team ● Gil Forcada ● Kees Hink ● Christian Schneider ● Timo Stollenwerk
  • 6. Agile Entwicklung ● Scrum ● User Stories ● Rating/Velocity ● Planing/Review/Daily Meetings ● Akzeptanztests ● Pivotal Tracker
  • 8.
  • 10.
  • 12.
  • 13. Startseite ● Ordnerartige Strukur ● Link-Objekte referenzieren existierende Inhalte ● Titel, Beschreibung und Bilder überschreibbar ● Inline-management-Buttons ● Sortierung von Inhalten per Drag-and-drop
  • 17.
  • 19. Membership ● Login/Registration: z3c.form ● No membrane ● Dexterity member folder ● Sync between member profile and folder with event handlers ● Behavior to adapt member properties ● Registration should/could go into Plone core?
  • 21. Comments ● plone.app.discussion ● Complex custom workflow ● Blaming / editing / deleting comments ● 3 community moderators ● Most commented viewlet om front page ● About 330 new comments each day ● Allow/disallow discussion – behavior => plone.app.dexterity – dexterity support => plone.app.discussion 2.2x???
  • 22.
  • 23. Migration ● Zahlen – 30.000 Artikel – 25.000 Blogeinträge – 20.000 Mitglieder – 350.000 Kommentare ● Transmogrifier ● MySQL rel DB => Plone ● Tägliche, nicht-inkrementelle Migration ● Jenkins Job (über Nacht) ● Sehr viel mehr Arbeit als gedacht! Trotzdem lief alles sehr gut!
  • 24. Performanz / Skalierbarkeit ● The Grinder ● Jenkins ● Identifizierung von Bottlenecks – Diazo – Catalog ● Warm-up Script für Neustart
  • 25. Produktions Server ● Komplett virtualisiert ● Delivery – Web Server: NGINX – Caching: Varnish – Load Balancing: with HAProxy ● 10 Workers – 2 Kerne, eine Instanz ● 1 ZEO server – Data.fs ~1.5Gb, Catalog.fs ~2 Gb, blobs ~1.7 Gb ● Monitoring: Munin ● Mailversand bei jedem Fehler, überall
  • 26. Produktions Server ● plone.app.caching ● Speicherverbrauch der Worker – Automatischer Neustart bei 97% Speicherverbrauch – experimented a lot with cache settings – no way to force a mem usage ceiling – upgrade brings down slow instances... ● Sehr langsamer Start der Instanzen – Automatisches Startup Skript um die Instanzen aufzuwärmen – Läd die Startseite und alle darauf verlinkten Inhalte – Dauer: ~ 15 Minuten – HAProxy erkennt die Instanzen
  • 27. Server Deployment ● 3 in-house and 4 production servers ● Alles ist virtualisiert – Git, Jenkins, Monitoring, Backup – pypi, Devtest Cluster, Staging Cluster, Demo Seiten ● Fabric ● ~150 fabric tasks – vms lifecycle, lvm, firewall, nfs, users, ssh logins – nginx redirects, updates, maintenance tasks ● 4 Fabric Kommandos sind notwendig um innerhalb von einer Stunde den kompletten Stack aufzusetzen ● Einzige Interaktion: Passwörter setzen
  • 28. Zusammenfassung ● Plone rocks! ● Inhaltsstruktur muss passen ● Workflows ● Wünsche: – Member Profiles, Notifications, Speicherverbrauch beschränken, Einfacherer Weg lange Tasks auszuführen, ZODB Replikation