SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
Monter une infrastructure web
                         pour 1 Million de visites par jour




Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
1. Introduction au petit­déjeuner



                      Présentation d'Evolix
                      Présentation de Cybercartes
                      Problématique de Cybercartes




Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
Introduction au petit­déjeuner
                                                          #evoptitdej


Prochain Petit Déjeuner Libertis

   – 29 Avril 2010 : OpenBravo et SpagoBI / Chateau­Gombert
Présentation Evolix




Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
Présentation Evolix / Offre 2010
                                                                                #evoptitdej


 1/ Packs Evolix et Maintenance :
Packs  Evolix  (intégration  de  serveur  mail, 
de  fichiers,  firewall,  VPN,  IDS),  suivi, 
maintenance, support.

                                                     3/ Sur mesure:
                                                    Développement sur cahier des charges 
                                                    (PHP), personnalisation d'outils libres. 

2/  Audit,  conseil,  hébergement, 
migration :
étude  de  faisabilité,  audit  de  sécurité  et 
réseau, hébergement en datacenter mutualisé 
ou dédié.
                                                    4/ Formations
                                                    formations expert
                                                    (LAMP, Samba, ...)
Présentation Evolix / Références
                                   #evoptitdej
Présentation Cybercartes




Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
•   CYBERCARTES EN CHIFFRES
                  Créé en 1997, cybercartes.com propose  environ 
                  10.000 cartes virtuelles et une technologie 
                  propriétaire unique permettant l’animation de photos 
                  et l’enregistrement de voix pour créer de toutes 
                  pièces des cartes originales et personnalisées.
                  La société CyberCartes (créée en 2000) a 2 activités : 
                   
                          –  Editeur du site cybercartes.com
                          –  Opérateur de solutions

                           Visites : 6,5 millions (janvier 2010)
                           Visiteurs Uniques :  3,5 millions (janvier 2010) 
                           Pages vues :  40 millions (janvier 2010)
                           Newsletter hebdo :  5 millions d’abonnés
                           Base Emailing : 2,3 millions d’abonnés optin
                           Recrutement/co­reg : 1 500 000 (par an)
                           PAP/VU : 9 pages
                           Temps Moyen : 4:57mn
•          PARTICULARITES CYBERCARTES
                                                                  A. Effet viral
    A. Pics événementiels

                                         Pâques
                         Fête des 
                          Mères
                                         Les 
         Noël                           Voeux
                        Saint 
           Halloween
                       Valentin          Fête 
                                                      Journée 
                                         des 
                                     Grands Mères   de la Femme


                       Muguet                                     A. Top catégories
    Fête des Pères     1er Mai
                                        1er Avril
•       SOLUTIONS TECHNIQUES
    •   Avatar parlant / Présentateur virtuel
•       SOLUTIONS TECHNIQUES
    •   Avatar parlant / Présentateur virtuel
                             Diffusion Multi Canal
Problématique de Cybercartes




Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
Problématique de Cybercartes
                                                      #evoptitdej


Des soucis majeurs récurrents lors des pics de visiteurs

          o Problèmes NFS / Accès disque

          o Montée en charge violente des frontaux web

          o Problème firewall (limite nombre de connexions)

          o etc.
Problématique de Cybercartes
                                               #evoptitdej

 Les pics de charge sont quasiment doublés chaque année
Problématique de Cybercartes
                                                                  #evoptitdej




1  million  de  visites  par  jour  tous  les  jours,  c'est  « facile »  mais 
c'est très difficile de le faire une seule fois par an (préparation 
complexe, la garantie doit être maximale).
2. Solution Evolix pour Cybercartes


                   Interactions avec l'équipe de développement
                   Changements pour fin 2008
                   Changements pour fin 2009




Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
Interactions avec l'équipe de développement




Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
Intéraction avec l'équipe de développement
                                                   #evoptitdej



 Réflexions/choix avec les développeurs
●




 Présentation des changements sur l'infrastructure
●




 Notion de nœuds et séparation catalogue/commande/retrait
●




 Publication de recommandations / best pratices
●




 Planning fixé avec des points réguliers
●




 Environnement de dév, scripts de déploiement (dev/prod)
●




 Tests de montée en charge avec Tsung et... corrections en 
●



conséquence, notamment certaines pages ont été 
redeveloppées sans utiliser le framework utilisé (Zend) !!
#evoptitdej
Changements pour fin 2008




Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
Principes de base
                                                                   #evoptitdej

Nous sommes fixés les principes suivants :

­ N'importe quel équipement peut tomber (...ou presque), cela n'impacte pas la 
production. Une panne sur un seul équipement n'est jamais urgente.

­ Utiliser le maximum des ressources existantes en évitant le matériel 
inactif, c'est­à­dire essayer d'être en actif/actif partout.
Un équipement inactif, c'est cher. Très cher.

­ Avoir une indépendance vis­à­vis des hébergeurs/opérateurs : même 
en cas d'attaque nucléaire sur un datacenter, la page d'accueil, le 
catalogue et les nouvelles commandes restent en ligne.
On a déjà eu une attaque nucléaire...
Infrastructure Cybercartes
                             #evoptitdej
Focus sur le réseau « haute dispo »
                                                          #evoptitdej
­ Passage en Gigabit (le 1er janvier 2010, à 11h du matin, on avait un 
débit cumulé de 500 Mb/s dont plus de 150 Mb/s sur le datacenter 
principal)
­ Tolérance de panne (et de travaux)
­ Basculement complètement transparent : les sessions réseau sont 
conservées. Par exemple, une connexion SSH n'est pas coupée par une 
bascule du routeur/firewall ;­)
Focus sur la notion de nœuds
                                                     #evoptitdej
●
   Répartition du trafic non spécifique (90%) sur plusieurs nœuds
●
   Utilisation de serveurs « static » (Nginx + cache HTTP) 
indépendants des nœuds
●
   Enregistrements DNS avec un faible TTL (Time­To­
Live)...bascule manuelle en cas d'incident majeur
●
   Serveur DNS master « caché »
Focus sur le cache/load­balancing
                                                            #evoptitdej


●
    Squid est trèèès performant. Pour du contenu en cache, c'est 
    comparable à servir des pages en HTML statique.
●
    Tout ce qui est caché n'atteint pas les frontaux. C'est une grosse 
    économie. Le cache c'est bon, mangez­en !
●
    Pour aplatir un peu les pics de charge, on pré­cache les pages les 
    pages les plus visitées via un script quotidien. (merci Awstats)
Squid
        #evoptitdej
HAProxy
          #evoptitdej
Focus sur les filers
                                                              #evoptitdej
Le défi d'être en actif/actif en production a échoué. #FAIL

●
    HTTP (via Nginx) pour les accès en lecture
●
    NFS pour les accès en écriture (à minimiser)
●
    On s'appuie sur un SAN (hautes performances mais 
    Single Point of Failure potentiel)
●
    La bascule est critique (système de fichiers, STONITH)
Heartbeat
            #evoptitdej
Focus sur les serveurs SQL
                                                                           #evoptitdej
Le défi d'être en actif/actif en production a réussi. o/




Historique de l'infrastructure SQL

    o À l'origine, un seul serveur

          + Pas de haute disponibilité
          + Scalabilité limitée 

    o 2007, réplication master/slave avec IP failover

          + Haute disponibilité
          + Utilisation du second serveur pour des tâches annexes (sauvegardes, stats, etc)
Focus sur les serveurs SQL
                                                                   #evoptitdej
  * Aujourd'hui, réplication master/master avec load balancing
          o Permet d'absorber les pics de charge en sérialisant les requêtes

          o Haute disponibilité plus souple

          o Scalabilité évolutive avec la réplication circulaire

          o Mais... attention au développement



    * Contraintes de développement
          o Gestion du « lag »

          o Utilisation d'auto increment (y compris entre les différents nodes)

          o Attention à l'ordre des modifications...
Mais aussi...
                                                  #evoptitdej


 Memcache (cache applicatif) (Must­have)
●




 Sharedance (sessions PHP partagées) (Merci Skyrock)
●



●
  Passage du NAT en adressage public, utilisation d'un 
réseau privé interne (performances, souplesse)
●
  Utilisation de serveurs de marques différentes 
(DELL/IBM/HP) et système différents 
(Debian/FreeBSD/OpenBSD) : « ne pas mettre tous ses 
œufs dans le même panier... et utiliser le meilleur à 
chaque poste ! » (OM, 1er du championnat)
Changements pour fin 2009




Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
Vers le Cloud Computing
                                                  #evoptitdej
Pour le 2e nœud, on est passé d'un hébergement classique 
(baie chez OVH) à du Cloud Computing (Amazon EC2).




Définition :

Le National Institute of Standards and Technology (NIST) aux États­
Unis a officialisé la définition du Cloud Computing : « Le Cloud 
Computing est un modèle économique « pay per use » pour 
accéder et utiliser, à travers du réseau, à un pool de ressources 
informatiques configurables et partagées (i.e. réseaux, serveurs, 
stockage, applications, etc.) qui peuvent être rapidement achetées 
et utilisées avec un effort de gestion minimal et une interaction 
limitée avec le fournisseur de services ».
Amazon EC2
                                                                          #evoptitdej
Amazon est le principal opérateur d'IAAS (Infrastructure As A Service).
Il repose sur plusieurs datacenters aux États­Unis/Europe/Asie...

●
    Attention, « pay per use » ne veut pas dire qu'on paye à la demande toutes 
    les ressources. Par exemple, la taille des serveurs (CPU, RAM) doit être 
    choisie.
●
    Choix des espaces de stockage (EBS)
●
    Stockage des images (AMI) sur Amazon S3
●
    Attention, le prix est assez élevé (75 $/mois pour une Small instance et 
    150 $/mois pour une Medium)... si l'on a une consommation constante.
●
    Mauvaise surprise : la latence élevée entre serveurs sur une même zone
●
    Démo....
Conclusion sur le Cloud Computing
                                                                      #evoptitdej

●
    Le Cloud Computing, cela peut être génial ! Cela apporte souplesse, de 
    potentielles grosses économies, etc. etc. (et cela sauve des bébés ours)
    MAIS
●
    Du Cloud Computing n'est pas une infra clé en main pour gérer des 
    applications classiques. Cela diffère d'une infra classique (I/O, latence).
●
    Les applis doivent être adaptées selon ces contraintes spécifiques...
●
    Avec du Cloud Computing (ou même de la simple virtualisation), il faut bien 
    avoir en tête que centraliser hébergement+matériel rajoute aussi du danger 
    (SPOF!)
●
    En conclusion, nous préconisons donc une infra mixte (classique + Cloud) ou 
    une infra avec deux services de Cloud indépendants (GANDI + Amazon EC2)
3. Conclusion




Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
Conclusion
                                                        #evoptitdej


Le défi CyberCartes a été relevé par Evolix avec succès !



Pour fin 2010 :
✔
    Amélioration de la technique de fail­over pour les contenus 
    statiques (serveurs s'annonçant eux­même via DNS)
✔
    Gestion optimisée de la politique de stockage et nettoyage 
    complètement automatique des données
✔
    Utilisation davantage de Cloud Computing
That's all folks!
                                               #evoptitdej



    Fin de la présentation...

    Des questions ?



Grégory COLPART ­ Resp. technique ­ <reg@evolix.fr>
Sébastien DUBOIS ­ Resp. commercial ­ <sdubois@evolix.fr>

Nicolas DURUT ­ Resp. technique ­ <nico@cybercartes.com>

Más contenido relacionado

Similar a Petit dejeuner-evolix-150410

Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?ekino
 
Omeka ou comment réaliser une bibliothèque numérique à l'échelle d'un SCD
Omeka ou comment réaliser une bibliothèque numérique à l'échelle d'un SCDOmeka ou comment réaliser une bibliothèque numérique à l'échelle d'un SCD
Omeka ou comment réaliser une bibliothèque numérique à l'échelle d'un SCDJulien Sicot
 
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...Christophe Porteneuve
 
Adoption de agilité par les usages
Adoption de agilité par les usagesAdoption de agilité par les usages
Adoption de agilité par les usagesXavier Warzee
 
Concevoir des interfaces pour les seniors: enjeu essentiel pour les informati...
Concevoir des interfaces pour les seniors: enjeu essentiel pour les informati...Concevoir des interfaces pour les seniors: enjeu essentiel pour les informati...
Concevoir des interfaces pour les seniors: enjeu essentiel pour les informati...Isabelle Motte
 
L\'informatique documentaire à l\'heure du tout web
L\'informatique documentaire à l\'heure du tout webL\'informatique documentaire à l\'heure du tout web
L\'informatique documentaire à l\'heure du tout webNicolas Morin
 
Retour d'expérience : France Télévisions - Drupalcamp Paris 2013
Retour d'expérience : France Télévisions - Drupalcamp Paris 2013Retour d'expérience : France Télévisions - Drupalcamp Paris 2013
Retour d'expérience : France Télévisions - Drupalcamp Paris 2013Artusamak
 
HTML5 W3C Conference Euratechnologie
HTML5 W3C Conference EuratechnologieHTML5 W3C Conference Euratechnologie
HTML5 W3C Conference Euratechnologiewyggio
 
Mon Intro Au Web 20
Mon Intro Au Web 20Mon Intro Au Web 20
Mon Intro Au Web 20anne.wiener
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
soft-shake.ch - Adoption de l'Agilité par les usages
soft-shake.ch - Adoption de l'Agilité par les usagessoft-shake.ch - Adoption de l'Agilité par les usages
soft-shake.ch - Adoption de l'Agilité par les usagessoft-shake.ch
 
m102-resume-theorique-6156fa4cb3b91 (1).pdf
m102-resume-theorique-6156fa4cb3b91 (1).pdfm102-resume-theorique-6156fa4cb3b91 (1).pdf
m102-resume-theorique-6156fa4cb3b91 (1).pdfIkramKhaydouche
 
Azure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delà
Azure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delàAzure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delà
Azure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delàMicrosoft
 
Technologies innovantes autour de manifestations culturelles - ExplorCamp (2008)
Technologies innovantes autour de manifestations culturelles - ExplorCamp (2008)Technologies innovantes autour de manifestations culturelles - ExplorCamp (2008)
Technologies innovantes autour de manifestations culturelles - ExplorCamp (2008)Ardesi Midi-Pyrénées
 
Responsive News : l'actualité mobile à la BBC
Responsive News : l'actualité mobile à la BBCResponsive News : l'actualité mobile à la BBC
Responsive News : l'actualité mobile à la BBCKaelig Deloumeau-Prigent
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrOxalide
 
Dispositifs connectés médicaux
Dispositifs connectés médicauxDispositifs connectés médicaux
Dispositifs connectés médicauxAntoine SEILLES
 
Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...
Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...
Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...Microsoft
 
ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...
ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...
ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...Laurent P. PRO
 

Similar a Petit dejeuner-evolix-150410 (20)

Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
 
Omeka ou comment réaliser une bibliothèque numérique à l'échelle d'un SCD
Omeka ou comment réaliser une bibliothèque numérique à l'échelle d'un SCDOmeka ou comment réaliser une bibliothèque numérique à l'échelle d'un SCD
Omeka ou comment réaliser une bibliothèque numérique à l'échelle d'un SCD
 
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
 
Adoption de agilité par les usages
Adoption de agilité par les usagesAdoption de agilité par les usages
Adoption de agilité par les usages
 
Concevoir des interfaces pour les seniors: enjeu essentiel pour les informati...
Concevoir des interfaces pour les seniors: enjeu essentiel pour les informati...Concevoir des interfaces pour les seniors: enjeu essentiel pour les informati...
Concevoir des interfaces pour les seniors: enjeu essentiel pour les informati...
 
L\'informatique documentaire à l\'heure du tout web
L\'informatique documentaire à l\'heure du tout webL\'informatique documentaire à l\'heure du tout web
L\'informatique documentaire à l\'heure du tout web
 
Retour d'expérience : France Télévisions - Drupalcamp Paris 2013
Retour d'expérience : France Télévisions - Drupalcamp Paris 2013Retour d'expérience : France Télévisions - Drupalcamp Paris 2013
Retour d'expérience : France Télévisions - Drupalcamp Paris 2013
 
HTML5 W3C Conference Euratechnologie
HTML5 W3C Conference EuratechnologieHTML5 W3C Conference Euratechnologie
HTML5 W3C Conference Euratechnologie
 
Mon Intro Au Web 20
Mon Intro Au Web 20Mon Intro Au Web 20
Mon Intro Au Web 20
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
soft-shake.ch - Adoption de l'Agilité par les usages
soft-shake.ch - Adoption de l'Agilité par les usagessoft-shake.ch - Adoption de l'Agilité par les usages
soft-shake.ch - Adoption de l'Agilité par les usages
 
m102-resume-theorique-6156fa4cb3b91 (1).pdf
m102-resume-theorique-6156fa4cb3b91 (1).pdfm102-resume-theorique-6156fa4cb3b91 (1).pdf
m102-resume-theorique-6156fa4cb3b91 (1).pdf
 
Azure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delà
Azure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delàAzure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delà
Azure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delà
 
Technologies innovantes autour de manifestations culturelles - ExplorCamp (2008)
Technologies innovantes autour de manifestations culturelles - ExplorCamp (2008)Technologies innovantes autour de manifestations culturelles - ExplorCamp (2008)
Technologies innovantes autour de manifestations culturelles - ExplorCamp (2008)
 
jSeduite @UNICE Foundation
jSeduite @UNICE FoundationjSeduite @UNICE Foundation
jSeduite @UNICE Foundation
 
Responsive News : l'actualité mobile à la BBC
Responsive News : l'actualité mobile à la BBCResponsive News : l'actualité mobile à la BBC
Responsive News : l'actualité mobile à la BBC
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
 
Dispositifs connectés médicaux
Dispositifs connectés médicauxDispositifs connectés médicaux
Dispositifs connectés médicaux
 
Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...
Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...
Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...
 
ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...
ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...
ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...
 

Petit dejeuner-evolix-150410

  • 1. Monter une infrastructure web pour 1 Million de visites par jour Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
  • 2. 1. Introduction au petit­déjeuner Présentation d'Evolix Présentation de Cybercartes Problématique de Cybercartes Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
  • 3. Introduction au petit­déjeuner #evoptitdej Prochain Petit Déjeuner Libertis – 29 Avril 2010 : OpenBravo et SpagoBI / Chateau­Gombert
  • 5. Présentation Evolix / Offre 2010 #evoptitdej  1/ Packs Evolix et Maintenance : Packs  Evolix  (intégration  de  serveur  mail,  de  fichiers,  firewall,  VPN,  IDS),  suivi,  maintenance, support.  3/ Sur mesure: Développement sur cahier des charges  (PHP), personnalisation d'outils libres.  2/  Audit,  conseil,  hébergement,  migration : étude  de  faisabilité,  audit  de  sécurité  et  réseau, hébergement en datacenter mutualisé  ou dédié. 4/ Formations formations expert (LAMP, Samba, ...)
  • 8. CYBERCARTES EN CHIFFRES Créé en 1997, cybercartes.com propose  environ  10.000 cartes virtuelles et une technologie  propriétaire unique permettant l’animation de photos  et l’enregistrement de voix pour créer de toutes  pièces des cartes originales et personnalisées. La société CyberCartes (créée en 2000) a 2 activités :    –  Editeur du site cybercartes.com –  Opérateur de solutions Visites : 6,5 millions (janvier 2010) Visiteurs Uniques :  3,5 millions (janvier 2010)  Pages vues :  40 millions (janvier 2010) Newsletter hebdo :  5 millions d’abonnés Base Emailing : 2,3 millions d’abonnés optin Recrutement/co­reg : 1 500 000 (par an) PAP/VU : 9 pages Temps Moyen : 4:57mn
  • 9. PARTICULARITES CYBERCARTES A. Effet viral A. Pics événementiels Pâques Fête des  Mères Les  Noël Voeux Saint  Halloween Valentin Fête  Journée  des  Grands Mères de la Femme Muguet A. Top catégories Fête des Pères 1er Mai 1er Avril
  • 10. SOLUTIONS TECHNIQUES • Avatar parlant / Présentateur virtuel
  • 11. SOLUTIONS TECHNIQUES • Avatar parlant / Présentateur virtuel Diffusion Multi Canal
  • 13. Problématique de Cybercartes #evoptitdej Des soucis majeurs récurrents lors des pics de visiteurs           o Problèmes NFS / Accès disque           o Montée en charge violente des frontaux web           o Problème firewall (limite nombre de connexions)           o etc.
  • 14. Problématique de Cybercartes #evoptitdej  Les pics de charge sont quasiment doublés chaque année
  • 15. Problématique de Cybercartes #evoptitdej 1  million  de  visites  par  jour  tous  les  jours,  c'est  « facile »  mais  c'est très difficile de le faire une seule fois par an (préparation  complexe, la garantie doit être maximale).
  • 16. 2. Solution Evolix pour Cybercartes Interactions avec l'équipe de développement Changements pour fin 2008 Changements pour fin 2009 Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
  • 18. Intéraction avec l'équipe de développement #evoptitdej  Réflexions/choix avec les développeurs ●  Présentation des changements sur l'infrastructure ●  Notion de nœuds et séparation catalogue/commande/retrait ●  Publication de recommandations / best pratices ●  Planning fixé avec des points réguliers ●  Environnement de dév, scripts de déploiement (dev/prod) ●  Tests de montée en charge avec Tsung et... corrections en  ● conséquence, notamment certaines pages ont été  redeveloppées sans utiliser le framework utilisé (Zend) !!
  • 21. Principes de base #evoptitdej Nous sommes fixés les principes suivants : ­ N'importe quel équipement peut tomber (...ou presque), cela n'impacte pas la  production. Une panne sur un seul équipement n'est jamais urgente. ­ Utiliser le maximum des ressources existantes en évitant le matériel  inactif, c'est­à­dire essayer d'être en actif/actif partout. Un équipement inactif, c'est cher. Très cher. ­ Avoir une indépendance vis­à­vis des hébergeurs/opérateurs : même  en cas d'attaque nucléaire sur un datacenter, la page d'accueil, le  catalogue et les nouvelles commandes restent en ligne. On a déjà eu une attaque nucléaire...
  • 23. Focus sur le réseau « haute dispo » #evoptitdej ­ Passage en Gigabit (le 1er janvier 2010, à 11h du matin, on avait un  débit cumulé de 500 Mb/s dont plus de 150 Mb/s sur le datacenter  principal) ­ Tolérance de panne (et de travaux) ­ Basculement complètement transparent : les sessions réseau sont  conservées. Par exemple, une connexion SSH n'est pas coupée par une  bascule du routeur/firewall ;­)
  • 24. Focus sur la notion de nœuds #evoptitdej ●  Répartition du trafic non spécifique (90%) sur plusieurs nœuds ●  Utilisation de serveurs « static » (Nginx + cache HTTP)  indépendants des nœuds ●  Enregistrements DNS avec un faible TTL (Time­To­ Live)...bascule manuelle en cas d'incident majeur ●  Serveur DNS master « caché »
  • 25. Focus sur le cache/load­balancing #evoptitdej ● Squid est trèèès performant. Pour du contenu en cache, c'est  comparable à servir des pages en HTML statique. ● Tout ce qui est caché n'atteint pas les frontaux. C'est une grosse  économie. Le cache c'est bon, mangez­en ! ● Pour aplatir un peu les pics de charge, on pré­cache les pages les  pages les plus visitées via un script quotidien. (merci Awstats)
  • 26. Squid #evoptitdej
  • 27. HAProxy #evoptitdej
  • 28. Focus sur les filers #evoptitdej Le défi d'être en actif/actif en production a échoué. #FAIL ● HTTP (via Nginx) pour les accès en lecture ● NFS pour les accès en écriture (à minimiser) ● On s'appuie sur un SAN (hautes performances mais  Single Point of Failure potentiel) ● La bascule est critique (système de fichiers, STONITH)
  • 29. Heartbeat #evoptitdej
  • 30. Focus sur les serveurs SQL #evoptitdej Le défi d'être en actif/actif en production a réussi. o/ Historique de l'infrastructure SQL     o À l'origine, un seul serveur           + Pas de haute disponibilité      + Scalabilité limitée      o 2007, réplication master/slave avec IP failover           + Haute disponibilité      + Utilisation du second serveur pour des tâches annexes (sauvegardes, stats, etc)
  • 31. Focus sur les serveurs SQL #evoptitdej   * Aujourd'hui, réplication master/master avec load balancing           o Permet d'absorber les pics de charge en sérialisant les requêtes           o Haute disponibilité plus souple           o Scalabilité évolutive avec la réplication circulaire           o Mais... attention au développement     * Contraintes de développement           o Gestion du « lag »           o Utilisation d'auto increment (y compris entre les différents nodes)           o Attention à l'ordre des modifications...
  • 32. Mais aussi... #evoptitdej  Memcache (cache applicatif) (Must­have) ●  Sharedance (sessions PHP partagées) (Merci Skyrock) ● ●  Passage du NAT en adressage public, utilisation d'un  réseau privé interne (performances, souplesse) ●  Utilisation de serveurs de marques différentes  (DELL/IBM/HP) et système différents  (Debian/FreeBSD/OpenBSD) : « ne pas mettre tous ses  œufs dans le même panier... et utiliser le meilleur à  chaque poste ! » (OM, 1er du championnat)
  • 34. Vers le Cloud Computing #evoptitdej Pour le 2e nœud, on est passé d'un hébergement classique  (baie chez OVH) à du Cloud Computing (Amazon EC2). Définition : Le National Institute of Standards and Technology (NIST) aux États­ Unis a officialisé la définition du Cloud Computing : « Le Cloud  Computing est un modèle économique « pay per use » pour  accéder et utiliser, à travers du réseau, à un pool de ressources  informatiques configurables et partagées (i.e. réseaux, serveurs,  stockage, applications, etc.) qui peuvent être rapidement achetées  et utilisées avec un effort de gestion minimal et une interaction  limitée avec le fournisseur de services ».
  • 35. Amazon EC2 #evoptitdej Amazon est le principal opérateur d'IAAS (Infrastructure As A Service). Il repose sur plusieurs datacenters aux États­Unis/Europe/Asie... ● Attention, « pay per use » ne veut pas dire qu'on paye à la demande toutes  les ressources. Par exemple, la taille des serveurs (CPU, RAM) doit être  choisie. ● Choix des espaces de stockage (EBS) ● Stockage des images (AMI) sur Amazon S3 ● Attention, le prix est assez élevé (75 $/mois pour une Small instance et  150 $/mois pour une Medium)... si l'on a une consommation constante. ● Mauvaise surprise : la latence élevée entre serveurs sur une même zone ● Démo....
  • 36. Conclusion sur le Cloud Computing #evoptitdej ● Le Cloud Computing, cela peut être génial ! Cela apporte souplesse, de  potentielles grosses économies, etc. etc. (et cela sauve des bébés ours) MAIS ● Du Cloud Computing n'est pas une infra clé en main pour gérer des  applications classiques. Cela diffère d'une infra classique (I/O, latence). ● Les applis doivent être adaptées selon ces contraintes spécifiques... ● Avec du Cloud Computing (ou même de la simple virtualisation), il faut bien  avoir en tête que centraliser hébergement+matériel rajoute aussi du danger  (SPOF!) ● En conclusion, nous préconisons donc une infra mixte (classique + Cloud) ou  une infra avec deux services de Cloud indépendants (GANDI + Amazon EC2)
  • 38. Conclusion #evoptitdej Le défi CyberCartes a été relevé par Evolix avec succès ! Pour fin 2010 : ✔ Amélioration de la technique de fail­over pour les contenus  statiques (serveurs s'annonçant eux­même via DNS) ✔ Gestion optimisée de la politique de stockage et nettoyage  complètement automatique des données ✔ Utilisation davantage de Cloud Computing
  • 39. That's all folks! #evoptitdej Fin de la présentation... Des questions ? Grégory COLPART ­ Resp. technique ­ <reg@evolix.fr> Sébastien DUBOIS ­ Resp. commercial ­ <sdubois@evolix.fr> Nicolas DURUT ­ Resp. technique ­ <nico@cybercartes.com>