wordpress ile buyuk olcekli siteler
TRANSCRIPT
![Page 1: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/1.jpg)
Mustafa Uysal
@m_uysl blog.uysalmustafa.com
#phpkonf
WordPress ile
Büyük Ölçekli Siteler
![Page 2: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/2.jpg)
Ben Kimim?• Yazılım Geliştirici
(Nefis Yemek Tarifleri)
• Kurucu (SKOP)
• WordPress Geliştirici(Plugin | Çeviri | Core)
• Yazar @wpnotlari
![Page 3: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/3.jpg)
1 Numaralı CMS
Genel Kullanım: %26,4
CMS: %59,4
![Page 4: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/4.jpg)
http://w3techs.com/technologies/details/cm-wordpress/all/all
![Page 5: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/5.jpg)
Kimler Kullanıyor
![Page 6: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/6.jpg)
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)
![Page 7: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/7.jpg)
Büyük Ölçek
• 40+ eklenti • ~2M wp_posts • ~200K Tarif • Toplam 50M Kayıt • 12G+ Veritabanı
![Page 8: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/8.jpg)
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
![Page 9: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/9.jpg)
HAProxy + Keepalived
![Page 10: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/10.jpg)
• 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
![Page 11: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/11.jpg)
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
![Page 12: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/12.jpg)
MySQL Sunucuları
• Güncel Sürüm MySQL
•InnoDB kullan • tmpdir icin tmpfs • ince ayar
• query_cache_size • max_connections • innodb_buffer_pool_size • thread_cache_size
![Page 13: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/13.jpg)
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
![Page 14: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/14.jpg)
• 300k arama/gün • 2 Server • Gelen: 70mbps • Giden 200mbps
![Page 15: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/15.jpg)
RabbitMQ
• ASYNC işler • Mail bildirimleri • Push bildirimleri
• WP-CLI Worker
![Page 16: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/16.jpg)
CACHE ALL THE THINGS!
![Page 17: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/17.jpg)
Cache
• Performans • Kullanıcı memnuniyeti • Bot memnuniyeti • Sunucu memnuniyeti • Düşük maliyet
![Page 18: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/18.jpg)
Cache Tipleri
• Opcode Caching • Full Page Caching • Object Caching • Fragment Caching
![Page 19: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/19.jpg)
Opcode Caching
• APC • XCache • Zend Opcache
•OPcache (php 5.5+)
![Page 20: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/20.jpg)
Full Page Caching
• Varnish • Batcache • WP Super Cache • W3 Total Cache • nginx microcaching
![Page 21: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/21.jpg)
Object Caching
define('WP_CACHE', true);
![Page 22: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/22.jpg)
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/
![Page 23: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/23.jpg)
Fragment Caching
• Kullanıcıya özel • TTL
https://gist.github.com/markjaquith/2653957
![Page 24: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/24.jpg)
CDN
• Datacenter dışındaki cache • 100TB /ay • Minimum hop • Minimum origin request
![Page 25: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/25.jpg)
İpuçları
![Page 26: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/26.jpg)
![Page 27: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/27.jpg)
• Master/Slave • Write/Read • multisite
![Page 28: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/28.jpg)
MySQL Operasyonları
• Uzun süren işlemler (5s+) • Mümkünse gece
![Page 29: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/29.jpg)
WP-CLI
• Bulk işlemler • Kendi komutlarımızı
yazabiliyoruz • multisite destekler
wp-cli.org
![Page 30: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/30.jpg)
• Cache grupları farklı makinelere bölünebilir
![Page 31: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/31.jpg)
• Pre-warm caching => Cron • lock mekanizması
Dogpile Etkisi
![Page 32: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/32.jpg)
WP_Query Parametreleri
![Page 33: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/33.jpg)
• 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
![Page 34: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/34.jpg)
• 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/
![Page 35: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/35.jpg)
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)
![Page 36: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/36.jpg)
define('WP_DEBUG', true);define('WP_DEBUG_LOG', true);define('SAVEQUERIES', true);
Debug
https://wordpress.org/plugins/query-monitor/
![Page 37: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/37.jpg)
Backup
✦ Eklentiler işe yaramaz ✦ RSYNC ✦ Amazon s3 ✦ Periyodik Dump
![Page 38: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/38.jpg)
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/
![Page 39: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/39.jpg)
![Page 40: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/40.jpg)
Sorular?
![Page 41: WordPress ile buyuk olcekli siteler](https://reader030.vdocuments.pub/reader030/viewer/2022020716/58eebc381a28abf5138b45b3/html5/thumbnails/41.jpg)
Mustafa Uysal
@m_uysl blog.uysalmustafa.com
#phpkonf
Teşekkürler
Bize Ulaşın