SlideShare a Scribd company logo
1 of 27
Download to read offline
unloading plone
Tools, Tips, and Techniques for Approaching Scalability


Elizabeth Leddy
@eleddy
am I in the right room?
                               Symptoms Include
 inability to grow with traditional caching solutions,
     icky system performance, crashitis, log-o-phobia,
          hardware anemia, mashup mayhem, diminishing
         confidence in your abilities as plone integrator or
 administrator, where do I start migraines, all the rest of the
  talks look boring, this room has better internet connectivity, I
                                have no clue what I’m doing here
CONFUCIUS
                               SAY



A responsive, scalable Plone setup has little to do with
optimizing code
Measure, Measure, Measure
 Measure, Measure, Measure
   Measure, Measure, Measure
     Measure, Measure, Measure
      Measure, Measure, Measure
        Measure, Measure, Measure
          Measure, Measure, Measure
             Measure, Measure, Measure
               Measure, Measure, Measure

                       Act
AUTO-RESTART
GANGLIA ZOPE HEALTH WATCHER

MUNIN MONIT CUSTOM PLUGINS TIMEOUTS
ALERTS                TIME BASED GRAPHS   AFFECTION


                              ABNORMALITIES


                                   I quit...




             Monitoring Tools
Watching Bad Performances
Whale watchers are
triggered by system
abnormalities, and
grab relevant
information to help
you diagnose what
happened.
Simple(r) Error Monitoring
                   Sludge Through Logs

                    Escalate with Email

                   Google Analytics for
                 Timeouts, 4XX & 5XX
4 Stages of System Grief
Denial     Anger     Bargaining   Acceptance
                                     LB
HTTPD     HTTPD       HTTPD       HTTPD^N

                      CACHE        CACHES

          PROXY       PROXY        PROXY

ZOPE      ZOPE++     ZOPE++++      ZOPE^N

                     DB CACHE     DB CACHES
                                     LB
ZEO      ZEO SHARD   ZEO SHARD    ZEO & CO.
H OW MUCH
A      CPU    DISK
R     HAPROXY
D POUND          ZEO
W    HTTPD          SQUID
A   NGINX
R            ZOPE
                             VARNISH


E                           ZEO CACHE?


             MEMCACHE   ZODB CACHE


                    RAM
Two’s Company, Three’s a Crowd




ZOPE++
DB CACHE
How many zopes should I have?
                          50% avg util
                          2 zopes/cpu
                   api/async instances?




ZOPE++
Complex by Default
The CacheFu
                   Conundrum
The browser is the cheapest, easiest caching tool
at your disposal, Daniel-son. It’s time to show the
world you are the developer I know you can be...



                 Oh, CacheFu you have been a great
              leader and I wish I would have taken the
                time to figure out how caching really
              works. I’m afraid I will fail you, never fully
                   understanding the 304. Shame!
Serve STATIC content from a STATIC web server
to unload plone, provide faster
response time to initial requests,                                        5200

and enable simpler caching
strategies


                                                                 2700
                                                    2600

                            2100
                    1800
                                          1500



        httpd
        plone
                      user.gif             link_icon.gif            poo.gif



HTTPD     RewriteRule ^/(.*)portal_skins/mysite_images/(.*) /mysite_images/$2 [L]
CSS & Sprites
30 requests, ~200 kb
.contenttype-folder{
   background-image: url(folder.gif);
}




1 request, ~18 kb
.contenttype-folder{
   background-image: url(all-my-images.png);
   background-position: 75px 25px;
}




                                               UNLOAD

HTTPD
Picking a Proxy or:
 How I learned to stop worrying and love HAProxy

   graceful reloads

   backend health

   distribution algorithms

   warmup time

   preserve keepalives

   web based stats




PROXY
Playing Nice with Others
 if python < 2.6:
     socket.settimeout(2)
 else:
     urllib2.urlopen(url, timeout=2)




ZOPE++

ZEO & CO.
Pickle
                                Drop
                               Pickup
                              Process
ZOPE++                        Callback
         Pickle Me Some Asynchronicity
EXTERNAL DATA ST.




ZEO & CO.
                      tal:on-error
ACCEPTANCE
                 ZEO is perfect for object
              oriented access, but it needs
               a little help with other data
                           access paradigms




ZEO & CO.
RESTARTing zope is NOT a SIN
                   sometimes its just easier...

            a   PACKED zodb is a HAPPY zodb
                           beware of backup side effects
                 CRON is
                    deploy with 1-step
                                       HOMEBOY
                           fabrics’ rolling blackouts


 FACTS
ZOPE
ZEO & CO.
ON BACKUPS
                     use repozo

                  chunked rsync

                  watch the disk




ZEO & CO.
Plone != Drupal   Scalability = Talent + Hardware
Living in the Cloud
          The Oath:
           I will automate a modular
           installation of everything
           I will not do anything manually
           that could be done
           automatically, which is everything
           I can trigger unscheduled
           processes anytime, from
           anywhere
           I appreciate that scaling is hard:
           the cloud offers options, not
           solutions
‣   Always setup system and error monitoring first
‣   Choose the right software for YOUR hardware
‣   Use as many zopes as possible but no more
‣   Do it like a flickr engineer
‣   Don’t make zope handle unnecessary requests
‣   Never underestimate the importance of a
    proper disk-RAM partnership
‣   Design processes to be able to run from
    anywhere, at anytime, on any machine




               SUMMARY
All this and more at
http://scalingplone.pbwiki.com




              Thank You!

More Related Content

Similar to Unloading Plone

Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopJesse Vincent
 
Corwin on Containers
Corwin on ContainersCorwin on Containers
Corwin on ContainersCorwin Brown
 
Cfgmgmt Challenges aren't technical anymore
Cfgmgmt Challenges aren't technical anymoreCfgmgmt Challenges aren't technical anymore
Cfgmgmt Challenges aren't technical anymoreJulien Pivotto
 
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]Matthew McCullough
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best PracticesEric Bottard
 
Enhance system transparency and truthfulness with request tracing
Enhance system transparency and truthfulness with request tracingEnhance system transparency and truthfulness with request tracing
Enhance system transparency and truthfulness with request tracingSam Keen
 
Docker experience @inbotapp
Docker experience @inbotappDocker experience @inbotapp
Docker experience @inbotappJilles van Gurp
 
HTTP cache @ PUG Rome 03-29-2011
HTTP cache @ PUG Rome 03-29-2011HTTP cache @ PUG Rome 03-29-2011
HTTP cache @ PUG Rome 03-29-2011Alessandro Nadalin
 
Site Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariSite Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariJoseph Scott
 
Puppet for dummies - PHPBenelux UG edition
Puppet for dummies - PHPBenelux UG editionPuppet for dummies - PHPBenelux UG edition
Puppet for dummies - PHPBenelux UG editionJoshua Thijssen
 
Neo4j Stored Procedure Training Part 1
Neo4j Stored Procedure Training Part 1Neo4j Stored Procedure Training Part 1
Neo4j Stored Procedure Training Part 1Max De Marzi
 
Austin Web Architecture
Austin Web ArchitectureAustin Web Architecture
Austin Web Architecturejoaquincasares
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Pse2010 rel storage
Pse2010 rel storagePse2010 rel storage
Pse2010 rel storageLars Noldan
 
AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...
AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...
AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...GeeksLab Odessa
 
Puppet for Sys Admins
Puppet for Sys AdminsPuppet for Sys Admins
Puppet for Sys AdminsPuppet
 

Similar to Unloading Plone (20)

Docker all the way
Docker all the wayDocker all the way
Docker all the way
 
Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl Workshop
 
Corwin on Containers
Corwin on ContainersCorwin on Containers
Corwin on Containers
 
Cfgmgmt Challenges aren't technical anymore
Cfgmgmt Challenges aren't technical anymoreCfgmgmt Challenges aren't technical anymore
Cfgmgmt Challenges aren't technical anymore
 
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
 
Racing with Droids
Racing with DroidsRacing with Droids
Racing with Droids
 
ZODB Tips and Tricks
ZODB Tips and TricksZODB Tips and Tricks
ZODB Tips and Tricks
 
ZODB Tips and Tricks
ZODB Tips and TricksZODB Tips and Tricks
ZODB Tips and Tricks
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best Practices
 
Enhance system transparency and truthfulness with request tracing
Enhance system transparency and truthfulness with request tracingEnhance system transparency and truthfulness with request tracing
Enhance system transparency and truthfulness with request tracing
 
Docker experience @inbotapp
Docker experience @inbotappDocker experience @inbotapp
Docker experience @inbotapp
 
HTTP cache @ PUG Rome 03-29-2011
HTTP cache @ PUG Rome 03-29-2011HTTP cache @ PUG Rome 03-29-2011
HTTP cache @ PUG Rome 03-29-2011
 
Site Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariSite Performance - From Pinto to Ferrari
Site Performance - From Pinto to Ferrari
 
Puppet for dummies - PHPBenelux UG edition
Puppet for dummies - PHPBenelux UG editionPuppet for dummies - PHPBenelux UG edition
Puppet for dummies - PHPBenelux UG edition
 
Neo4j Stored Procedure Training Part 1
Neo4j Stored Procedure Training Part 1Neo4j Stored Procedure Training Part 1
Neo4j Stored Procedure Training Part 1
 
Austin Web Architecture
Austin Web ArchitectureAustin Web Architecture
Austin Web Architecture
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Pse2010 rel storage
Pse2010 rel storagePse2010 rel storage
Pse2010 rel storage
 
AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...
AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...
AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...
 
Puppet for Sys Admins
Puppet for Sys AdminsPuppet for Sys Admins
Puppet for Sys Admins
 

More from Elizabeth Leddy

10 secrets to sustainable open source communities
10 secrets to sustainable open source communities10 secrets to sustainable open source communities
10 secrets to sustainable open source communitiesElizabeth Leddy
 
A Small Group of Thoughtful, Committed [plone] People
A Small Group of Thoughtful, Committed [plone] PeopleA Small Group of Thoughtful, Committed [plone] People
A Small Group of Thoughtful, Committed [plone] PeopleElizabeth Leddy
 
I Wish I knew How to Quit You
I Wish I knew How to Quit YouI Wish I knew How to Quit You
I Wish I knew How to Quit YouElizabeth Leddy
 
Plone as a Development Platform
Plone as a Development PlatformPlone as a Development Platform
Plone as a Development PlatformElizabeth Leddy
 

More from Elizabeth Leddy (8)

10 secrets to sustainable open source communities
10 secrets to sustainable open source communities10 secrets to sustainable open source communities
10 secrets to sustainable open source communities
 
A Small Group of Thoughtful, Committed [plone] People
A Small Group of Thoughtful, Committed [plone] PeopleA Small Group of Thoughtful, Committed [plone] People
A Small Group of Thoughtful, Committed [plone] People
 
I Wish I knew How to Quit You
I Wish I knew How to Quit YouI Wish I knew How to Quit You
I Wish I knew How to Quit You
 
Plone as a Development Platform
Plone as a Development PlatformPlone as a Development Platform
Plone as a Development Platform
 
Fuck youbackground
Fuck youbackgroundFuck youbackground
Fuck youbackground
 
F*ck you, Do Something
F*ck you, Do SomethingF*ck you, Do Something
F*ck you, Do Something
 
Old Dogs and New Tricks
Old Dogs and New TricksOld Dogs and New Tricks
Old Dogs and New Tricks
 
2011: Year of the fish
2011: Year of the fish2011: Year of the fish
2011: Year of the fish
 

Recently uploaded

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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 Nanonetsnaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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.pptxEarley Information Science
 
[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.pdfhans926745
 
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 MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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 MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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 WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Recently uploaded (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
[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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Unloading Plone

  • 1. unloading plone Tools, Tips, and Techniques for Approaching Scalability Elizabeth Leddy @eleddy
  • 2. am I in the right room? Symptoms Include inability to grow with traditional caching solutions, icky system performance, crashitis, log-o-phobia, hardware anemia, mashup mayhem, diminishing confidence in your abilities as plone integrator or administrator, where do I start migraines, all the rest of the talks look boring, this room has better internet connectivity, I have no clue what I’m doing here
  • 3. CONFUCIUS SAY A responsive, scalable Plone setup has little to do with optimizing code
  • 4.
  • 5. Measure, Measure, Measure Measure, Measure, Measure Measure, Measure, Measure Measure, Measure, Measure Measure, Measure, Measure Measure, Measure, Measure Measure, Measure, Measure Measure, Measure, Measure Measure, Measure, Measure Act
  • 6. AUTO-RESTART GANGLIA ZOPE HEALTH WATCHER MUNIN MONIT CUSTOM PLUGINS TIMEOUTS ALERTS TIME BASED GRAPHS AFFECTION ABNORMALITIES I quit... Monitoring Tools
  • 7. Watching Bad Performances Whale watchers are triggered by system abnormalities, and grab relevant information to help you diagnose what happened.
  • 8. Simple(r) Error Monitoring Sludge Through Logs Escalate with Email Google Analytics for Timeouts, 4XX & 5XX
  • 9. 4 Stages of System Grief Denial Anger Bargaining Acceptance LB HTTPD HTTPD HTTPD HTTPD^N CACHE CACHES PROXY PROXY PROXY ZOPE ZOPE++ ZOPE++++ ZOPE^N DB CACHE DB CACHES LB ZEO ZEO SHARD ZEO SHARD ZEO & CO.
  • 10. H OW MUCH A CPU DISK R HAPROXY D POUND ZEO W HTTPD SQUID A NGINX R ZOPE VARNISH E ZEO CACHE? MEMCACHE ZODB CACHE RAM
  • 11. Two’s Company, Three’s a Crowd ZOPE++ DB CACHE
  • 12. How many zopes should I have? 50% avg util 2 zopes/cpu api/async instances? ZOPE++
  • 14. The CacheFu Conundrum The browser is the cheapest, easiest caching tool at your disposal, Daniel-son. It’s time to show the world you are the developer I know you can be... Oh, CacheFu you have been a great leader and I wish I would have taken the time to figure out how caching really works. I’m afraid I will fail you, never fully understanding the 304. Shame!
  • 15. Serve STATIC content from a STATIC web server to unload plone, provide faster response time to initial requests, 5200 and enable simpler caching strategies 2700 2600 2100 1800 1500 httpd plone user.gif link_icon.gif poo.gif HTTPD RewriteRule ^/(.*)portal_skins/mysite_images/(.*) /mysite_images/$2 [L]
  • 16. CSS & Sprites 30 requests, ~200 kb .contenttype-folder{ background-image: url(folder.gif); } 1 request, ~18 kb .contenttype-folder{ background-image: url(all-my-images.png); background-position: 75px 25px; } UNLOAD HTTPD
  • 17. Picking a Proxy or: How I learned to stop worrying and love HAProxy graceful reloads backend health distribution algorithms warmup time preserve keepalives web based stats PROXY
  • 18. Playing Nice with Others if python < 2.6: socket.settimeout(2) else: urllib2.urlopen(url, timeout=2) ZOPE++ ZEO & CO.
  • 19. Pickle Drop Pickup Process ZOPE++ Callback Pickle Me Some Asynchronicity
  • 20. EXTERNAL DATA ST. ZEO & CO. tal:on-error
  • 21. ACCEPTANCE ZEO is perfect for object oriented access, but it needs a little help with other data access paradigms ZEO & CO.
  • 22. RESTARTing zope is NOT a SIN sometimes its just easier... a PACKED zodb is a HAPPY zodb beware of backup side effects CRON is deploy with 1-step HOMEBOY fabrics’ rolling blackouts FACTS ZOPE ZEO & CO.
  • 23. ON BACKUPS use repozo chunked rsync watch the disk ZEO & CO.
  • 24. Plone != Drupal Scalability = Talent + Hardware
  • 25. Living in the Cloud The Oath: I will automate a modular installation of everything I will not do anything manually that could be done automatically, which is everything I can trigger unscheduled processes anytime, from anywhere I appreciate that scaling is hard: the cloud offers options, not solutions
  • 26. Always setup system and error monitoring first ‣ Choose the right software for YOUR hardware ‣ Use as many zopes as possible but no more ‣ Do it like a flickr engineer ‣ Don’t make zope handle unnecessary requests ‣ Never underestimate the importance of a proper disk-RAM partnership ‣ Design processes to be able to run from anywhere, at anytime, on any machine SUMMARY
  • 27. All this and more at http://scalingplone.pbwiki.com Thank You!