Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WordPress ile buyuk olcekli siteler

1,119 views

Published on

WordPress kullanan büyük ölçekli sitelerin alt yapısında kullanılan teknolojiler, eklentiler ve teknikler.

Published in: Internet
  • Her yönüyle faydalandığım a'dan z'ye fevkalade bir sunum. Bilgi, emek için Teşekkürler Mustafa Uysal..
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

WordPress ile buyuk olcekli siteler

  1. 1. Mustafa Uysal @m_uysl blog.uysalmustafa.com #phpkonf WordPress ile Büyük Ölçekli Siteler
  2. 2. Ben Kimim? • Yazılım Geliştirici 
 (Nefis Yemek Tarifleri) • Kurucu (SKOP) • WordPress Geliştirici
 (Plugin | Çeviri | Core) • Yazar @wpnotlari
  3. 3. 1 Numaralı CMS Genel Kullanım: %26,4 CMS: %59,4
  4. 4. http://w3techs.com/technologies/details/cm-wordpress/all/all
  5. 5. Kimler Kullanıyor
  6. 6. Büyük Ölçek • 12 M+ tekil ziyaretçi (ay) • 500K+ iOS yüklenme • 2M+ Android yüklenme • 6M+ sayfa gösterimi (peak) • 6M+ app screen view (gün)
  7. 7. Büyük Ölçek • 40+ eklenti • ~2M wp_posts • ~200K Tarif • Toplam 50M Kayıt • 12G+ Veritabanı
  8. 8. Nelerle • Load Balancer (HAProxy + KeepAlived) • Varnish • Web Server (Apache + Nginx) • MySQL (1 Master, 3 Slave) • Memcached • Elasticsearch • RabbitMQ • MongoDB http://stackshare.io/nefisyemektarifleri-com/nefisyemektarifleri
  9. 9. HAProxy + Keepalived
  10. 10. • Giriş yapmamış kullanıcılar • Dogpile etkisi • Çok RAM az CPU https://github.com/dreamhost/varnish-vcl-collection https://wordpress.org/plugins/varnish-http-purge
  11. 11. Web Sunucuları • Apache • Nginx • Gereksiz modulleri kaldır • mod_php yerine php-fpm kullanın • mpm/php-fpm konfigurasyonu • StartServers /pm.start_servers • MaxClients /pm.max_children • MinSpareServers /pm.min_spare_servers • MaxSpareServers /pm.max_spare_servers
  12. 12. MySQL Sunucuları • Güncel Sürüm MySQL •InnoDBkullan • tmpdir icin tmpfs • ince ayar • query_cache_size • max_connections • innodb_buffer_pool_size • thread_cache_size
  13. 13. Elasticsearch • MySQL’e göre çok hızlı • Gelişmiş Arama • Tavsiye yazılar • Arşiv sayfaları • ElasticPress • WP_Query => Elasticsearch port https://github.com/10up/ElasticPress
  14. 14. • 300k arama/gün • 2 Server • Gelen: 70mbps • Giden 200mbps
  15. 15. RabbitMQ •ASYNC işler • Mail bildirimleri • Push bildirimleri •WP-CLI Worker
  16. 16. CACHE ALL THE THINGS!
  17. 17. Cache • Performans • Kullanıcı memnuniyeti • Bot memnuniyeti • Sunucu memnuniyeti • Düşük maliyet
  18. 18. Cache Tipleri • Opcode Caching • Full Page Caching • Object Caching • Fragment Caching
  19. 19. Opcode Caching • APC • XCache • Zend Opcache •OPcache (php 5.5+)
  20. 20. Full Page Caching • Varnish • Batcache • WP Super Cache • W3 Total Cache • nginx microcaching
  21. 21. Object Caching define('WP_CACHE', true);
  22. 22. Object Caching • Redis • Memcached • Transients API • set_transient • get_transient • Object Cache API • wp_cache_set • wp_cache_get https://wordpress.org/plugins/memcached/ https://wordpress.org/plugins/wp-redis/ https://wordpress.org/plugins/memcached-redux/
  23. 23. Fragment Caching • Kullanıcıya özel • TTL https://gist.github.com/markjaquith/2653957
  24. 24. CDN • Datacenter dışındaki cache • 100TB /ay • Minimum hop • Minimum origin request
  25. 25. İpuçları
  26. 26. • Master/Slave • Write/Read • multisite
  27. 27. MySQL Operasyonları • Uzun süren işlemler (5s+) • Mümkünse gece
  28. 28. WP-CLI • Bulk işlemler • Kendi komutlarımızı yazabiliyoruz • multisite destekler wp-cli.org
  29. 29. • Cache grupları farklı makinelere bölünebilir
  30. 30. • Pre-warm caching => Cron • lock mekanizması Dogpile Etkisi
  31. 31. WP_Query Parametreleri
  32. 32. • Task Runner (gulp/grunt) • CSS ve JS sıkıştır • CSS ve JS birleştir • Görsel optimizasyonu • Lazy Load • HTTP 2 HTTP İsteğini Düşür
  33. 33. • PHP 5.2.4 bağlayıcı değil • MVC zorlamanın alemi yok • WordPress Code Standardı PHP Yazarken https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/
  34. 34. Eklentiler 40k+ Eklenti Code review Yüksek trafik için yazılmiyor Güncellemeler Core Minor’u bekle Code review, neler değişmiş? Database Upgrade Localde uygula (defalarca)
  35. 35. define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('SAVEQUERIES', true); Debug https://wordpress.org/plugins/query-monitor/
  36. 36. Backup ✦ Eklentiler işe yaramaz ✦ RSYNC ✦ Amazon s3 ✦ Periyodik Dump
  37. 37. Tavsiye Kaynaklar ✦ https://codex.wordpress.org/ High_Traffic_Tips_For_WordPress ✦ https://www.scalewp.io/ ✦ https://10up.github.io/Engineering- Best-Practices/ ✦ https://vip.wordpress.com/plugins/
  38. 38. Sorular?
  39. 39. Mustafa Uysal @m_uysl blog.uysalmustafa.com #phpkonf Teşekkürler mustafa@nefisyemektarifleri.com Bize Ulaşın

×