Petit dejeuner-evolix-150410

887 vues

Publié le

Monter une infrastructure web pour 1 million de visites par jour

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
887
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
3
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Petit dejeuner-evolix-150410

  1. 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. 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. 3. Introduction au petit­déjeuner #evoptitdej Prochain Petit Déjeuner Libertis – 29 Avril 2010 : OpenBravo et SpagoBI / Chateau­Gombert
  4. 4. Présentation Evolix Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
  5. 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, ...)
  6. 6. Présentation Evolix / Références #evoptitdej
  7. 7. Présentation Cybercartes Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
  8. 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. 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. 10. • SOLUTIONS TECHNIQUES • Avatar parlant / Présentateur virtuel
  11. 11. • SOLUTIONS TECHNIQUES • Avatar parlant / Présentateur virtuel Diffusion Multi Canal
  12. 12. Problématique de Cybercartes Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
  13. 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. 14. Problématique de Cybercartes #evoptitdej  Les pics de charge sont quasiment doublés chaque année
  15. 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. 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
  17. 17. 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
  18. 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) !!
  19. 19. #evoptitdej
  20. 20. Changements pour fin 2008 Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
  21. 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...
  22. 22. Infrastructure Cybercartes #evoptitdej
  23. 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. 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. 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. 26. Squid #evoptitdej
  27. 27. HAProxy #evoptitdej
  28. 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. 29. Heartbeat #evoptitdej
  30. 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. 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. 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)
  33. 33. Changements pour fin 2009 Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
  34. 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. 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. 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)
  37. 37. 3. Conclusion Petit­Déjeuner Libertis ­ Monter une infrastructure web pour 1 Million de visites par jour ­15 Avril 2010
  38. 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. 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>

×