TYPO3 Scalability for high traffic sites

7,446 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,446
On SlideShare
0
From Embeds
0
Number of Embeds
31
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • Probability of failure increases with more components
  • Realistic goals: Traffic per time period, concurrent users, response time
  • TYPO3 Scalability for high traffic sites

    1. 1. TYPO3 Scalability for high traffic Websites<br />Presenter: Dan Osipov<br />http://danosipov.com<br />Twitter: @danosipov<br />
    2. 2. About me<br />Work with TYPO3 full time since 2007<br />Used TYPO3 for high traffic dynamic news sites<br />DAM Team leader<br />Author of TYPO3 4.3 Multimedia Cookbook from Packt<br />
    3. 3. What is Scalability?<br />“Desirable property of a system which indicates its ability to either handle growing amounts of work in a graceful manner or to be readily enlarged.”[1]<br />[1] http://en.wikipedia.org/wiki/Scalability<br />
    4. 4. Why scale?<br />Support more traffic<br />Offer better response time<br />High availability & minimum downtime<br />
    5. 5. Vertical scaling<br />
    6. 6. Vertical scaling<br />
    7. 7. Vertical scaling<br />
    8. 8. Horizontal scaling<br />
    9. 9. How to build a scalable system?<br />Develop benchmarks<br />Optimize the site<br />Find bottlenecks<br />Experiment<br />Art more than a science<br />
    10. 10. Benchmarking<br />Benchmarks: measurable goals you can use to track progress<br />ab<br />Jmeter<br />Profiling<br />Monitoring<br />
    11. 11. Caching<br />Cache everything that can be cached<br />TYPO3 Cache<br />Use different backends (TYPO3 >4.3)<br />MySQL Query Cache<br />PHP Bytecode cache<br />eaccelerator<br />APC<br />X-Cache<br />
    12. 12. Separating Processing & DB<br />
    13. 13. Separating Processing & DB<br />Point TYPO3 to a different host for DB<br />Optimize servers for their function<br />Multiple processors for processing server<br />Fast disks and RAM for DB server<br />Compress data between processing & DB server<br />$TYPO3_CONF_VARS['SYS']['dbClientCompress']<br />
    14. 14. Scaling application servers<br />
    15. 15. Scaling application servers<br />Load balancer<br />Round robin DNS<br />Hardware load balancer<br />Software load balancer (nginx)<br />Centralize storage<br />Fileadmin on NFS<br />rsync<br />
    16. 16. Scaling application servers<br />
    17. 17. Scaling DB servers<br />
    18. 18. Scaling DB servers<br />Sharding<br />Master-Slave Replication<br />Easy to set up for most DB systems<br />t3p_scalable<br />Read (SELECT) requests go to slave servers<br />Write (INSERT, UPDATE, DELETE, etc) requests go to the master<br />
    19. 19. Scaling DB servers<br />
    20. 20. Scaling File System<br />
    21. 21. Scaling File System<br />Amazon S3<br />cdnfiles<br />Replaces “fileadmin/”, “uploads/”, “typo3temp/pics/” links to CDN equivalents<br />Isn’t responsible for uploading or maintaining CDN versions<br />
    22. 22. High Availability<br />
    23. 23. High Availability<br />
    24. 24. High Availability<br />
    25. 25. Limitations<br />Single Master DB<br />Every FE request requires a connection to the master<br />100% availability (failover in catastrophic cases)<br />Difficult to scale<br />
    26. 26. Cloud computing<br />Scalability on demand<br />Easy to launch required servers & shut them down when traffic falls<br />EC2<br />Joyent<br />Rackspace<br />
    27. 27. Questions?<br />Thank you for listening!<br />

    ×