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
Other
apps. Zope / Plone
Port 8080
Web Apps
Ports: ?
✤ Can share special authorization
requirements.
ZODB / Blobs
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
Port 9000
✤ Distributes work among ZEO
clients.
ZEO Client ZEO Client ZEO Client
1 2 …
✤ Can help avoid service Port 8081 Port 8082 Ports …
interruptions.
✤ Balancing scheme can matter. ZEO
ZODB /
Server
Port 8000 Blobs
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
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
46. 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/