SlideShare a Scribd company logo
1 of 23
Download to read offline
Der Freitag: A Use Case

  How we built a
 newspaper website
     in Plone
About the speakers
●   Gil Forcada
●   Timo Stollenwerk
●   Kees Hink
About Der Freitag
●   It's a printed newspaper
●   issued weekly
●   on Thursday
●   15.000 copies across Germany
●   About 40 employees
●   Left-wing, liberal
Der Freitag Online
●   freitag.de
●   web-print integration
●   numbers?
    –   53k articles (31k editorial), 330 comments a day,
        14k members, 1041 authors, 15k visits daily, 11k
        unique visitors
●   Team: Christian Schneider + speakers
Agile Development
●   Scrum
●   Pivotal Tracker
Dexterity
Dexterity
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?
Front page
●   Folderish structure
●   “Link” objects that reference existing content
●   Custom views
●   Ability to override article title, description,
    image
●   Inline management buttons
●   Drag-and-drop to reorder content
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???
Development
●   Git
    –   git merge --no-ff
    –   git rebase -i
    –   git pull -r
●   Jenkins
Migration
●   Numbers
    –   30k articles
    –   25k blog entries
    –   20k members
    –   350k comments
●   Transmogrifier
●   MySQL rel DB => Plone
●   Daily non-incremental migration
●   Daily Jenkins job
●   much more work than anticipated, worked well though
Performance Tests
●   The Grinder
●   In Jenkins
●   Helped us identify performance issues (Diazo,
    catalog)
●   Warm-up script after instance restart
Release
●   Stacks of VMs
●   A script to release
Production servers overview
●   physical server
●   delivery vms
●   10 workers
●   1 ZEO server
●   1 monitoring vm (munin)
●   all errors sent as mails
Production server caveats
●   p.a.caching is wonderful
●   workers mem usage keeps growing always
●   really slow startup time
Servers
●   3 in-house and 4 production servers
●   everything in virtual machines
●   and everything controlled by fabric
●   ~150 fabric tasks
Notifications
●   Shown in browser (“notification area”)
●   Example: “you have a new comment”
●   Deleted on click
●   Created by event handler
●   Storage: annotation on Member object
●   Settings
Evaluation
●   Plone rocks!
●   What more could you want?
●   Since you ask:
    –   member profiles, notifications, limit memory
        usage, way to run long and intensive tasks,
        replication with ZODB,
●   Open Spaces

More Related Content

What's hot

What's hot (9)

You're doing it wrong! Git it right!
You're doing it wrong! Git it right!You're doing it wrong! Git it right!
You're doing it wrong! Git it right!
 
Puppet managed loadays
Puppet managed loadaysPuppet managed loadays
Puppet managed loadays
 
Export pdf with puppeteer
Export pdf with puppeteerExport pdf with puppeteer
Export pdf with puppeteer
 
Continuous delivery journey - Montgomery county JUG
Continuous delivery journey - Montgomery county JUGContinuous delivery journey - Montgomery county JUG
Continuous delivery journey - Montgomery county JUG
 
Vagrant & CFEngine - LOPSA East 2013
Vagrant & CFEngine - LOPSA East 2013Vagrant & CFEngine - LOPSA East 2013
Vagrant & CFEngine - LOPSA East 2013
 
Deploying Joomla sites with GIT
Deploying Joomla sites with GITDeploying Joomla sites with GIT
Deploying Joomla sites with GIT
 
DevOps Cebu Presentation
DevOps Cebu PresentationDevOps Cebu Presentation
DevOps Cebu Presentation
 
JavaScript Tools and Implementation
JavaScript Tools and ImplementationJavaScript Tools and Implementation
JavaScript Tools and Implementation
 
Go with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress WorkflowGo with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress Workflow
 

Similar to Der Freitag, A Use Case

Big data @ uber vu (1)
Big data @ uber vu (1)Big data @ uber vu (1)
Big data @ uber vu (1)
Mihnea Giurgea
 
Plone at the University of Washington
Plone at the University of WashingtonPlone at the University of Washington
Plone at the University of Washington
mwinkle1
 
Django on app engine
Django on app engineDjango on app engine
Django on app engine
benpotato
 

Similar to Der Freitag, A Use Case (20)

Scaling xtext
Scaling xtextScaling xtext
Scaling xtext
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipster
 
Continuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritageContinuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritage
 
Devops at Startup Weekend BXL
Devops at Startup Weekend BXLDevops at Startup Weekend BXL
Devops at Startup Weekend BXL
 
A culture of Automation - Joe Smith - DevOpsDays Tel Aviv 2017
A culture of Automation - Joe Smith - DevOpsDays Tel Aviv 2017A culture of Automation - Joe Smith - DevOpsDays Tel Aviv 2017
A culture of Automation - Joe Smith - DevOpsDays Tel Aviv 2017
 
Devops For Drupal
Devops  For DrupalDevops  For Drupal
Devops For Drupal
 
Big data @ uber vu (1)
Big data @ uber vu (1)Big data @ uber vu (1)
Big data @ uber vu (1)
 
Utopia Kindgoms scaling case: From 4 to 50K users
Utopia Kindgoms scaling case: From 4 to 50K usersUtopia Kindgoms scaling case: From 4 to 50K users
Utopia Kindgoms scaling case: From 4 to 50K users
 
Utopia Kingdoms scaling case. From 4 users to 50.000+
Utopia Kingdoms scaling case. From 4 users to 50.000+Utopia Kingdoms scaling case. From 4 users to 50.000+
Utopia Kingdoms scaling case. From 4 users to 50.000+
 
Plone at the University of Washington
Plone at the University of WashingtonPlone at the University of Washington
Plone at the University of Washington
 
WebCamp:Front-end Developers Day. Алексей Ященко, Сергей Руденко "Фронтенд-мо...
WebCamp:Front-end Developers Day. Алексей Ященко, Сергей Руденко "Фронтенд-мо...WebCamp:Front-end Developers Day. Алексей Ященко, Сергей Руденко "Фронтенд-мо...
WebCamp:Front-end Developers Day. Алексей Ященко, Сергей Руденко "Фронтенд-мо...
 
Eko10 workshop - OPEN SOURCE DATABASE MONITORING
Eko10 workshop - OPEN SOURCE DATABASE MONITORINGEko10 workshop - OPEN SOURCE DATABASE MONITORING
Eko10 workshop - OPEN SOURCE DATABASE MONITORING
 
OSMC 2014 | Naemon 1, 2, 3, N by Andreas Ericsson
OSMC 2014 | Naemon 1, 2, 3, N by Andreas EricssonOSMC 2014 | Naemon 1, 2, 3, N by Andreas Ericsson
OSMC 2014 | Naemon 1, 2, 3, N by Andreas Ericsson
 
Eko10 Workshop Opensource Database Auditing
Eko10  Workshop Opensource Database AuditingEko10  Workshop Opensource Database Auditing
Eko10 Workshop Opensource Database Auditing
 
Django on app engine
Django on app engineDjango on app engine
Django on app engine
 
Activity feeds (and more) at mate1
Activity feeds (and more) at mate1Activity feeds (and more) at mate1
Activity feeds (and more) at mate1
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
 
Redmine @ Mippin
Redmine @ MippinRedmine @ Mippin
Redmine @ Mippin
 
More Dev. Less Drama.pdf
More Dev. Less Drama.pdfMore Dev. Less Drama.pdf
More Dev. Less Drama.pdf
 
Performance & dev tools
Performance & dev toolsPerformance & dev tools
Performance & dev tools
 

More from khink

More from khink (8)

Easy User Interaction testing with Webtest.pdf
Easy User Interaction testing with Webtest.pdfEasy User Interaction testing with Webtest.pdf
Easy User Interaction testing with Webtest.pdf
 
Practical pointers for better code review
Practical pointers for better code reviewPractical pointers for better code review
Practical pointers for better code review
 
The Tale of Oscar and the API
The Tale of Oscar and the APIThe Tale of Oscar and the API
The Tale of Oscar and the API
 
Mosaic - flexibele layouts voor Plone
Mosaic - flexibele layouts voor PloneMosaic - flexibele layouts voor Plone
Mosaic - flexibele layouts voor Plone
 
Presentatie gebruikersdag
Presentatie gebruikersdagPresentatie gebruikersdag
Presentatie gebruikersdag
 
Plone multi language
Plone multi languagePlone multi language
Plone multi language
 
Hardening Plone, a military-strength CMS
Hardening Plone, a military-strength CMSHardening Plone, a military-strength CMS
Hardening Plone, a military-strength CMS
 
Deliverance for Plone, a use case
Deliverance for Plone, a use caseDeliverance for Plone, a use case
Deliverance for Plone, a use case
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Der Freitag, A Use Case

  • 1. Der Freitag: A Use Case How we built a newspaper website in Plone
  • 2. About the speakers ● Gil Forcada ● Timo Stollenwerk ● Kees Hink
  • 3. About Der Freitag ● It's a printed newspaper ● issued weekly ● on Thursday ● 15.000 copies across Germany ● About 40 employees ● Left-wing, liberal
  • 4. Der Freitag Online ● freitag.de ● web-print integration ● numbers? – 53k articles (31k editorial), 330 comments a day, 14k members, 1041 authors, 15k visits daily, 11k unique visitors ● Team: Christian Schneider + speakers
  • 5. Agile Development ● Scrum ● Pivotal Tracker
  • 8. 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?
  • 9. Front page ● Folderish structure ● “Link” objects that reference existing content ● Custom views ● Ability to override article title, description, image ● Inline management buttons ● Drag-and-drop to reorder content
  • 10.
  • 11.
  • 12. 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???
  • 13.
  • 14. Development ● Git – git merge --no-ff – git rebase -i – git pull -r ● Jenkins
  • 15.
  • 16. Migration ● Numbers – 30k articles – 25k blog entries – 20k members – 350k comments ● Transmogrifier ● MySQL rel DB => Plone ● Daily non-incremental migration ● Daily Jenkins job ● much more work than anticipated, worked well though
  • 17. Performance Tests ● The Grinder ● In Jenkins ● Helped us identify performance issues (Diazo, catalog) ● Warm-up script after instance restart
  • 18. Release ● Stacks of VMs ● A script to release
  • 19. Production servers overview ● physical server ● delivery vms ● 10 workers ● 1 ZEO server ● 1 monitoring vm (munin) ● all errors sent as mails
  • 20. Production server caveats ● p.a.caching is wonderful ● workers mem usage keeps growing always ● really slow startup time
  • 21. Servers ● 3 in-house and 4 production servers ● everything in virtual machines ● and everything controlled by fabric ● ~150 fabric tasks
  • 22. Notifications ● Shown in browser (“notification area”) ● Example: “you have a new comment” ● Deleted on click ● Created by event handler ● Storage: annotation on Member object ● Settings
  • 23. Evaluation ● Plone rocks! ● What more could you want? ● Since you ask: – member profiles, notifications, limit memory usage, way to run long and intensive tasks, replication with ZODB, ● Open Spaces