• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Plone scalability in portal implementations
 

Plone scalability in portal implementations

on

  • 444 views

 

Statistics

Views

Total Views
444
Views on SlideShare
444
Embed Views
0

Actions

Likes
2
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Plone scalability in portal implementations Plone scalability in portal implementations Presentation Transcript

    • Plone scalability in portal implementations Douwe van der Meij Goldmund, Wyldebeast & Wunderliebevandermeij@gw20e.com@douwevandermeij
    • Outline● Introduction● Code suggestions● Beyond code● Cases● The next step
    • Introduction● A lot of initiatives ○ scalingplone.pbworks.com (Elizabeth Leddy, Nate Aune) ○ tinyurl.com/rtd-plone-performance● Lets join forces● Call to action
    • Code suggestions
    • Performance● Healthy code ○ Unit tests ○ Documentation ○ No legacy code● Add-ons● Vanilla Plone
    • Performance● Less code ○ KSS optional in Plone 4.3 tinyurl.com/plone-wo-kss● Lightweight Plone core
    • Performance● Reduce complexity● But how and where?
    • Performancedef fib(n): def fib(n): return ( if n == 0: (1 + 5**0.5)**n - return 0 (1 - 5**0.5)**n if n == 1: ) / return 1 (2**n * 5**0.5) return fib(n-1) + fib(n-2)
    • Performancedef fib(n): def fib(n): return ( if n == 0: (1 + 5**0.5)**n - return 0 (1 - 5**0.5)**n if n == 1: ) / return 1 (2**n * 5**0.5) return fib(n-1) + fib(n-2)
    • Performancedef fib(n): def fib(n): return ( if n == 0: (1 + 5**0.5)**n - return 0 (1 - 5**0.5)**n if n == 1: ) / return 1 (2**n * 5**0.5) return fib(n-1) + fib(n-2) O(1) O(2n)
    • Performance
    • Performance● O(2n) → O(1) ○ Almost impossible to find● O(2n) → O(n2) ○ Challenging to find● O(nconstant) is always faster than O(2n)
    • Beyond code
    • Databases● Database engine ○ ZODB ○ PostgreSQL, MySQL ○ Redis, Cassandra, Hadoop 29,654,573,309,198 bytes in 1,5 hour ≈ 50Gb/sec
    • Tools● HAProxy● Varnish● Etc.
    • Tools● New Relic ○ In production ○ http://tinyurl.com/gw20e-newrelic● YSlow● PyCounters● Google Page Speed● JMeter
    • Cases
    • Case● Municipality of Groningen ○ Few dozen of concurrent users ○ 35.000 pages ○ Editing a page takes seconds● Add-on problems● Review list
    • Case● 1000+ concurrent users, use Plone?● Tweak settings! ○ Use AJAX ○ Use Varnish
    • The next step
    • Wrap up● Reduce complexity ○ Vanilla Plone ○ Add-ons● Documentation
    • WBSO● Dutch law to support R&D work by cutting taxes● We have time to do this!
    • Sprint● We want to sprint● User stories needed● Open space?
    • Sprint 1 Call to● ... action!
    • Thank you!vandermeij@gw20e.com@douwevandermeij