Post on 14-Dec-2014
description
transcript
Symfony e grandi numeriSi...può...fare!
Daniel Londero
daniel.londero@sth.it
Chi sono
Daniel Londero
➢ Sviluppatore PHP dal 2005 @
➢ (s|S)ymfony framework
➢ PUG Friuli
➢ Runner
2M500k
5M 300k
10k 10M200k
50k 100k
➢ Nasce nel 1996
➢ Nel 2006 arriva in STH
➢ Nel 2010 si passa a symfony 1.4
➢ 12 aprile 2010 revision 1
➢ 10 giugno 2010: deploy (22 ore)
Calciomercato.com: la storia
I numeri
UTENTI UNICIAL MESE
PAGINE VISTEAL MESE
AGOSTO 2010 3,6M 36M
GENNAIO 2011 3,3M 32M
MARZO 2011 2,2M 28M
➢ Opensource
➢ Community
➢ Documentato
➢ Test
➢ Best practice (MVC / DRY / KISS / ...)
Perchè symfony?
#GAC
LOAD BALANCER
NGINX 1PHP FCGI
BE
LOAD BALANCER
MASTERDB
SLAVEDB1
SLAVEDBN
NFS
. . .
MEMCACHED
APC
NGINX NPHP FCGI
MEMCACHED
APC
NGINX 1 NGINX N
DATA
APPLICATION
LOAD BALANCER
NGINX 1PHP FCGI
BE
LOAD BALANCER
MASTERDB
SLAVEDB1
SLAVEDBN
NFS
. . .
MEMCACHED
APC
NGINX NPHP FCGI
MEMCACHED
APC
NGINX 1 NGINX N
Scalare: orizzontale vs verticale
Orizzontale➢ Aggiungo macchine➢ Aumenta complessità➢ Costi e rischi più bassi
Verticale➢ Aggiungo risorse➢ Bassa complessità➢ Costi e rischi elevati
Gestione delle sessioni
➢ Balancer persistenti
➢ NFS (sconsigliato)
➢ Database
➢ Memcached (Redis dalla 2.4)
LOAD BALANCER
NGINX 1PHP FCGI
BE
LOAD BALANCER
MASTERDB
SLAVEDB1
SLAVEDBN
NFS
. . .
MEMCACHED
APC
NGINX NPHP FCGI
MEMCACHED
APC
NGINX 1 NGINX N
Cache storage system
➢ SfFileCache (default)
➢ SfAPCCache
➢ SfEAcceleratorCache
➢ SfMemcacheCache
➢ SfSQLiteCache
➢ sfXCacheCache
“There are only two hard things in Computer Science: cache invalidation and naming things”
- Phil Karlton
Cache pagina
Cache Partial e Component
Contatori
Sfruttare la velocità di accesso alla memoria per sollevare i database da operazioni inutili.
➢ Impression sui banner
➢ Letture articoli
➢ Voti per i sondaggi
LOAD BALANCER
NGINX 1PHP FCGI
BE
LOAD BALANCER
MASTERDB
SLAVEDB1
SLAVEDBN
NFS
. . .
MEMCACHED
APC
NGINX NPHP FCGI
MEMCACHED
APC
NGINX 1 NGINX N
LOAD BALANCER
NGINX 1PHP FCGI
BE
LOAD BALANCER
MASTERDB
SLAVEDB1
SLAVEDBN
NFS
. . .
MEMCACHED
APC
NGINX NPHP FCGI
MEMCACHED
APC
NGINX 1 NGINX N
sfMasterSlavePluginall: master: class: sfDoctrineDatabase param: dsn: mysql:dbname=database;host:master.example.com username: root password: ~ slave: class: sfDoctrineDatabase param: dsn: mysql:dbname=database;host:slave.example.com username: root password: ~
dev: master: &master class: sfDoctrineDatabase param: dsn: mysql:dbname=database;host=localhost username: root password: ~ slave: *master
Strumenti utili
➢ Web debug toolbar
➢ Slow query log
➢ Explain
➢ Live on stage (and dev)
LOAD BALANCER
NGINX 1PHP FCGI
BE
LOAD BALANCER
MASTERDB
SLAVEDB1
SLAVEDBN
NFS
. . .
MEMCACHED
APC
NGINX NPHP FCGI
MEMCACHED
APC
NGINX 1 NGINX N
LOAD BALANCER
NGINX 1PHP FCGI
BE
LOAD BALANCER
MASTERDB
SLAVEDB1
SLAVEDBN
NFS
. . .
MEMCACHED
APC
NGINX NPHP FCGI
MEMCACHED
APC
NGINX 1 NGINX N
Credits e linkhttp://www.flickr.com/photos/theplanetdotcom/4879419788
http://www.php.net/manual/en/book.memcache.php
http://www.symfony-project.org/reference/1_4/en/05-Factories
http://www.symfony-project.org/gentle-introduction/1_4/en/12-Caching
http://www.symfony-project.org/jobeet/1_4/Doctrine/en/21
http://www.symfony-project.org/plugins/sfDoctrineMasterSlavePlugin
http://dev.mysql.com/doc/refman/5.6/en/slow-query-log.html
http://dev.mysql.com/doc/refman/5.6/en/explain.html
Grazie. Attendo feedback...
Votate questo talkhttp://joind.in/3024
Contattatemidaniel.londero@sth.it | @dlondero | phpblog.it