Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

TYPO3 Scalability for high traffic sites

8.120 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

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 />