SlideShare uma empresa Scribd logo
1 de 79
Baixar para ler offline
Trova e Condividi i tuoi ristoranti preferiti
come nasce?

              L’idea di 2Spaghi nasce dall’ispirazione di
                     popolari servizi Web2.0 USA




un posto dove salvare                                   totalmente
                          guidato dai contenuti
  i propri ristoranti                               democratico ed user-
                          generati dagli utenti
       preferiti                                          centrico




                               Obiettivo?

                scoprire nuovi posti dove mangiare
la vision

2Spaghi nasce con l'obiettivo di creare un luogo che
diventi leader per:



       • Trovare il ristorante giusto per la cena che si sta
         organizzando (mappe, reviews, domande alla
         community).

       • Permettere ai ristoratori di entrare in contatto e
         discutere con i propri clienti e potenziali.
il lancio: luglio 2006

Le prime funzionalita:
  Google Maps Mashup,
  ristoranti ordinati per più
  salvato, SpagoLista,
  commenti degli utenti



• Passaparola come
     modello di Marketing

• Partecipazione ad eventi
     organizzati dalla
     blogosfera italiana
     (barcamp)‫‏‬

• Feedback subito positivi
i primi due anni: business model

 Durante 2007 prime sperimentazioni sul modello di business:


Advertising: 	

Google Adsense e da Settembre ’07 concessionaria pubblicitaria
 	

specializzata in food (Vinoclic)‫‏‬

Newsletter: sponsorizzate: vendute dalla concessionaria

Progetti speciali:

  lancio del film Nero
  Bifamiliare con i ristoranti
  preferiti dei protagonisti
il mercato di riferimento
un caso di successo: Booking online
A Dicembre del 2009 abbiamo lanciato il primo
servizio di prenotazione online su tutti i
ristoranti (oltre 50.000) in Italia come servizio
dedicato agli utenti e completamente free.

Gli utenti lo hanno giudicato:

  1. Comodo
  2. Veloce
  3. Gratuito
 +32.000 prenotazioni entrate   +143.000 coperti prenotati
la SpagoGuida 2011


13 Novembre 2010 è uscita in libreria la
SpagoGuida, la prima guida ai ristoranti
interamente creata grazie alle recensioni
degli utenti
2Spaghi Mobile APPS

165.000 app scaricate                65.000 app scaricate
2Spaghi Mobile APPS


iPhone   165.000 app scaricate                65.000 app scaricate
2Spaghi Mobile APPS


iPhone   165.000 app scaricate        Android 65.000 app scaricate
2Spaghi Mobile APPS


iPhone   165.000 app scaricate        Android 65.000 app scaricate
2Spaghi Mobile APPS


iPhone   165.000 app scaricate        Android 65.000 app scaricate
2Spaghi Mobile APPS


iPhone   165.000 app scaricate        Android 65.000 app scaricate
2Spaghi Mobile APPS


iPhone   165.000 app scaricate        Android 65.000 app scaricate
2Spaghi Mobile APPS
                                       230.000 app scaricate



iPhone   165.000 app scaricate        Android 65.000 app scaricate
Deal(nelle(pagine(dei(ristoran=.(

                                              riguardano(il(ristorante(selezionato,((
                                              ristoran=(vicini(o(simili.((




                                                                                          2Spaghi(u=lizza(una(piaEaforma(
           SPAGOBOX(                                                                    di(backoffice(proprietaria(aEraverso(
acquistabile(on5line(e(nella(GDO(                                                               la(quale(possiamo(

 Cena(scontata(in(un(ristorante(                                                        Visualizzare(i(deal(presen=(sul((
     aderente(al(circuito.(                                                             gruppo(d’acquisto(
                                                                                        EffeEuate(tuEe(le(associazioni(




                                    Collaborazione(commerciale(tra(
                                    2Spaghi(e(gruppi(d’acquisto((
Piattaforma
Piattaforma


2Spaghi ha scelto LAMP come piattaforma di
erogazione dei suoi servizi web.

La scelta è stata strategica perchè offre ampia
versatilità, grande scalabilità e performance elevate.
Piattaforma



 Perchè?
Piattaforma
Piattaforma
Linux e ubuntu server

 La scelta di Ubuntu Server è stata la migliore scelta per noi.

 Pur non essendo la migliore distribuzione(redhat, fedora, centOS, etc), accorpa
 caratteristiche che, per chi come noi non ha grandi competenze di tipo
 sistemistico, sono una manna dal cielo, ad esempio l’aggiornamento e
 l’installazione tramite apt-get dei pacchetti precompilati.

 C’è poi un fattore più opportunistico, il costo pari a 0 (ZERO) per cui non è
 necessario dotarsi di costose licenze software o di assistenza sistemistica
 dedicata. Inoltre il tutto può girare su Harware obsoleto avendo una consumo di
 risorse eseguo.


Apache                               MySQL                                  PHP
Platform
Platform
Apache

 WebServer robusto e veloce è l’ambiente ideale per erogare pagine web e siti
 con molte visite sviluppate in PHP.

 È possibile configurare ogni singolo parametro di erogazione per trovare la
 migliore configurazione possibile (tuning). Questa possibilità naturalmente
 aumenta il rischio di errori.

 Tra le infinite possibilità e moduli configurabili il più interessante è il
 mod_rewrite, sistema ottimale per creare URL parlanti (SEO oriented).
 Che di questi tempi non si sa mai ;-)



MySQL                                  PHP                                   Linux
Piattaforma
Piattaforma
MySQL

 Rappresenta lo standard nel mondo dei DataBase relazionali OpenSource.

Avaro di risorse (CPU) va configurato con attenzione (tuning) per evitare crolli
improvvisi e lock-table indesiderati.

Le nuove versioni, a differenza delle precedenti, consentono una maggiore
scalabilità (cluster, master/slave).

È sempre meglio avere un DB server dedicato!




PHP                                 Linux                              Apache
Piattaforma
Piattaforma
PHP

Il linguaggi client-server più usato sul web e dal mondo Open Source nelle sue
versioni più recenti (>=5.0) ha raggiunto una maturità ed affidabilità notevoli.

L’introduzione di OO e parser XML evoluto, ma anche migliaia di function già
pronte che velocizzano il lavoro dello sviluppatore accorciando i tempi di
produzione rappresentano i suoi punti di forza.

Stabilità e sicurezza lo rendono poi l’alleato ideale anche per architetture più
complesse.




Linux                               Apache                                MySQL
Architettura
Architettura




2006   2007     2008   2009   2010   2011
Architettura




Hosting condiviso+MySQL7MB su Aruba
             da 35€ l’anno




        2006                     2007     2008   2009   2010   2011
Architettura




                                        Server Virtuale presso TOPIX Torino
                                             (front-end + DB Server)
                                            4GB di RAM 1GB di HHD
Hosting condiviso+MySQL7MB su Aruba
                                              banda internet illimitata
             da 35€ l’anno




        2006                     2007               2008                      2009   2010   2011
Architettura




                                                                              Primo Server proprietario
                                                                               (front-end + DB Server)
                                        Server Virtuale presso TOPIX Torino   Athlon II X4 635 (4 x 2.9Mhz)
                                             (front-end + DB Server)          8GB di RAM 3GB di HHD
                                            4GB di RAM 1GB di HHD              Banda internet illimitata
Hosting condiviso+MySQL7MB su Aruba
                                              banda internet illimitata
             da 35€ l’anno




        2006                     2007               2008                      2009                            2010   2011
Architettura




                                                                                                                     Secondo Server proprietario
                                                                                                                             (DB server)
                                                                              Primo Server proprietario               8GB di RAM 3GB di HHD
                                                                               (front-end + DB Server)               Phenom II X4 945 (4 x 3,0 Ghz)
                                        Server Virtuale presso TOPIX Torino   Athlon II X4 635 (4 x 2.9Mhz)            Banda internet illimitata
                                             (front-end + DB Server)          8GB di RAM 3GB di HHD
                                            4GB di RAM 1GB di HHD              Banda internet illimitata
Hosting condiviso+MySQL7MB su Aruba
                                              banda internet illimitata
             da 35€ l’anno




        2006                     2007               2008                      2009                            2010                    2011
Architettura




                                                                                                                     Secondo Server proprietario
                                                                                                                             (DB server)
                                                                              Primo Server proprietario               8GB di RAM 3GB di HHD
                                                                               (front-end + DB Server)               Phenom II X4 945 (4 x 3,0 Ghz)
                                        Server Virtuale presso TOPIX Torino   Athlon II X4 635 (4 x 2.9Mhz)            Banda internet illimitata
                                             (front-end + DB Server)          8GB di RAM 3GB di HHD
                                            4GB di RAM 1GB di HHD              Banda internet illimitata
Hosting condiviso+MySQL7MB su Aruba
                                              banda internet illimitata
             da 35€ l’anno




        2006                     2007               2008                      2009                            2010                    2011

      89.671 Visite
Architettura




                                                                                                                              Secondo Server proprietario
                                                                                                                                      (DB server)
                                                                                       Primo Server proprietario               8GB di RAM 3GB di HHD
                                                                                        (front-end + DB Server)               Phenom II X4 945 (4 x 3,0 Ghz)
                                                 Server Virtuale presso TOPIX Torino   Athlon II X4 635 (4 x 2.9Mhz)            Banda internet illimitata
                                                      (front-end + DB Server)          8GB di RAM 3GB di HHD
                                                     4GB di RAM 1GB di HHD              Banda internet illimitata
Hosting condiviso+MySQL7MB su Aruba
                                                       banda internet illimitata
             da 35€ l’anno




        2006                      2007                       2008                      2009                            2010                    2011

      89.671 Visite           1.000.627 Visite
Architettura




                                                                                                                              Secondo Server proprietario
                                                                                                                                      (DB server)
                                                                                       Primo Server proprietario               8GB di RAM 3GB di HHD
                                                                                        (front-end + DB Server)               Phenom II X4 945 (4 x 3,0 Ghz)
                                                 Server Virtuale presso TOPIX Torino   Athlon II X4 635 (4 x 2.9Mhz)            Banda internet illimitata
                                                      (front-end + DB Server)          8GB di RAM 3GB di HHD
                                                     4GB di RAM 1GB di HHD              Banda internet illimitata
Hosting condiviso+MySQL7MB su Aruba
                                                       banda internet illimitata
             da 35€ l’anno




        2006                      2007                       2008                      2009                            2010                    2011

      89.671 Visite           1.000.627 Visite           4.323.000 Visite
Architettura




                                                                                                                                   Secondo Server proprietario
                                                                                                                                           (DB server)
                                                                                            Primo Server proprietario               8GB di RAM 3GB di HHD
                                                                                             (front-end + DB Server)               Phenom II X4 945 (4 x 3,0 Ghz)
                                                 Server Virtuale presso TOPIX Torino        Athlon II X4 635 (4 x 2.9Mhz)            Banda internet illimitata
                                                      (front-end + DB Server)              8GB di RAM 3GB di HHD
                                                     4GB di RAM 1GB di HHD                  Banda internet illimitata
Hosting condiviso+MySQL7MB su Aruba
                                                       banda internet illimitata
             da 35€ l’anno




        2006                      2007                       2008                         2009                              2010                    2011

      89.671 Visite           1.000.627 Visite           4.323.000 Visite              7.145.000 Visite
Architettura




                                                                                                                                           Secondo Server proprietario
                                                                                                                                                   (DB server)
                                                                                            Primo Server proprietario                       8GB di RAM 3GB di HHD
                                                                                             (front-end + DB Server)                       Phenom II X4 945 (4 x 3,0 Ghz)
                                                 Server Virtuale presso TOPIX Torino        Athlon II X4 635 (4 x 2.9Mhz)                    Banda internet illimitata
                                                      (front-end + DB Server)              8GB di RAM 3GB di HHD
                                                     4GB di RAM 1GB di HHD                  Banda internet illimitata
Hosting condiviso+MySQL7MB su Aruba
                                                       banda internet illimitata
             da 35€ l’anno




        2006                      2007                       2008                         2009                              2010                            2011

      89.671 Visite           1.000.627 Visite           4.323.000 Visite              7.145.000 Visite                 9.655.308 Visite
Architettura




                                                                                                                                           Secondo Server proprietario
                                                                                                                                                   (DB server)
                                                                                            Primo Server proprietario                       8GB di RAM 3GB di HHD
                                                                                             (front-end + DB Server)                       Phenom II X4 945 (4 x 3,0 Ghz)
                                                 Server Virtuale presso TOPIX Torino        Athlon II X4 635 (4 x 2.9Mhz)                    Banda internet illimitata
                                                      (front-end + DB Server)              8GB di RAM 3GB di HHD
                                                     4GB di RAM 1GB di HHD                  Banda internet illimitata
Hosting condiviso+MySQL7MB su Aruba
                                                       banda internet illimitata
             da 35€ l’anno




        2006                      2007                       2008                         2009                              2010                            2011

      89.671 Visite           1.000.627 Visite           4.323.000 Visite              7.145.000 Visite                 9.655.308 Visite                14..500.000 Visite
Architettura
    2012
Architettura
                                    2012
A giugno 2011 per garantire ancora più affidabilità e velocità di calcolo
abbiamo scelto di cambiare ancora server e provider.

Il nuovo provider ci ha permesso di creare una nostra rete privata, connessa a
internet, tramite l’utilizzo di uno switch dedicato al quale sono connessi solo i
nostri server che sono rimasti 2 ma che sono cresciuti in potenza.

Adesso infatti disponiamo di 2 server dotati di 24GB di Ram e di processori
Intel Xeon Quad-Core (x12) e dischi SAS da 300GB.

Questo ci ha consentito di superare i 100.000 utenti giornalieri di San
Valentino. Da sempre il nostro tallone di achille sia per numero di visite che
numero di accessi contemporanei.
Architettura


           MemC

           Redis
Architettura


                      MemC

audience              Redis
Architettura


               Web
                      MemC

audience              Redis
Architettura


               Web
                      MemC

audience              Redis    DB
                              Server
Architettura


               Web
                      MemC

audience              Redis    DB
                              Server




                               BackUp
Architettura


               Web
                              MemC

audience                      Redis    DB
                                      Server
                     Mobile




                                       BackUp
L’evoluzione dell’architettura




*
L’evoluzione dell’architettura

primo scenario (classico 2 livelli)




              *
L’evoluzione dell’architettura

primo scenario (classico 2 livelli)




         RDBMS




              *
L’evoluzione dell’architettura

            primo scenario (classico 2 livelli)


front-end      front-end       front-end   front-end

   1              2               3           ...




                      RDBMS




                           *
L’evoluzione dell’architettura

            primo scenario (classico 2 livelli)


front-end      front-end       front-end   front-end

   1              2               3           ...



                       API

                      RDBMS




                           *
L’evoluzione dell’architettura

            primo scenario (classico 2 livelli)


front-end      front-end       front-end   front-end

   1              2               3           ...

memcache (in memory) + Redis (html)

                       API

                      RDBMS




                           *
L’evoluzione dell’architettura

            primo scenario (classico 2 livelli)                secondo scenario (key-value 3 livelli)


front-end      front-end       front-end   front-end

   1              2               3           ...

memcache (in memory) + Redis (html)

                       API

                      RDBMS




                           *
L’evoluzione dell’architettura

            primo scenario (classico 2 livelli)                secondo scenario (key-value 3 livelli)


front-end      front-end       front-end   front-end

   1              2               3           ...

memcache (in memory) + Redis (html)

                       API

                      RDBMS
                                                             RDBMS




                           *
L’evoluzione dell’architettura

            primo scenario (classico 2 livelli)                 secondo scenario (key-value 3 livelli)


front-end      front-end       front-end   front-end          front-end   front-end   front-end   front-end

   1              2               3           ...                1           2           3           ...

memcache (in memory) + Redis (html)

                       API

                      RDBMS
                                                             RDBMS




                           *
L’evoluzione dell’architettura

            primo scenario (classico 2 livelli)                 secondo scenario (key-value 3 livelli)


front-end      front-end       front-end   front-end          front-end   front-end   front-end   front-end

   1              2               3           ...                1           2           3           ...

memcache (in memory) + Redis (html)

                       API                                                        API

                      RDBMS
                                                             RDBMS




                           *
L’evoluzione dell’architettura

            primo scenario (classico 2 livelli)                 secondo scenario (key-value 3 livelli)


front-end      front-end       front-end   front-end          front-end   front-end   front-end   front-end

   1              2               3           ...                1           2           3           ...

memcache (in memory) + Redis (html)                           memcache (in memory) + Redis (html)

                       API                                                        API

                      RDBMS
                                                             RDBMS




                           *
L’evoluzione dell’architettura

            primo scenario (classico 2 livelli)                 secondo scenario (key-value 3 livelli)


front-end      front-end       front-end   front-end          front-end    front-end     front-end    front-end

   1              2               3           ...                1            2              3           ...

memcache (in memory) + Redis (html)                           memcache (in memory) + Redis (html)

                       API                                                             API

                      RDBMS
                                                                          key-valye-     key-valye-   key-valye-
                                                             RDBMS           DB             DB           DB


                                                                                   in memory

                           *
L’evoluzione dell’architettura

            primo scenario (classico 2 livelli)                                                  secondo scenario (key-value 3 livelli)


front-end      front-end     front-end           front-end                                     front-end    front-end     front-end    front-end

   1              2               3                  ...                                          1            2              3           ...

memcache (in memory) + Redis (html)                                                             memcache (in memory) + Redis (html)

                       API                                                                                              API
                                                                                                           Business Logic*
                      RDBMS
                                                                                                           key-valye-     key-valye-   key-valye-
                                                                                               RDBMS          DB             DB           DB


                                                                                                                    in memory

                           * Business Logic è lo strato che implementa la logica applicativa
L’evoluzione dell’architettura
L’evoluzione dell’architettura

Nginx
È un HTTP server con funzionalità
di revers proxy. I test che stiamo
portando avanti ci hanno dato
ottimi risultati in termini di
performance e stabilità nonchè in
scalabilità.
L’evoluzione dell’architettura

Nginx                                PHP fast-cgi
È un HTTP server con funzionalità    Usare PHP in questa modalità
di revers proxy. I test che stiamo   non lo rende più veloce ma ci
portando avanti ci hanno dato        offre la possibilità di isolare
ottimi risultati in termini di       ilprocesso che non è più
performance e stabilità nonchè in    dipendente da Apache.
scalabilità.                         Abbinato a Ngnix ci consente di
                                     creare e staticizzare parti di
                                     contenuto dinamico.
L’evoluzione dell’architettura

Nginx                                PHP fast-cgi                      Redis
È un HTTP server con funzionalità    Usare PHP in questa modalità      Usiamo redis per memorizzare
di revers proxy. I test che stiamo   non lo rende più veloce ma ci     l’HTML creato dinamicamente da
portando avanti ci hanno dato        offre la possibilità di isolare   PHP in modo da velocizzare
ottimi risultati in termini di       ilprocesso che non è più          ulteriormente il front-end e non
performance e stabilità nonchè in    dipendente da Apache.             dover richiedere ogni volta il
scalabilità.                         Abbinato a Ngnix ci consente di   contenuto dinamico a PHP
                                     creare e staticizzare parti di
                                     contenuto dinamico.
L’evoluzione dell’architettura

Nginx                                  PHP fast-cgi                      Redis
È un HTTP server con funzionalità      Usare PHP in questa modalità      Usiamo redis per memorizzare
di revers proxy. I test che stiamo     non lo rende più veloce ma ci     l’HTML creato dinamicamente da
portando avanti ci hanno dato          offre la possibilità di isolare   PHP in modo da velocizzare
ottimi risultati in termini di         ilprocesso che non è più          ulteriormente il front-end e non
performance e stabilità nonchè in      dipendente da Apache.             dover richiedere ogni volta il
scalabilità.                           Abbinato a Ngnix ci consente di   contenuto dinamico a PHP
                                       creare e staticizzare parti di
                                       contenuto dinamico.




                                     ma come funziona?
L’evoluzione dell’architettura

Nginx                                  PHP fast-cgi                      Redis
È un HTTP server con funzionalità      Usare PHP in questa modalità      Usiamo redis per memorizzare
di revers proxy. I test che stiamo     non lo rende più veloce ma ci     l’HTML creato dinamicamente da
portando avanti ci hanno dato          offre la possibilità di isolare   PHP in modo da velocizzare
ottimi risultati in termini di         ilprocesso che non è più          ulteriormente il front-end e non
performance e stabilità nonchè in      dipendente da Apache.             dover richiedere ogni volta il
scalabilità.                           Abbinato a Ngnix ci consente di   contenuto dinamico a PHP
                                       creare e staticizzare parti di
                                       contenuto dinamico.




                                     ma come funziona?
                                               Nginx
L’evoluzione dell’architettura

Nginx                                  PHP fast-cgi                                        Redis
È un HTTP server con funzionalità      Usare PHP in questa modalità                         Usiamo redis per memorizzare
di revers proxy. I test che stiamo     non lo rende più veloce ma ci                        l’HTML creato dinamicamente da
portando avanti ci hanno dato          offre la possibilità di isolare                      PHP in modo da velocizzare
ottimi risultati in termini di         ilprocesso che non è più                             ulteriormente il front-end e non
performance e stabilità nonchè in      dipendente da Apache.                                dover richiedere ogni volta il
scalabilità.                           Abbinato a Ngnix ci consente di                      contenuto dinamico a PHP
                                       creare e staticizzare parti di
                                       contenuto dinamico.




                                     ma come funziona?
                                                                         risponde a tutte le richieste HTTP al pari di Apache. Grazie alle
                                                                           sue caratteristiche di revers proxy è possibile scrivere HTML
                                               Nginx                          statico e usare degli includes dinamici verso script PHP
L’evoluzione dell’architettura

Nginx                                            PHP fast-cgi                                         Redis
È un HTTP server con funzionalità                Usare PHP in questa modalità                          Usiamo redis per memorizzare
di revers proxy. I test che stiamo               non lo rende più veloce ma ci                         l’HTML creato dinamicamente da
portando avanti ci hanno dato                    offre la possibilità di isolare                       PHP in modo da velocizzare
ottimi risultati in termini di                   ilprocesso che non è più                              ulteriormente il front-end e non
performance e stabilità nonchè in                dipendente da Apache.                                 dover richiedere ogni volta il
scalabilità.                                     Abbinato a Ngnix ci consente di                       contenuto dinamico a PHP
                                                 creare e staticizzare parti di
                                                 contenuto dinamico.




                                         ma come funziona?
                                                                                    risponde a tutte le richieste HTTP al pari di Apache. Grazie alle
                                                                                      sue caratteristiche di revers proxy è possibile scrivere HTML
                                                         Nginx                           statico e usare degli includes dinamici verso script PHP




                                     <!--#include virtual="/includes/title.php?$QUERY_STRING" -->
L’evoluzione dell’architettura

Nginx                                             PHP fast-cgi                                         Redis
È un HTTP server con funzionalità                 Usare PHP in questa modalità                          Usiamo redis per memorizzare
di revers proxy. I test che stiamo                non lo rende più veloce ma ci                         l’HTML creato dinamicamente da
portando avanti ci hanno dato                     offre la possibilità di isolare                       PHP in modo da velocizzare
ottimi risultati in termini di                    ilprocesso che non è più                              ulteriormente il front-end e non
performance e stabilità nonchè in                 dipendente da Apache.                                 dover richiedere ogni volta il
scalabilità.                                      Abbinato a Ngnix ci consente di                       contenuto dinamico a PHP
                                                  creare e staticizzare parti di
                                                  contenuto dinamico.




                                          ma come funziona?
                                                                                     risponde a tutte le richieste HTTP al pari di Apache. Grazie alle
                                                                                       sue caratteristiche di revers proxy è possibile scrivere HTML
                                                          Nginx                           statico e usare degli includes dinamici verso script PHP




    Diciamo a Ngnix di andare a
    recuperare il contenuto dalla
  pagina title.php passando anche i   <!--#include virtual="/includes/title.php?$QUERY_STRING" -->
   parametri che ci servono con ?
         $QUERY_STRING

  A questo punto PHP in modalità
     fast-cgi esegue lo script e
  contestualmente crea la sezione
  HTML momorizzandola su Redis
L’evoluzione dell’architettura

Nginx                                             PHP fast-cgi                                         Redis
È un HTTP server con funzionalità                 Usare PHP in questa modalità                          Usiamo redis per memorizzare
di revers proxy. I test che stiamo                non lo rende più veloce ma ci                         l’HTML creato dinamicamente da
portando avanti ci hanno dato                     offre la possibilità di isolare                       PHP in modo da velocizzare
ottimi risultati in termini di                    ilprocesso che non è più                              ulteriormente il front-end e non
performance e stabilità nonchè in                 dipendente da Apache.                                 dover richiedere ogni volta il
scalabilità.                                      Abbinato a Ngnix ci consente di                       contenuto dinamico a PHP
                                                  creare e staticizzare parti di
                                                  contenuto dinamico.




                                          ma come funziona?
                                                                                     risponde a tutte le richieste HTTP al pari di Apache. Grazie alle
                                                                                       sue caratteristiche di revers proxy è possibile scrivere HTML
                                                          Nginx                           statico e usare degli includes dinamici verso script PHP




    Diciamo a Ngnix di andare a
    recuperare il contenuto dalla
  pagina title.php passando anche i   <!--#include virtual="/includes/title.php?$QUERY_STRING" -->
   parametri che ci servono con ?
         $QUERY_STRING                                                                                         La seconda volta che il contenuto viene
                                                                                                              richiesto Nginx non lo chiede a PHP ma
  A questo punto PHP in modalità                                                                           direttamente a Redis che lo eroga fino alla sua
     fast-cgi esegue lo script e                                                                           scadenza. Terminata la cache il giro ricomincia.
  contestualmente crea la sezione
  HTML momorizzandola su Redis
le metriche



                    03/2007   03/2008   03/2009     03/2010     03/2011     03/2012


Utenti registrati    1.357     5.104     11.689      20.000      41.600      68.500


       Visitatori   54.461    277.124   603.019     850.000     1.400.000   2.200.000


    Pagine Viste    140.000   630.000   1.200.000   1.700.000   3.000.000   4.500.000


     Commenti        1.459     8.657     21.105      40.500      76.500     135.000
Grazie
Grazie




Domande?
Domande?
Stage?
Se sei interessato ad un periodo di stage con noi scrivi a redazione@2spaghi.it




                Diventa Fan
          http://www.facebook.com/2Spaghi

Mais conteúdo relacionado

Semelhante a Presentazione 2 Spaghi

Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Massimo Caliman
 
Tutto il Cloud di Seeweb
Tutto il Cloud di SeewebTutto il Cloud di Seeweb
Tutto il Cloud di Seewebseeweb
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione webQabiria
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeomarcocasario
 
Adobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiare
Adobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiareAdobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiare
Adobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiareManuela Moroncini
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Codemotion
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterMatteo Baccan
 
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Romualdo Gobbo
 
Da Zero all'open per PA e PMI
Da Zero all'open per PA e PMIDa Zero all'open per PA e PMI
Da Zero all'open per PA e PMINaLUG
 
Open source un'opportunità di business
Open source un'opportunità di businessOpen source un'opportunità di business
Open source un'opportunità di businessRoberto Falla
 
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Andrea Marchetti
 
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Andrea Marchetti
 
Software Libero e LibreOffice
Software Libero e LibreOfficeSoftware Libero e LibreOffice
Software Libero e LibreOfficeLibreItalia
 
La convergenza delle tecnologie
La convergenza delle tecnologieLa convergenza delle tecnologie
La convergenza delle tecnologieTOP-IX Consortium
 
IBM Softwareland 2008 - Rational
IBM Softwareland 2008 - RationalIBM Softwareland 2008 - Rational
IBM Softwareland 2008 - Rationalfedericobotti
 
iDialoghi: L'alba dell'IPv6: opportunita' e problemi
iDialoghi: L'alba dell'IPv6: opportunita' e problemiiDialoghi: L'alba dell'IPv6: opportunita' e problemi
iDialoghi: L'alba dell'IPv6: opportunita' e problemiiDIALOGHI
 

Semelhante a Presentazione 2 Spaghi (20)

Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
 
Tutto il Cloud di Seeweb
Tutto il Cloud di SeewebTutto il Cloud di Seeweb
Tutto il Cloud di Seeweb
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeo
 
Adobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiare
Adobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiareAdobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiare
Adobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiare
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
 
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20
 
Da Zero all'open per PA e PMI
Da Zero all'open per PA e PMIDa Zero all'open per PA e PMI
Da Zero all'open per PA e PMI
 
Da 0 all'open per PA e PMI
Da 0 all'open per PA e PMIDa 0 all'open per PA e PMI
Da 0 all'open per PA e PMI
 
Open source un'opportunità di business
Open source un'opportunità di businessOpen source un'opportunità di business
Open source un'opportunità di business
 
Html5
Html5Html5
Html5
 
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
 
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
 
Software Libero e LibreOffice
Software Libero e LibreOfficeSoftware Libero e LibreOffice
Software Libero e LibreOffice
 
La convergenza delle tecnologie
La convergenza delle tecnologieLa convergenza delle tecnologie
La convergenza delle tecnologie
 
JAX-WS e JAX-RS
JAX-WS e JAX-RSJAX-WS e JAX-RS
JAX-WS e JAX-RS
 
IBM Softwareland 2008 - Rational
IBM Softwareland 2008 - RationalIBM Softwareland 2008 - Rational
IBM Softwareland 2008 - Rational
 
iDialoghi: L'alba dell'IPv6: opportunita' e problemi
iDialoghi: L'alba dell'IPv6: opportunita' e problemiiDialoghi: L'alba dell'IPv6: opportunita' e problemi
iDialoghi: L'alba dell'IPv6: opportunita' e problemi
 
Erlug
ErlugErlug
Erlug
 

Presentazione 2 Spaghi

  • 1. Trova e Condividi i tuoi ristoranti preferiti
  • 2. come nasce? L’idea di 2Spaghi nasce dall’ispirazione di popolari servizi Web2.0 USA un posto dove salvare totalmente guidato dai contenuti i propri ristoranti democratico ed user- generati dagli utenti preferiti centrico Obiettivo? scoprire nuovi posti dove mangiare
  • 3. la vision 2Spaghi nasce con l'obiettivo di creare un luogo che diventi leader per: • Trovare il ristorante giusto per la cena che si sta organizzando (mappe, reviews, domande alla community). • Permettere ai ristoratori di entrare in contatto e discutere con i propri clienti e potenziali.
  • 4. il lancio: luglio 2006 Le prime funzionalita: Google Maps Mashup, ristoranti ordinati per più salvato, SpagoLista, commenti degli utenti • Passaparola come modello di Marketing • Partecipazione ad eventi organizzati dalla blogosfera italiana (barcamp)‫‏‬ • Feedback subito positivi
  • 5. i primi due anni: business model Durante 2007 prime sperimentazioni sul modello di business: Advertising: Google Adsense e da Settembre ’07 concessionaria pubblicitaria specializzata in food (Vinoclic)‫‏‬ Newsletter: sponsorizzate: vendute dalla concessionaria Progetti speciali: lancio del film Nero Bifamiliare con i ristoranti preferiti dei protagonisti
  • 6. il mercato di riferimento
  • 7. un caso di successo: Booking online A Dicembre del 2009 abbiamo lanciato il primo servizio di prenotazione online su tutti i ristoranti (oltre 50.000) in Italia come servizio dedicato agli utenti e completamente free. Gli utenti lo hanno giudicato: 1. Comodo 2. Veloce 3. Gratuito +32.000 prenotazioni entrate +143.000 coperti prenotati
  • 8. la SpagoGuida 2011 13 Novembre 2010 è uscita in libreria la SpagoGuida, la prima guida ai ristoranti interamente creata grazie alle recensioni degli utenti
  • 9. 2Spaghi Mobile APPS 165.000 app scaricate 65.000 app scaricate
  • 10. 2Spaghi Mobile APPS iPhone 165.000 app scaricate 65.000 app scaricate
  • 11. 2Spaghi Mobile APPS iPhone 165.000 app scaricate Android 65.000 app scaricate
  • 12. 2Spaghi Mobile APPS iPhone 165.000 app scaricate Android 65.000 app scaricate
  • 13. 2Spaghi Mobile APPS iPhone 165.000 app scaricate Android 65.000 app scaricate
  • 14. 2Spaghi Mobile APPS iPhone 165.000 app scaricate Android 65.000 app scaricate
  • 15. 2Spaghi Mobile APPS iPhone 165.000 app scaricate Android 65.000 app scaricate
  • 16. 2Spaghi Mobile APPS 230.000 app scaricate iPhone 165.000 app scaricate Android 65.000 app scaricate
  • 17. Deal(nelle(pagine(dei(ristoran=.( riguardano(il(ristorante(selezionato,(( ristoran=(vicini(o(simili.(( 2Spaghi(u=lizza(una(piaEaforma( SPAGOBOX( di(backoffice(proprietaria(aEraverso( acquistabile(on5line(e(nella(GDO( la(quale(possiamo( Cena(scontata(in(un(ristorante( Visualizzare(i(deal(presen=(sul(( aderente(al(circuito.( gruppo(d’acquisto( EffeEuate(tuEe(le(associazioni( Collaborazione(commerciale(tra( 2Spaghi(e(gruppi(d’acquisto((
  • 18.
  • 20. Piattaforma 2Spaghi ha scelto LAMP come piattaforma di erogazione dei suoi servizi web. La scelta è stata strategica perchè offre ampia versatilità, grande scalabilità e performance elevate.
  • 23. Piattaforma Linux e ubuntu server La scelta di Ubuntu Server è stata la migliore scelta per noi. Pur non essendo la migliore distribuzione(redhat, fedora, centOS, etc), accorpa caratteristiche che, per chi come noi non ha grandi competenze di tipo sistemistico, sono una manna dal cielo, ad esempio l’aggiornamento e l’installazione tramite apt-get dei pacchetti precompilati. C’è poi un fattore più opportunistico, il costo pari a 0 (ZERO) per cui non è necessario dotarsi di costose licenze software o di assistenza sistemistica dedicata. Inoltre il tutto può girare su Harware obsoleto avendo una consumo di risorse eseguo. Apache MySQL PHP
  • 25. Platform Apache WebServer robusto e veloce è l’ambiente ideale per erogare pagine web e siti con molte visite sviluppate in PHP. È possibile configurare ogni singolo parametro di erogazione per trovare la migliore configurazione possibile (tuning). Questa possibilità naturalmente aumenta il rischio di errori. Tra le infinite possibilità e moduli configurabili il più interessante è il mod_rewrite, sistema ottimale per creare URL parlanti (SEO oriented). Che di questi tempi non si sa mai ;-) MySQL PHP Linux
  • 27. Piattaforma MySQL Rappresenta lo standard nel mondo dei DataBase relazionali OpenSource. Avaro di risorse (CPU) va configurato con attenzione (tuning) per evitare crolli improvvisi e lock-table indesiderati. Le nuove versioni, a differenza delle precedenti, consentono una maggiore scalabilità (cluster, master/slave). È sempre meglio avere un DB server dedicato! PHP Linux Apache
  • 29. Piattaforma PHP Il linguaggi client-server più usato sul web e dal mondo Open Source nelle sue versioni più recenti (>=5.0) ha raggiunto una maturità ed affidabilità notevoli. L’introduzione di OO e parser XML evoluto, ma anche migliaia di function già pronte che velocizzano il lavoro dello sviluppatore accorciando i tempi di produzione rappresentano i suoi punti di forza. Stabilità e sicurezza lo rendono poi l’alleato ideale anche per architetture più complesse. Linux Apache MySQL
  • 30.
  • 32. Architettura 2006 2007 2008 2009 2010 2011
  • 33. Architettura Hosting condiviso+MySQL7MB su Aruba da 35€ l’anno 2006 2007 2008 2009 2010 2011
  • 34. Architettura Server Virtuale presso TOPIX Torino (front-end + DB Server) 4GB di RAM 1GB di HHD Hosting condiviso+MySQL7MB su Aruba banda internet illimitata da 35€ l’anno 2006 2007 2008 2009 2010 2011
  • 35. Architettura Primo Server proprietario (front-end + DB Server) Server Virtuale presso TOPIX Torino Athlon II X4 635 (4 x 2.9Mhz) (front-end + DB Server) 8GB di RAM 3GB di HHD 4GB di RAM 1GB di HHD Banda internet illimitata Hosting condiviso+MySQL7MB su Aruba banda internet illimitata da 35€ l’anno 2006 2007 2008 2009 2010 2011
  • 36. Architettura Secondo Server proprietario (DB server) Primo Server proprietario 8GB di RAM 3GB di HHD (front-end + DB Server) Phenom II X4 945 (4 x 3,0 Ghz) Server Virtuale presso TOPIX Torino Athlon II X4 635 (4 x 2.9Mhz) Banda internet illimitata (front-end + DB Server) 8GB di RAM 3GB di HHD 4GB di RAM 1GB di HHD Banda internet illimitata Hosting condiviso+MySQL7MB su Aruba banda internet illimitata da 35€ l’anno 2006 2007 2008 2009 2010 2011
  • 37. Architettura Secondo Server proprietario (DB server) Primo Server proprietario 8GB di RAM 3GB di HHD (front-end + DB Server) Phenom II X4 945 (4 x 3,0 Ghz) Server Virtuale presso TOPIX Torino Athlon II X4 635 (4 x 2.9Mhz) Banda internet illimitata (front-end + DB Server) 8GB di RAM 3GB di HHD 4GB di RAM 1GB di HHD Banda internet illimitata Hosting condiviso+MySQL7MB su Aruba banda internet illimitata da 35€ l’anno 2006 2007 2008 2009 2010 2011 89.671 Visite
  • 38. Architettura Secondo Server proprietario (DB server) Primo Server proprietario 8GB di RAM 3GB di HHD (front-end + DB Server) Phenom II X4 945 (4 x 3,0 Ghz) Server Virtuale presso TOPIX Torino Athlon II X4 635 (4 x 2.9Mhz) Banda internet illimitata (front-end + DB Server) 8GB di RAM 3GB di HHD 4GB di RAM 1GB di HHD Banda internet illimitata Hosting condiviso+MySQL7MB su Aruba banda internet illimitata da 35€ l’anno 2006 2007 2008 2009 2010 2011 89.671 Visite 1.000.627 Visite
  • 39. Architettura Secondo Server proprietario (DB server) Primo Server proprietario 8GB di RAM 3GB di HHD (front-end + DB Server) Phenom II X4 945 (4 x 3,0 Ghz) Server Virtuale presso TOPIX Torino Athlon II X4 635 (4 x 2.9Mhz) Banda internet illimitata (front-end + DB Server) 8GB di RAM 3GB di HHD 4GB di RAM 1GB di HHD Banda internet illimitata Hosting condiviso+MySQL7MB su Aruba banda internet illimitata da 35€ l’anno 2006 2007 2008 2009 2010 2011 89.671 Visite 1.000.627 Visite 4.323.000 Visite
  • 40. Architettura Secondo Server proprietario (DB server) Primo Server proprietario 8GB di RAM 3GB di HHD (front-end + DB Server) Phenom II X4 945 (4 x 3,0 Ghz) Server Virtuale presso TOPIX Torino Athlon II X4 635 (4 x 2.9Mhz) Banda internet illimitata (front-end + DB Server) 8GB di RAM 3GB di HHD 4GB di RAM 1GB di HHD Banda internet illimitata Hosting condiviso+MySQL7MB su Aruba banda internet illimitata da 35€ l’anno 2006 2007 2008 2009 2010 2011 89.671 Visite 1.000.627 Visite 4.323.000 Visite 7.145.000 Visite
  • 41. Architettura Secondo Server proprietario (DB server) Primo Server proprietario 8GB di RAM 3GB di HHD (front-end + DB Server) Phenom II X4 945 (4 x 3,0 Ghz) Server Virtuale presso TOPIX Torino Athlon II X4 635 (4 x 2.9Mhz) Banda internet illimitata (front-end + DB Server) 8GB di RAM 3GB di HHD 4GB di RAM 1GB di HHD Banda internet illimitata Hosting condiviso+MySQL7MB su Aruba banda internet illimitata da 35€ l’anno 2006 2007 2008 2009 2010 2011 89.671 Visite 1.000.627 Visite 4.323.000 Visite 7.145.000 Visite 9.655.308 Visite
  • 42. Architettura Secondo Server proprietario (DB server) Primo Server proprietario 8GB di RAM 3GB di HHD (front-end + DB Server) Phenom II X4 945 (4 x 3,0 Ghz) Server Virtuale presso TOPIX Torino Athlon II X4 635 (4 x 2.9Mhz) Banda internet illimitata (front-end + DB Server) 8GB di RAM 3GB di HHD 4GB di RAM 1GB di HHD Banda internet illimitata Hosting condiviso+MySQL7MB su Aruba banda internet illimitata da 35€ l’anno 2006 2007 2008 2009 2010 2011 89.671 Visite 1.000.627 Visite 4.323.000 Visite 7.145.000 Visite 9.655.308 Visite 14..500.000 Visite
  • 43.
  • 44. Architettura 2012
  • 45. Architettura 2012 A giugno 2011 per garantire ancora più affidabilità e velocità di calcolo abbiamo scelto di cambiare ancora server e provider. Il nuovo provider ci ha permesso di creare una nostra rete privata, connessa a internet, tramite l’utilizzo di uno switch dedicato al quale sono connessi solo i nostri server che sono rimasti 2 ma che sono cresciuti in potenza. Adesso infatti disponiamo di 2 server dotati di 24GB di Ram e di processori Intel Xeon Quad-Core (x12) e dischi SAS da 300GB. Questo ci ha consentito di superare i 100.000 utenti giornalieri di San Valentino. Da sempre il nostro tallone di achille sia per numero di visite che numero di accessi contemporanei.
  • 46. Architettura MemC Redis
  • 47. Architettura MemC audience Redis
  • 48. Architettura Web MemC audience Redis
  • 49. Architettura Web MemC audience Redis DB Server
  • 50. Architettura Web MemC audience Redis DB Server BackUp
  • 51. Architettura Web MemC audience Redis DB Server Mobile BackUp
  • 55. L’evoluzione dell’architettura primo scenario (classico 2 livelli) front-end front-end front-end front-end 1 2 3 ... RDBMS *
  • 56. L’evoluzione dell’architettura primo scenario (classico 2 livelli) front-end front-end front-end front-end 1 2 3 ... API RDBMS *
  • 57. L’evoluzione dell’architettura primo scenario (classico 2 livelli) front-end front-end front-end front-end 1 2 3 ... memcache (in memory) + Redis (html) API RDBMS *
  • 58. L’evoluzione dell’architettura primo scenario (classico 2 livelli) secondo scenario (key-value 3 livelli) front-end front-end front-end front-end 1 2 3 ... memcache (in memory) + Redis (html) API RDBMS *
  • 59. L’evoluzione dell’architettura primo scenario (classico 2 livelli) secondo scenario (key-value 3 livelli) front-end front-end front-end front-end 1 2 3 ... memcache (in memory) + Redis (html) API RDBMS RDBMS *
  • 60. L’evoluzione dell’architettura primo scenario (classico 2 livelli) secondo scenario (key-value 3 livelli) front-end front-end front-end front-end front-end front-end front-end front-end 1 2 3 ... 1 2 3 ... memcache (in memory) + Redis (html) API RDBMS RDBMS *
  • 61. L’evoluzione dell’architettura primo scenario (classico 2 livelli) secondo scenario (key-value 3 livelli) front-end front-end front-end front-end front-end front-end front-end front-end 1 2 3 ... 1 2 3 ... memcache (in memory) + Redis (html) API API RDBMS RDBMS *
  • 62. L’evoluzione dell’architettura primo scenario (classico 2 livelli) secondo scenario (key-value 3 livelli) front-end front-end front-end front-end front-end front-end front-end front-end 1 2 3 ... 1 2 3 ... memcache (in memory) + Redis (html) memcache (in memory) + Redis (html) API API RDBMS RDBMS *
  • 63. L’evoluzione dell’architettura primo scenario (classico 2 livelli) secondo scenario (key-value 3 livelli) front-end front-end front-end front-end front-end front-end front-end front-end 1 2 3 ... 1 2 3 ... memcache (in memory) + Redis (html) memcache (in memory) + Redis (html) API API RDBMS key-valye- key-valye- key-valye- RDBMS DB DB DB in memory *
  • 64. L’evoluzione dell’architettura primo scenario (classico 2 livelli) secondo scenario (key-value 3 livelli) front-end front-end front-end front-end front-end front-end front-end front-end 1 2 3 ... 1 2 3 ... memcache (in memory) + Redis (html) memcache (in memory) + Redis (html) API API Business Logic* RDBMS key-valye- key-valye- key-valye- RDBMS DB DB DB in memory * Business Logic è lo strato che implementa la logica applicativa
  • 66. L’evoluzione dell’architettura Nginx È un HTTP server con funzionalità di revers proxy. I test che stiamo portando avanti ci hanno dato ottimi risultati in termini di performance e stabilità nonchè in scalabilità.
  • 67. L’evoluzione dell’architettura Nginx PHP fast-cgi È un HTTP server con funzionalità Usare PHP in questa modalità di revers proxy. I test che stiamo non lo rende più veloce ma ci portando avanti ci hanno dato offre la possibilità di isolare ottimi risultati in termini di ilprocesso che non è più performance e stabilità nonchè in dipendente da Apache. scalabilità. Abbinato a Ngnix ci consente di creare e staticizzare parti di contenuto dinamico.
  • 68. L’evoluzione dell’architettura Nginx PHP fast-cgi Redis È un HTTP server con funzionalità Usare PHP in questa modalità Usiamo redis per memorizzare di revers proxy. I test che stiamo non lo rende più veloce ma ci l’HTML creato dinamicamente da portando avanti ci hanno dato offre la possibilità di isolare PHP in modo da velocizzare ottimi risultati in termini di ilprocesso che non è più ulteriormente il front-end e non performance e stabilità nonchè in dipendente da Apache. dover richiedere ogni volta il scalabilità. Abbinato a Ngnix ci consente di contenuto dinamico a PHP creare e staticizzare parti di contenuto dinamico.
  • 69. L’evoluzione dell’architettura Nginx PHP fast-cgi Redis È un HTTP server con funzionalità Usare PHP in questa modalità Usiamo redis per memorizzare di revers proxy. I test che stiamo non lo rende più veloce ma ci l’HTML creato dinamicamente da portando avanti ci hanno dato offre la possibilità di isolare PHP in modo da velocizzare ottimi risultati in termini di ilprocesso che non è più ulteriormente il front-end e non performance e stabilità nonchè in dipendente da Apache. dover richiedere ogni volta il scalabilità. Abbinato a Ngnix ci consente di contenuto dinamico a PHP creare e staticizzare parti di contenuto dinamico. ma come funziona?
  • 70. L’evoluzione dell’architettura Nginx PHP fast-cgi Redis È un HTTP server con funzionalità Usare PHP in questa modalità Usiamo redis per memorizzare di revers proxy. I test che stiamo non lo rende più veloce ma ci l’HTML creato dinamicamente da portando avanti ci hanno dato offre la possibilità di isolare PHP in modo da velocizzare ottimi risultati in termini di ilprocesso che non è più ulteriormente il front-end e non performance e stabilità nonchè in dipendente da Apache. dover richiedere ogni volta il scalabilità. Abbinato a Ngnix ci consente di contenuto dinamico a PHP creare e staticizzare parti di contenuto dinamico. ma come funziona? Nginx
  • 71. L’evoluzione dell’architettura Nginx PHP fast-cgi Redis È un HTTP server con funzionalità Usare PHP in questa modalità Usiamo redis per memorizzare di revers proxy. I test che stiamo non lo rende più veloce ma ci l’HTML creato dinamicamente da portando avanti ci hanno dato offre la possibilità di isolare PHP in modo da velocizzare ottimi risultati in termini di ilprocesso che non è più ulteriormente il front-end e non performance e stabilità nonchè in dipendente da Apache. dover richiedere ogni volta il scalabilità. Abbinato a Ngnix ci consente di contenuto dinamico a PHP creare e staticizzare parti di contenuto dinamico. ma come funziona? risponde a tutte le richieste HTTP al pari di Apache. Grazie alle sue caratteristiche di revers proxy è possibile scrivere HTML Nginx statico e usare degli includes dinamici verso script PHP
  • 72. L’evoluzione dell’architettura Nginx PHP fast-cgi Redis È un HTTP server con funzionalità Usare PHP in questa modalità Usiamo redis per memorizzare di revers proxy. I test che stiamo non lo rende più veloce ma ci l’HTML creato dinamicamente da portando avanti ci hanno dato offre la possibilità di isolare PHP in modo da velocizzare ottimi risultati in termini di ilprocesso che non è più ulteriormente il front-end e non performance e stabilità nonchè in dipendente da Apache. dover richiedere ogni volta il scalabilità. Abbinato a Ngnix ci consente di contenuto dinamico a PHP creare e staticizzare parti di contenuto dinamico. ma come funziona? risponde a tutte le richieste HTTP al pari di Apache. Grazie alle sue caratteristiche di revers proxy è possibile scrivere HTML Nginx statico e usare degli includes dinamici verso script PHP <!--#include virtual="/includes/title.php?$QUERY_STRING" -->
  • 73. L’evoluzione dell’architettura Nginx PHP fast-cgi Redis È un HTTP server con funzionalità Usare PHP in questa modalità Usiamo redis per memorizzare di revers proxy. I test che stiamo non lo rende più veloce ma ci l’HTML creato dinamicamente da portando avanti ci hanno dato offre la possibilità di isolare PHP in modo da velocizzare ottimi risultati in termini di ilprocesso che non è più ulteriormente il front-end e non performance e stabilità nonchè in dipendente da Apache. dover richiedere ogni volta il scalabilità. Abbinato a Ngnix ci consente di contenuto dinamico a PHP creare e staticizzare parti di contenuto dinamico. ma come funziona? risponde a tutte le richieste HTTP al pari di Apache. Grazie alle sue caratteristiche di revers proxy è possibile scrivere HTML Nginx statico e usare degli includes dinamici verso script PHP Diciamo a Ngnix di andare a recuperare il contenuto dalla pagina title.php passando anche i <!--#include virtual="/includes/title.php?$QUERY_STRING" --> parametri che ci servono con ? $QUERY_STRING A questo punto PHP in modalità fast-cgi esegue lo script e contestualmente crea la sezione HTML momorizzandola su Redis
  • 74. L’evoluzione dell’architettura Nginx PHP fast-cgi Redis È un HTTP server con funzionalità Usare PHP in questa modalità Usiamo redis per memorizzare di revers proxy. I test che stiamo non lo rende più veloce ma ci l’HTML creato dinamicamente da portando avanti ci hanno dato offre la possibilità di isolare PHP in modo da velocizzare ottimi risultati in termini di ilprocesso che non è più ulteriormente il front-end e non performance e stabilità nonchè in dipendente da Apache. dover richiedere ogni volta il scalabilità. Abbinato a Ngnix ci consente di contenuto dinamico a PHP creare e staticizzare parti di contenuto dinamico. ma come funziona? risponde a tutte le richieste HTTP al pari di Apache. Grazie alle sue caratteristiche di revers proxy è possibile scrivere HTML Nginx statico e usare degli includes dinamici verso script PHP Diciamo a Ngnix di andare a recuperare il contenuto dalla pagina title.php passando anche i <!--#include virtual="/includes/title.php?$QUERY_STRING" --> parametri che ci servono con ? $QUERY_STRING La seconda volta che il contenuto viene richiesto Nginx non lo chiede a PHP ma A questo punto PHP in modalità direttamente a Redis che lo eroga fino alla sua fast-cgi esegue lo script e scadenza. Terminata la cache il giro ricomincia. contestualmente crea la sezione HTML momorizzandola su Redis
  • 75. le metriche 03/2007 03/2008 03/2009 03/2010 03/2011 03/2012 Utenti registrati 1.357 5.104 11.689 20.000 41.600 68.500 Visitatori 54.461 277.124 603.019 850.000 1.400.000 2.200.000 Pagine Viste 140.000 630.000 1.200.000 1.700.000 3.000.000 4.500.000 Commenti 1.459 8.657 21.105 40.500 76.500 135.000
  • 79. Stage? Se sei interessato ad un periodo di stage con noi scrivi a redazione@2spaghi.it Diventa Fan http://www.facebook.com/2Spaghi