SlideShare ist ein Scribd-Unternehmen logo
1 von 56
Plone Deployment:
Secrets & Tricks
Steve McMahon

Plone Conference, 2012, Arnhem, NL
On  ly!
                         Tod  ay          ricks!
                                    ts orT
                           t Se cre
                   Wit hou

Plone Deployment:
Secrets & Tricks
Steve McMahon

Plone Conference, 2012, Arnhem, NL
You: SysAdmin or Friend of SysAdmin
ix y
               SX , Un
           D, O
       , BS
Li nux

    You: SysAdmin or Friend of SysAdmin
ix y
               SX , Un
           D, O
       , BS
Li nux

    You: SysAdmin or Friend of SysAdmin


              Me: SysAdmin and person
               who talks to SysAdmins
Looking for something more
advanced?
Looking for something more
advanced?


   Martin is in the disco room!
Looking for something more
advanced?


   Martin is in the disco room!
      How I get my twins to do my bidding
      with scrum methodology and buildout.
How we look to PHP folks
How they look to us.
Real life, for both.
What we want.
Stand-Alone
Zope / Plone                         Internet




✤   This works, but …               Zope / Plone
                                   Port 80 or 8080

✤   Lacks:

    ✤   Versatility

    ✤   SSL
                                   ZODB / Blobs

    ✤   Plays poorly with others
+ Web Server                         Internet




✤   Modern Web Server as Reverse
                                    Web Server
    Proxy                            80 / 443


✤   Handles SSL

✤   Efficiently queues requests
                                   Zope / Plone
                                    Port 8080
✤   Handles URL rewrites

✤   Battle-hardened logging and
    request sanitizing
                                   ZODB / Blobs

✤   Plays well with others
+ Web Apps                                           Internet




                                                    Web Server
                                                     80 / 443


✤   URL Rewriting makes it easy to
    map in other best-of-breed
    apps.                            Zope / Plone
                                                                   Other
                                                                 Web Apps
                                      Port 8080
                                                                  Ports: ?
✤   Can share special
    authentication, single-sign-on
    requirements.
                                     ZODB / Blobs
Optimizations
“Premature optimization is
 the root of all evil.”


                        Donald Knuth
“Measure, measure, measure.
 Then act.”

                 E. Leddy
                 Budapest: Keynote Lecture in
                 Appreciation of Donald Knuth
Load Balancing
Load Balancing means always having a canon ready to fire.

L. DaVinci, Authenticity Disputed
+ZEO
                                      ZEO Client 1   ZEO Client 2   ZEO Client …
                                       Port 8081      Port 8082       Ports …



✤   Efficient with modern multi-
    core processors even on single
    machines.
                                                      ZEO Server
                                                       Port 8000
✤   Can scale to multiple machines.

✤   A good option even without
    load balancing: debugging and
    run scripts.                                     ZODB / Blobs



✤   Pack database by command
    line utility.
+Load                              Internet
                                                           Web Server
                                                            80 / 443


 Balancing
                                                             Load
                                                           Balancer
✤   Distributes work among ZEO                             Port 9000

    clients.

✤   Can help avoid service
                                              ZEO Client   ZEO Client   ZEO Client
    interruptions.                                1            2           …
                                              Port 8081    Port 8082     Ports …

✤   Balancing scheme can matter.
                                                             ZEO
✤   Session maintenance can                                 Server         ZODB /
                                                           Port 8000        Blobs
    matter.
Proxy Caching
“Good caching makes light work.”

John Heywood, 1546, Often Misquoted.
+Server Cache
                                               Web Server
                                    Internet    80 / 443




                                                Proxy
                                                Cache
                                               Port 6000
✤   Reverse-Proxy Cache

✤   Typically between web server
    and load balancer.                           Load
                                               Balancer
                                               Port 9000
✤   Can be on a separate machine.

✤   Cache in memory or on disk.
                                                ZEO
                                               Cluster
“Caching is hard.”


                     D. Glick,
                     Cioppino 2012
plone.app.caching
“plone.app.caching is your frenemy.”

Winston Churchill, 1944, Authenticity Disputed.
Choosing Tools
Take care of your tools and they will take care of you.

Traditional
Web Server
            Internet    80 / 443




                        Proxy
                        Cache

Best of Breed          Port 6000




Approach
                         Load
                       Balancer
                       Port 9000




                        ZEO
                       Cluster
Internet
                       Web Server
                        80 / 443
                                    Nginx




                        Proxy
                        Cache

Best of Breed          Port 6000




Approach
                         Load
                       Balancer
                       Port 9000




                        ZEO
                       Cluster
Internet
                       Web Server
                        80 / 443
                                    Nginx




                        Proxy
                        Cache       Varnish
Best of Breed          Port 6000




Approach
                         Load
                       Balancer
                       Port 9000




                        ZEO
                       Cluster
Internet
                       Web Server
                        80 / 443
                                    Nginx




                        Proxy
                        Cache       Varnish
Best of Breed          Port 6000




Approach
                         Load
                       Balancer
                       Port 9000
                                    HAProxy




                        ZEO
                       Cluster
Web Server                                Internet
                                                     Web Server


Does it All
                                                      80 / 443




Entia non sunt multiplicanda praeter                  Proxy
                                                      Cache
necessitatem.                                        Port 6000

(Entities must not be multiplied beyond
necessity.)
        — William of Occam
            (14th Century SysAdmin)                    Load
                                                     Balancer
                                                     Port 9000
Keep is Simple, Stupid.
      — Occam’s Razor, translated to
         modern sysadmin speak
                                                      ZEO
                                                     Cluster
How To?
http://collective-docs.readthedocs.org/en/latest/hosting/

Is This The Right Place For This Resource? Good Question!
“Backup is serious shit.”


                            E. Leddy,
                            Cioppino 2012
re an re
                          ups a f befo
                      back are o
                 nsive ake c
         prehe k to t
    Com nt tas             f drin king.
    im porta weekend o
     star ting a
“Backup is serious shit.”


                                            E. Leddy,
                                            Cioppino 2012
re an re
                             ups a f befo
                        back are o
                 nsive ake c
          prehe k to t
    Com nt tas                 f drin king.
    im porta weekend o
     star ting a                       rehe nsive
“Backup is serious shit.”        omp
                          k of c o a weeke      nd of
               rse, a lac       ad t
      O f cou can also le
       bac  kups     and t  ears.
       drink  ing —

                                                   E. Leddy,
                                                   Cioppino 2012
re an re
                             ups a f befo
                        back are o
                 nsive ake c
          prehe k to t
    Com nt tas                 f drin king.
    im porta weekend o
     star ting a                       rehe  nsive
“Backup is serious shit.”        omp
                          k of c o a weeke       nd of
               rse, a lac       ad t
      O f cou can also le
       bac  kups     and t  ears.
             king —                            IRC, 2012
       drin                        id G  lick,       ilkes
                             Dav
                                        Matt   hewW
                          Caut  ion to                E. Leddy,
                                                    Cioppino 2012
backup, rsync, restore


                         Is there another way?
backup, rsync, restore
recipe = collective.recipe.backup

                                    Is there another way?
Logs
“Rotate your logs or your server will die.”

E. Steele, The Missing 18 Minutes
“sudo   apt-get install logrotate”



                        Traditional Proverb,
                        England, 12th Century
logrotate rules

# rotate logs for client #2
/var/db/plone4.1/zeocluster/var/client2/Z2.log
/var/db/plone4.1/zeocluster/var/client2/event.log {
    rotate 5
    weekly
    sharedscripts
    postrotate
       kill -USR2 `cat /var/db/…/client2.pid`
    endscript
}
logrotate rules

# rotate logs for client #2
/var/db/plone4.1/zeocluster/var/client2/Z2.log
/var/db/plone4.1/zeocluster/var/client2/event.log {
    rotate 5
    weekly
    sharedscripts
    postrotate
       kill -USR2 `cat /var/db/…/client2.pid`
    endscript
}
And, while on the log topic:
And, while on the log topic:

2012-10-02T06:43:51 ERROR Zope.SiteErrorLog 1349185431.820.261142121162 http://colonialart.org/archive/artList
Traceback (innermost last):
 Module ZPublisher.Publish, line 126, in publish
 Module ZPublisher.mapply, line 77, in mapply
 Module ZPublisher.Publish, line 46, in call_object
 Module Shared.DC.Scripts.Bindings, line 322, in __call__
 Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
 Module Products.PageTemplates.ZopePageTemplate, line 334, in _exec
 Module Products.PageTemplates.ZopePageTemplate, line 431, in pt_render
 Module Products.PageTemplates.PageTemplate, line 79, in pt_render
 Module zope.pagetemplate.pagetemplate, line 113, in pt_render
 Module zope.tal.talinterpreter, line 271, in __call__
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 888, in do_useMacro
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 533, in do_optTag_tal
 Module zope.tal.talinterpreter, line 518, in do_optTag
 Module zope.tal.talinterpreter, line 513, in no_tag
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 954, in do_defineSlot
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 533, in do_optTag_tal
 Module zope.tal.talinterpreter, line 518, in do_optTag
 Module zope.tal.talinterpreter, line 513, in no_tag
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 858, in do_defineMacro
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 954, in do_defineSlot
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 533, in do_optTag_tal
And, while on the log topic:

2012-10-02T06:43:51 ERROR Zope.SiteErrorLog 1349185431.820.261142121162 http://colonialart.org/archive/artList
Traceback (innermost last):
 Module ZPublisher.Publish, line 126, in publish
 Module ZPublisher.mapply, line 77, in mapply
 Module ZPublisher.Publish, line 46, in call_object
 Module Shared.DC.Scripts.Bindings, line 322, in __call__
 Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
 Module Products.PageTemplates.ZopePageTemplate, line 334, in _exec
 Module Products.PageTemplates.ZopePageTemplate, line 431, in pt_render
 Module Products.PageTemplates.PageTemplate, line 79, in pt_render
 Module zope.pagetemplate.pagetemplate, line 113, in pt_render


                                                                    Read your
 Module zope.tal.talinterpreter, line 271, in __call__
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 888, in do_useMacro
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 533, in do_optTag_tal
 Module zope.tal.talinterpreter, line 518, in do_optTag
 Module zope.tal.talinterpreter, line 513, in no_tag
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 954, in do_defineSlot
                                                                    event logs!
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 533, in do_optTag_tal
 Module zope.tal.talinterpreter, line 518, in do_optTag
 Module zope.tal.talinterpreter, line 513, in no_tag
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 858, in do_defineMacro
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 954, in do_defineSlot
 Module zope.tal.talinterpreter, line 343, in interpret
 Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Database Packing
Early ZODB Packing Tool

Leonardo Da Vinci, ~1500
Better ZODB Packing



 bin/zeopack


(plone.recipe.zeoserver)
Platform Setup & Plone Install
“These days, I use system packages
 as much as possible.
 You should, too.”


                             E. Leddy,
                             Cioppino 2012
Unified Installer:
Least-Used Feature


 --with-python=/usr/bin/python2.7
Unified Installer:
Least-Known Feature


     --clients=client-count
“Never run buildout as root.”


                        S. McMahon,
                        PloneConf, Today
Avoiding root



    sudo -u plone bin/buildout
Deployment Guide
 http://collective-docs.readthedocs.org/en/latest/deployment/
Questions?
Image Credits
✤   cobol: CC by: http://www.flickr.com/photos/philmanker/3654636770/

✤   complex: CC by: http://www.flickr.com/photos/medea_material/1692344189/

✤   plant crusher: CC by NC ND: http://www.flickr.com/photos/duanemoore/4908036590/

✤   diagram: CC by NC SA: http://www.flickr.com/photos/nataliedowne/6446884983/

✤   blue: CC BY NC ND: http://www.flickr.com/photos/barthanlon/3670183050/

✤   light timer: CC by NC SA: http://www.flickr.com/photos/dorkstyle/3783421698/

✤   chain reaction: CC by NC ND: http://www.flickr.com/photos/acplinfo/2315988501/

✤   Giant Crossbow courtesy of http://www.leonardoda-vinci.org

✤   Centrifuge: CC by SA: http://www.flickr.com/photos/lrosa/515028911/

✤   Mystery: CC by NC ND: http://www.flickr.com/photos/zeptonn/2631113046/

✤   Decoder: CC by NC SA: http://www.flickr.com/photos/curiousexpeditions/962394310/

✤   Screw Gear: CC by NC: http://www.flickr.com/photos/travelinlibrarian/4308521250/

✤   Worm Gear: CC by NC: http://www.flickr.com/photos/travelinlibrarian/4307997887/

✤   Pulleys: CC by NC: http://www.flickr.com/photos/travelinlibrarian/4305293959/

✤   Ball Bearings: CC by: http://www.flickr.com/photos/cristic/312874252/

✤   Multi-Barrel: CC by NC SA: http://www.flickr.com/photos/malcubed/2930190065/

✤   Cannons: CC by: http://www.flickr.com/photos/jeanlouis_zimmermann/5554481148/

✤   Fan: CC by: http://www.flickr.com/photos/jeanlouis_zimmermann/5554419770

✤   Perpetual Motion: CC by NC SA: http://www.flickr.com/photos/grocel/274933518/

Weitere ähnliche Inhalte

Was ist angesagt?

Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011David Troy
 
Ruby Proxies for Scale, Performance, and Monitoring
Ruby Proxies for Scale, Performance, and MonitoringRuby Proxies for Scale, Performance, and Monitoring
Ruby Proxies for Scale, Performance, and MonitoringIlya Grigorik
 
Websocket protocol overview
Websocket protocol overviewWebsocket protocol overview
Websocket protocol overviewallenmeng
 
0-60 with Goliath: Building High Performance Ruby Web-Services
0-60 with Goliath: Building High Performance Ruby Web-Services0-60 with Goliath: Building High Performance Ruby Web-Services
0-60 with Goliath: Building High Performance Ruby Web-ServicesIlya Grigorik
 
Ruby C10K: High Performance Networking - RubyKaigi '09
Ruby C10K: High Performance Networking - RubyKaigi '09Ruby C10K: High Performance Networking - RubyKaigi '09
Ruby C10K: High Performance Networking - RubyKaigi '09Ilya Grigorik
 
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folks
Devoxx Maroc  2015 HTTP 1, HTTP 2 and folksDevoxx Maroc  2015 HTTP 1, HTTP 2 and folks
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folksNicolas Martignole
 
Using Websockets in Play !
Using Websockets in Play !Using Websockets in Play !
Using Websockets in Play !Knoldus Inc.
 
Ruby 1.9 Fibers
Ruby 1.9 FibersRuby 1.9 Fibers
Ruby 1.9 FibersKevin Ball
 
0-60 with Goliath: High performance web services
0-60 with Goliath: High performance web services0-60 with Goliath: High performance web services
0-60 with Goliath: High performance web servicesIlya Grigorik
 
Real-Time with Flowdock
Real-Time with FlowdockReal-Time with Flowdock
Real-Time with FlowdockFlowdock
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSocketsGunnar Hillert
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!Andrew Conner
 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyKyle Drake
 
HTML5 WebSocket Introduction
HTML5 WebSocket IntroductionHTML5 WebSocket Introduction
HTML5 WebSocket IntroductionMarcelo Jabali
 
EC2ナイトセミナプレゼン資料 Rel2
EC2ナイトセミナプレゼン資料 Rel2EC2ナイトセミナプレゼン資料 Rel2
EC2ナイトセミナプレゼン資料 Rel2真一 藤川
 

Was ist angesagt? (20)

Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011
 
Web sockets in Java
Web sockets in JavaWeb sockets in Java
Web sockets in Java
 
Php push notifications
Php push notificationsPhp push notifications
Php push notifications
 
Ruby Proxies for Scale, Performance, and Monitoring
Ruby Proxies for Scale, Performance, and MonitoringRuby Proxies for Scale, Performance, and Monitoring
Ruby Proxies for Scale, Performance, and Monitoring
 
Websocket protocol overview
Websocket protocol overviewWebsocket protocol overview
Websocket protocol overview
 
0-60 with Goliath: Building High Performance Ruby Web-Services
0-60 with Goliath: Building High Performance Ruby Web-Services0-60 with Goliath: Building High Performance Ruby Web-Services
0-60 with Goliath: Building High Performance Ruby Web-Services
 
Dancing with websocket
Dancing with websocketDancing with websocket
Dancing with websocket
 
Ruby C10K: High Performance Networking - RubyKaigi '09
Ruby C10K: High Performance Networking - RubyKaigi '09Ruby C10K: High Performance Networking - RubyKaigi '09
Ruby C10K: High Performance Networking - RubyKaigi '09
 
Capistrano
CapistranoCapistrano
Capistrano
 
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folks
Devoxx Maroc  2015 HTTP 1, HTTP 2 and folksDevoxx Maroc  2015 HTTP 1, HTTP 2 and folks
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folks
 
Using Websockets in Play !
Using Websockets in Play !Using Websockets in Play !
Using Websockets in Play !
 
Ruby 1.9 Fibers
Ruby 1.9 FibersRuby 1.9 Fibers
Ruby 1.9 Fibers
 
0-60 with Goliath: High performance web services
0-60 with Goliath: High performance web services0-60 with Goliath: High performance web services
0-60 with Goliath: High performance web services
 
Real-Time with Flowdock
Real-Time with FlowdockReal-Time with Flowdock
Real-Time with Flowdock
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSockets
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!
 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
 
CouchDB Google
CouchDB GoogleCouchDB Google
CouchDB Google
 
HTML5 WebSocket Introduction
HTML5 WebSocket IntroductionHTML5 WebSocket Introduction
HTML5 WebSocket Introduction
 
EC2ナイトセミナプレゼン資料 Rel2
EC2ナイトセミナプレゼン資料 Rel2EC2ナイトセミナプレゼン資料 Rel2
EC2ナイトセミナプレゼン資料 Rel2
 

Andere mochten auch

FremføRing HøSt 08 3
FremføRing HøSt 08 3FremføRing HøSt 08 3
FremføRing HøSt 08 3Anniken
 
Makers: brief intro
Makers: brief introMakers: brief intro
Makers: brief introMirco Piccin
 
Cross media between gaming and storytelling
Cross media between gaming and storytellingCross media between gaming and storytelling
Cross media between gaming and storytellingValentina Rao
 
“New spaces, activities and challenges: village kids in the library”
“New spaces, activities and challenges: village kids in the library”“New spaces, activities and challenges: village kids in the library”
“New spaces, activities and challenges: village kids in the library”bridgingworlds2008
 
“Library 2.0: Let's get connected!”
“Library 2.0: Let's get connected!”“Library 2.0: Let's get connected!”
“Library 2.0: Let's get connected!”bridgingworlds2008
 
Sencillos pasos para publicar en timetoast
Sencillos pasos para publicar en timetoastSencillos pasos para publicar en timetoast
Sencillos pasos para publicar en timetoastalecanessas
 
Social media nell' (per l') informazione
Social media nell' (per l') informazioneSocial media nell' (per l') informazione
Social media nell' (per l') informazioneEmanuele Dal Carlo
 
Cinderella 110719192003-phpapp02
Cinderella 110719192003-phpapp02Cinderella 110719192003-phpapp02
Cinderella 110719192003-phpapp02Lola Martin Gomez
 
“Open Source, Crowd Source: harnessing the power of the people behind our lib...
“Open Source, Crowd Source: harnessing the power of the people behind our lib...“Open Source, Crowd Source: harnessing the power of the people behind our lib...
“Open Source, Crowd Source: harnessing the power of the people behind our lib...bridgingworlds2008
 
Vlammen voor de Vrijheid
Vlammen voor de Vrijheid Vlammen voor de Vrijheid
Vlammen voor de Vrijheid Ilya van Marle
 
Podcasting in Learning
Podcasting in LearningPodcasting in Learning
Podcasting in LearningElaine Giles
 
TerminalTux - Terminal Server Open Source 100%! - Confsl 2009
TerminalTux - Terminal Server Open Source 100%! - Confsl 2009TerminalTux - Terminal Server Open Source 100%! - Confsl 2009
TerminalTux - Terminal Server Open Source 100%! - Confsl 2009Mirco Piccin
 
39 Clues Book - 15th Anniversary Gift
39 Clues Book - 15th Anniversary Gift39 Clues Book - 15th Anniversary Gift
39 Clues Book - 15th Anniversary GiftScott Studham
 
Pythagorean Theorem
Pythagorean TheoremPythagorean Theorem
Pythagorean TheoremJames Mason
 
Пасторское душепопечительство
Пасторское душепопечительствоПасторское душепопечительство
Пасторское душепопечительствоguest4df78
 
Pet Overpopulation, Politics And Mandatory Sterilization Spay Usa
Pet Overpopulation, Politics And Mandatory Sterilization Spay UsaPet Overpopulation, Politics And Mandatory Sterilization Spay Usa
Pet Overpopulation, Politics And Mandatory Sterilization Spay Usajlandsman
 

Andere mochten auch (20)

FremføRing HøSt 08 3
FremføRing HøSt 08 3FremføRing HøSt 08 3
FremføRing HøSt 08 3
 
Makers: brief intro
Makers: brief introMakers: brief intro
Makers: brief intro
 
Cross media between gaming and storytelling
Cross media between gaming and storytellingCross media between gaming and storytelling
Cross media between gaming and storytelling
 
“New spaces, activities and challenges: village kids in the library”
“New spaces, activities and challenges: village kids in the library”“New spaces, activities and challenges: village kids in the library”
“New spaces, activities and challenges: village kids in the library”
 
“Library 2.0: Let's get connected!”
“Library 2.0: Let's get connected!”“Library 2.0: Let's get connected!”
“Library 2.0: Let's get connected!”
 
Sencillos pasos para publicar en timetoast
Sencillos pasos para publicar en timetoastSencillos pasos para publicar en timetoast
Sencillos pasos para publicar en timetoast
 
Social media nell' (per l') informazione
Social media nell' (per l') informazioneSocial media nell' (per l') informazione
Social media nell' (per l') informazione
 
WeConnect
WeConnectWeConnect
WeConnect
 
Cinderella 110719192003-phpapp02
Cinderella 110719192003-phpapp02Cinderella 110719192003-phpapp02
Cinderella 110719192003-phpapp02
 
“Open Source, Crowd Source: harnessing the power of the people behind our lib...
“Open Source, Crowd Source: harnessing the power of the people behind our lib...“Open Source, Crowd Source: harnessing the power of the people behind our lib...
“Open Source, Crowd Source: harnessing the power of the people behind our lib...
 
Vlammen voor de Vrijheid
Vlammen voor de Vrijheid Vlammen voor de Vrijheid
Vlammen voor de Vrijheid
 
Podcasting in Learning
Podcasting in LearningPodcasting in Learning
Podcasting in Learning
 
Security
SecuritySecurity
Security
 
TerminalTux - Terminal Server Open Source 100%! - Confsl 2009
TerminalTux - Terminal Server Open Source 100%! - Confsl 2009TerminalTux - Terminal Server Open Source 100%! - Confsl 2009
TerminalTux - Terminal Server Open Source 100%! - Confsl 2009
 
What's the weather vocab
What's the weather vocabWhat's the weather vocab
What's the weather vocab
 
39 Clues Book - 15th Anniversary Gift
39 Clues Book - 15th Anniversary Gift39 Clues Book - 15th Anniversary Gift
39 Clues Book - 15th Anniversary Gift
 
Pythagorean Theorem
Pythagorean TheoremPythagorean Theorem
Pythagorean Theorem
 
Пасторское душепопечительство
Пасторское душепопечительствоПасторское душепопечительство
Пасторское душепопечительство
 
Pet Overpopulation, Politics And Mandatory Sterilization Spay Usa
Pet Overpopulation, Politics And Mandatory Sterilization Spay UsaPet Overpopulation, Politics And Mandatory Sterilization Spay Usa
Pet Overpopulation, Politics And Mandatory Sterilization Spay Usa
 
Twitter voor starters
Twitter voor startersTwitter voor starters
Twitter voor starters
 

Ähnlich wie Plone Deployment (PloneConf Edition)

Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101ConFoo
 
Alfresco Security Best Practices 2012
Alfresco Security Best Practices 2012Alfresco Security Best Practices 2012
Alfresco Security Best Practices 2012Toni de la Fuente
 
MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011Mike Willbanks
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best PracticesEric Bottard
 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS drupalcampest
 
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012Arun Gupta
 
Software Defined Data Centers - June 2012
Software Defined Data Centers - June 2012Software Defined Data Centers - June 2012
Software Defined Data Centers - June 2012Brent Salisbury
 
Alcançando alta performance com EventMachine
Alcançando alta performance com EventMachineAlcançando alta performance com EventMachine
Alcançando alta performance com EventMachinevinibaggio
 
Writing Portable WebSockets in Java
Writing Portable WebSockets in JavaWriting Portable WebSockets in Java
Writing Portable WebSockets in Javajfarcand
 
Ari Zilka Cluster Architecture Patterns
Ari Zilka Cluster Architecture PatternsAri Zilka Cluster Architecture Patterns
Ari Zilka Cluster Architecture Patternsdeimos
 
Learn OpenStack from trystack.cn ——Folsom in practice
Learn OpenStack from trystack.cn  ——Folsom in practiceLearn OpenStack from trystack.cn  ——Folsom in practice
Learn OpenStack from trystack.cn ——Folsom in practiceOpenCity Community
 
Notes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolNotes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolDaniel Austin
 
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
 

Ähnlich wie Plone Deployment (PloneConf Edition) (20)

WebSocket protocol
WebSocket protocolWebSocket protocol
WebSocket protocol
 
IEEE latincom2012
IEEE latincom2012IEEE latincom2012
IEEE latincom2012
 
Varnish Cache
Varnish CacheVarnish Cache
Varnish Cache
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101
 
Alfresco Security Best Practices 2012
Alfresco Security Best Practices 2012Alfresco Security Best Practices 2012
Alfresco Security Best Practices 2012
 
MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best Practices
 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS
 
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
 
Usenix lisa 2011
Usenix lisa 2011Usenix lisa 2011
Usenix lisa 2011
 
Software Defined Data Centers - June 2012
Software Defined Data Centers - June 2012Software Defined Data Centers - June 2012
Software Defined Data Centers - June 2012
 
Apache con 2011 gd
Apache con 2011 gdApache con 2011 gd
Apache con 2011 gd
 
Alcançando alta performance com EventMachine
Alcançando alta performance com EventMachineAlcançando alta performance com EventMachine
Alcançando alta performance com EventMachine
 
Writing Portable WebSockets in Java
Writing Portable WebSockets in JavaWriting Portable WebSockets in Java
Writing Portable WebSockets in Java
 
Ari Zilka Cluster Architecture Patterns
Ari Zilka Cluster Architecture PatternsAri Zilka Cluster Architecture Patterns
Ari Zilka Cluster Architecture Patterns
 
Websocket 1.0
Websocket 1.0Websocket 1.0
Websocket 1.0
 
Rest Vs Soap Yawn2289
Rest Vs Soap Yawn2289Rest Vs Soap Yawn2289
Rest Vs Soap Yawn2289
 
Learn OpenStack from trystack.cn ——Folsom in practice
Learn OpenStack from trystack.cn  ——Folsom in practiceLearn OpenStack from trystack.cn  ——Folsom in practice
Learn OpenStack from trystack.cn ——Folsom in practice
 
Notes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolNotes on a High-Performance JSON Protocol
Notes on a High-Performance JSON Protocol
 
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
 

Mehr von Steve McMahon

From the Client Side: JavaScript in Plone
From the Client Side: JavaScript in PloneFrom the Client Side: JavaScript in Plone
From the Client Side: JavaScript in PloneSteve McMahon
 
Plone Foundation Annual Meeting, Budapest 2009
Plone Foundation Annual Meeting, Budapest 2009Plone Foundation Annual Meeting, Budapest 2009
Plone Foundation Annual Meeting, Budapest 2009Steve McMahon
 
Overlays, Accordions & Tabs, Oh My
Overlays, Accordions & Tabs, Oh MyOverlays, Accordions & Tabs, Oh My
Overlays, Accordions & Tabs, Oh MySteve McMahon
 
Plone 3 2: What's New
Plone 3 2: What's NewPlone 3 2: What's New
Plone 3 2: What's NewSteve McMahon
 
PloneFormGen: Past, Present, Future
PloneFormGen: Past, Present, FuturePloneFormGen: Past, Present, Future
PloneFormGen: Past, Present, FutureSteve McMahon
 

Mehr von Steve McMahon (8)

How diazo works
How diazo worksHow diazo works
How diazo works
 
Javascript in Plone
Javascript in PloneJavascript in Plone
Javascript in Plone
 
From the Client Side: JavaScript in Plone
From the Client Side: JavaScript in PloneFrom the Client Side: JavaScript in Plone
From the Client Side: JavaScript in Plone
 
How Plone Happens
How Plone HappensHow Plone Happens
How Plone Happens
 
Plone Foundation Annual Meeting, Budapest 2009
Plone Foundation Annual Meeting, Budapest 2009Plone Foundation Annual Meeting, Budapest 2009
Plone Foundation Annual Meeting, Budapest 2009
 
Overlays, Accordions & Tabs, Oh My
Overlays, Accordions & Tabs, Oh MyOverlays, Accordions & Tabs, Oh My
Overlays, Accordions & Tabs, Oh My
 
Plone 3 2: What's New
Plone 3 2: What's NewPlone 3 2: What's New
Plone 3 2: What's New
 
PloneFormGen: Past, Present, Future
PloneFormGen: Past, Present, FuturePloneFormGen: Past, Present, Future
PloneFormGen: Past, Present, Future
 

Kürzlich hochgeladen

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Kürzlich hochgeladen (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

Plone Deployment (PloneConf Edition)

  • 1. Plone Deployment: Secrets & Tricks Steve McMahon Plone Conference, 2012, Arnhem, NL
  • 2. On ly! Tod ay ricks! ts orT t Se cre Wit hou Plone Deployment: Secrets & Tricks Steve McMahon Plone Conference, 2012, Arnhem, NL
  • 3. You: SysAdmin or Friend of SysAdmin
  • 4. ix y SX , Un D, O , BS Li nux You: SysAdmin or Friend of SysAdmin
  • 5. ix y SX , Un D, O , BS Li nux You: SysAdmin or Friend of SysAdmin Me: SysAdmin and person who talks to SysAdmins
  • 6. Looking for something more advanced?
  • 7. Looking for something more advanced? Martin is in the disco room!
  • 8. Looking for something more advanced? Martin is in the disco room! How I get my twins to do my bidding with scrum methodology and buildout.
  • 9. How we look to PHP folks
  • 10. How they look to us.
  • 11. Real life, for both.
  • 13. Stand-Alone Zope / Plone Internet ✤ This works, but … Zope / Plone Port 80 or 8080 ✤ Lacks: ✤ Versatility ✤ SSL ZODB / Blobs ✤ Plays poorly with others
  • 14. + Web Server Internet ✤ Modern Web Server as Reverse Web Server Proxy 80 / 443 ✤ Handles SSL ✤ Efficiently queues requests Zope / Plone Port 8080 ✤ Handles URL rewrites ✤ Battle-hardened logging and request sanitizing ZODB / Blobs ✤ Plays well with others
  • 15. + Web Apps Internet Web Server 80 / 443 ✤ URL Rewriting makes it easy to map in other best-of-breed apps. Zope / Plone Other Web Apps Port 8080 Ports: ? ✤ Can share special authentication, single-sign-on requirements. ZODB / Blobs
  • 17. “Premature optimization is the root of all evil.” Donald Knuth
  • 18. “Measure, measure, measure. Then act.” E. Leddy Budapest: Keynote Lecture in Appreciation of Donald Knuth
  • 19. Load Balancing Load Balancing means always having a canon ready to fire. L. DaVinci, Authenticity Disputed
  • 20. +ZEO ZEO Client 1 ZEO Client 2 ZEO Client … Port 8081 Port 8082 Ports … ✤ Efficient with modern multi- core processors even on single machines. ZEO Server Port 8000 ✤ Can scale to multiple machines. ✤ A good option even without load balancing: debugging and run scripts. ZODB / Blobs ✤ Pack database by command line utility.
  • 21. +Load Internet Web Server 80 / 443 Balancing Load Balancer ✤ Distributes work among ZEO Port 9000 clients. ✤ Can help avoid service ZEO Client ZEO Client ZEO Client interruptions. 1 2 … Port 8081 Port 8082 Ports … ✤ Balancing scheme can matter. ZEO ✤ Session maintenance can Server ZODB / Port 8000 Blobs matter.
  • 22. Proxy Caching “Good caching makes light work.” John Heywood, 1546, Often Misquoted.
  • 23. +Server Cache Web Server Internet 80 / 443 Proxy Cache Port 6000 ✤ Reverse-Proxy Cache ✤ Typically between web server and load balancer. Load Balancer Port 9000 ✤ Can be on a separate machine. ✤ Cache in memory or on disk. ZEO Cluster
  • 24. “Caching is hard.” D. Glick, Cioppino 2012
  • 25. plone.app.caching “plone.app.caching is your frenemy.” Winston Churchill, 1944, Authenticity Disputed.
  • 26. Choosing Tools Take care of your tools and they will take care of you. Traditional
  • 27. Web Server Internet 80 / 443 Proxy Cache Best of Breed Port 6000 Approach Load Balancer Port 9000 ZEO Cluster
  • 28. Internet Web Server 80 / 443 Nginx Proxy Cache Best of Breed Port 6000 Approach Load Balancer Port 9000 ZEO Cluster
  • 29. Internet Web Server 80 / 443 Nginx Proxy Cache Varnish Best of Breed Port 6000 Approach Load Balancer Port 9000 ZEO Cluster
  • 30. Internet Web Server 80 / 443 Nginx Proxy Cache Varnish Best of Breed Port 6000 Approach Load Balancer Port 9000 HAProxy ZEO Cluster
  • 31. Web Server Internet Web Server Does it All 80 / 443 Entia non sunt multiplicanda praeter Proxy Cache necessitatem. Port 6000 (Entities must not be multiplied beyond necessity.) — William of Occam (14th Century SysAdmin) Load Balancer Port 9000 Keep is Simple, Stupid. — Occam’s Razor, translated to modern sysadmin speak ZEO Cluster
  • 32. How To? http://collective-docs.readthedocs.org/en/latest/hosting/ Is This The Right Place For This Resource? Good Question!
  • 33. “Backup is serious shit.” E. Leddy, Cioppino 2012
  • 34. re an re ups a f befo back are o nsive ake c prehe k to t Com nt tas f drin king. im porta weekend o star ting a “Backup is serious shit.” E. Leddy, Cioppino 2012
  • 35. re an re ups a f befo back are o nsive ake c prehe k to t Com nt tas f drin king. im porta weekend o star ting a rehe nsive “Backup is serious shit.” omp k of c o a weeke nd of rse, a lac ad t O f cou can also le bac kups and t ears. drink ing — E. Leddy, Cioppino 2012
  • 36. re an re ups a f befo back are o nsive ake c prehe k to t Com nt tas f drin king. im porta weekend o star ting a rehe nsive “Backup is serious shit.” omp k of c o a weeke nd of rse, a lac ad t O f cou can also le bac kups and t ears. king — IRC, 2012 drin id G lick, ilkes Dav Matt hewW Caut ion to E. Leddy, Cioppino 2012
  • 37. backup, rsync, restore Is there another way?
  • 38. backup, rsync, restore recipe = collective.recipe.backup Is there another way?
  • 39. Logs “Rotate your logs or your server will die.” E. Steele, The Missing 18 Minutes
  • 40. “sudo apt-get install logrotate” Traditional Proverb, England, 12th Century
  • 41. logrotate rules # rotate logs for client #2 /var/db/plone4.1/zeocluster/var/client2/Z2.log /var/db/plone4.1/zeocluster/var/client2/event.log { rotate 5 weekly sharedscripts postrotate kill -USR2 `cat /var/db/…/client2.pid` endscript }
  • 42. logrotate rules # rotate logs for client #2 /var/db/plone4.1/zeocluster/var/client2/Z2.log /var/db/plone4.1/zeocluster/var/client2/event.log { rotate 5 weekly sharedscripts postrotate kill -USR2 `cat /var/db/…/client2.pid` endscript }
  • 43. And, while on the log topic:
  • 44. And, while on the log topic: 2012-10-02T06:43:51 ERROR Zope.SiteErrorLog 1349185431.820.261142121162 http://colonialart.org/archive/artList Traceback (innermost last): Module ZPublisher.Publish, line 126, in publish Module ZPublisher.mapply, line 77, in mapply Module ZPublisher.Publish, line 46, in call_object Module Shared.DC.Scripts.Bindings, line 322, in __call__ Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec Module Products.PageTemplates.ZopePageTemplate, line 334, in _exec Module Products.PageTemplates.ZopePageTemplate, line 431, in pt_render Module Products.PageTemplates.PageTemplate, line 79, in pt_render Module zope.pagetemplate.pagetemplate, line 113, in pt_render Module zope.tal.talinterpreter, line 271, in __call__ Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 888, in do_useMacro Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 533, in do_optTag_tal Module zope.tal.talinterpreter, line 518, in do_optTag Module zope.tal.talinterpreter, line 513, in no_tag Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 954, in do_defineSlot Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 533, in do_optTag_tal Module zope.tal.talinterpreter, line 518, in do_optTag Module zope.tal.talinterpreter, line 513, in no_tag Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 858, in do_defineMacro Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 954, in do_defineSlot Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 533, in do_optTag_tal
  • 45. And, while on the log topic: 2012-10-02T06:43:51 ERROR Zope.SiteErrorLog 1349185431.820.261142121162 http://colonialart.org/archive/artList Traceback (innermost last): Module ZPublisher.Publish, line 126, in publish Module ZPublisher.mapply, line 77, in mapply Module ZPublisher.Publish, line 46, in call_object Module Shared.DC.Scripts.Bindings, line 322, in __call__ Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec Module Products.PageTemplates.ZopePageTemplate, line 334, in _exec Module Products.PageTemplates.ZopePageTemplate, line 431, in pt_render Module Products.PageTemplates.PageTemplate, line 79, in pt_render Module zope.pagetemplate.pagetemplate, line 113, in pt_render Read your Module zope.tal.talinterpreter, line 271, in __call__ Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 888, in do_useMacro Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 533, in do_optTag_tal Module zope.tal.talinterpreter, line 518, in do_optTag Module zope.tal.talinterpreter, line 513, in no_tag Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 954, in do_defineSlot event logs! Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 533, in do_optTag_tal Module zope.tal.talinterpreter, line 518, in do_optTag Module zope.tal.talinterpreter, line 513, in no_tag Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 858, in do_defineMacro Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 954, in do_defineSlot Module zope.tal.talinterpreter, line 343, in interpret Module zope.tal.talinterpreter, line 533, in do_optTag_tal
  • 46. Database Packing Early ZODB Packing Tool Leonardo Da Vinci, ~1500
  • 47. Better ZODB Packing bin/zeopack (plone.recipe.zeoserver)
  • 48. Platform Setup & Plone Install
  • 49. “These days, I use system packages as much as possible. You should, too.” E. Leddy, Cioppino 2012
  • 50. Unified Installer: Least-Used Feature --with-python=/usr/bin/python2.7
  • 51. Unified Installer: Least-Known Feature --clients=client-count
  • 52. “Never run buildout as root.” S. McMahon, PloneConf, Today
  • 53. Avoiding root sudo -u plone bin/buildout
  • 56. Image Credits ✤ cobol: CC by: http://www.flickr.com/photos/philmanker/3654636770/ ✤ complex: CC by: http://www.flickr.com/photos/medea_material/1692344189/ ✤ plant crusher: CC by NC ND: http://www.flickr.com/photos/duanemoore/4908036590/ ✤ diagram: CC by NC SA: http://www.flickr.com/photos/nataliedowne/6446884983/ ✤ blue: CC BY NC ND: http://www.flickr.com/photos/barthanlon/3670183050/ ✤ light timer: CC by NC SA: http://www.flickr.com/photos/dorkstyle/3783421698/ ✤ chain reaction: CC by NC ND: http://www.flickr.com/photos/acplinfo/2315988501/ ✤ Giant Crossbow courtesy of http://www.leonardoda-vinci.org ✤ Centrifuge: CC by SA: http://www.flickr.com/photos/lrosa/515028911/ ✤ Mystery: CC by NC ND: http://www.flickr.com/photos/zeptonn/2631113046/ ✤ Decoder: CC by NC SA: http://www.flickr.com/photos/curiousexpeditions/962394310/ ✤ Screw Gear: CC by NC: http://www.flickr.com/photos/travelinlibrarian/4308521250/ ✤ Worm Gear: CC by NC: http://www.flickr.com/photos/travelinlibrarian/4307997887/ ✤ Pulleys: CC by NC: http://www.flickr.com/photos/travelinlibrarian/4305293959/ ✤ Ball Bearings: CC by: http://www.flickr.com/photos/cristic/312874252/ ✤ Multi-Barrel: CC by NC SA: http://www.flickr.com/photos/malcubed/2930190065/ ✤ Cannons: CC by: http://www.flickr.com/photos/jeanlouis_zimmermann/5554481148/ ✤ Fan: CC by: http://www.flickr.com/photos/jeanlouis_zimmermann/5554419770 ✤ Perpetual Motion: CC by NC SA: http://www.flickr.com/photos/grocel/274933518/

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n