39
Petit-Déjeuner Libertis - Monter une infrastructure web pour 1 Million de visites par jour -15 Avril 2010 Monter une infrastructure web pour 1 Million de visites par jour

Petit dejeuner-evolix-150410

  • Upload
    evolix

  • View
    668

  • Download
    0

Embed Size (px)

DESCRIPTION

Monter une infrastructure web pour 1 million de visites par jour

Citation preview

Page 1: Petit dejeuner-evolix-150410

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

Monter une infrastructure web

pour 1 Million de visites par jour

Page 2: Petit dejeuner-evolix-150410

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'EvolixPrésentation de CybercartesProblématique de Cybercartes

Page 3: Petit dejeuner-evolix-150410

#evoptitdej

Prochain Petit Déjeuner Libertis

– 29 Avril 2010 : OpenBravo et SpagoBI / Chateau­Gombert

Introduction au petit­déjeuner

Page 4: Petit dejeuner-evolix-150410

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

Présentation Evolix

Page 5: Petit dejeuner-evolix-150410

#evoptitdej

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

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, ...)

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

Présentation Evolix / Offre 2010

Page 6: Petit dejeuner-evolix-150410

#evoptitdejPrésentation Evolix / Références

Page 7: Petit dejeuner-evolix-150410

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

Présentation Cybercartes

Page 8: Petit dejeuner-evolix-150410

• CYBERCARTES EN CHIFFRES

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ésBase Emailing : 2,3 millions d’abonnés optinRecrutement/co­reg : 1 500 000 (par an)PAP/VU : 9 pagesTemps Moyen : 4:57mn

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

Page 9: Petit dejeuner-evolix-150410

• PARTICULARITES CYBERCARTES

A. Pics événementiels

A. Effet viral

A. Top catégories

Pâques

Journée de la Femme

Fête des Mères

Halloween

Fête des Pères

Les Les VoeuxVoeux

Fête des 

Grands Mères

Saint Valentin

MuguetMuguet11erer Mai Mai

1er Avril

NoëlNoël

Page 10: Petit dejeuner-evolix-150410

• SOLUTIONS TECHNIQUES

• Avatar parlant / Présentateur virtuel

Page 11: Petit dejeuner-evolix-150410

• SOLUTIONS TECHNIQUES

• Avatar parlant / Présentateur virtuel

Diffusion Multi Canal

Page 12: Petit dejeuner-evolix-150410

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

Problématique de Cybercartes

Page 13: Petit dejeuner-evolix-150410

#evoptitdejProblématique de Cybercartes

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.

Page 14: Petit dejeuner-evolix-150410

#evoptitdejProblématique de Cybercartes

 Les pics de charge sont quasiment doublés chaque année

Page 15: Petit dejeuner-evolix-150410

#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).

Problématique de Cybercartes

Page 16: Petit dejeuner-evolix-150410

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

2. Solution Evolix pour Cybercartes

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

Page 17: Petit dejeuner-evolix-150410

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

Page 18: Petit dejeuner-evolix-150410

#evoptitdejIntéraction avec l'équipe de développement

● 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) !!

Page 19: Petit dejeuner-evolix-150410

#evoptitdej

Page 20: Petit dejeuner-evolix-150410

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

Changements pour fin 2008

Page 21: Petit dejeuner-evolix-150410

#evoptitdejPrincipes de base

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...

Page 22: Petit dejeuner-evolix-150410

#evoptitdejInfrastructure Cybercartes

Page 23: Petit dejeuner-evolix-150410

#evoptitdejFocus sur le réseau « haute dispo »

­ 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 ;­)

Page 24: Petit dejeuner-evolix-150410

#evoptitdejFocus sur la notion de nœuds

● 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é »

Page 25: Petit dejeuner-evolix-150410

#evoptitdejFocus sur le cache/load­balancing

● 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)

Page 26: Petit dejeuner-evolix-150410

#evoptitdejSquid

Page 27: Petit dejeuner-evolix-150410

#evoptitdejHAProxy

Page 28: Petit dejeuner-evolix-150410

#evoptitdejFocus sur les filers

● 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)

Le défi d'être en actif/actif en production a échoué. #FAIL

Page 29: Petit dejeuner-evolix-150410

#evoptitdejHeartbeat

Page 30: Petit dejeuner-evolix-150410

#evoptitdejFocus sur les serveurs SQL

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)

Page 31: Petit dejeuner-evolix-150410

#evoptitdejFocus sur les serveurs SQL

  * 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...

Page 32: Petit dejeuner-evolix-150410

#evoptitdejMais aussi...

● 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)

Page 33: Petit dejeuner-evolix-150410

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

Changements pour fin 2009

Page 34: Petit dejeuner-evolix-150410

#evoptitdejVers le Cloud Computing

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 ».

Page 35: Petit dejeuner-evolix-150410

#evoptitdejAmazon EC2

● 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....

Amazon est le principal opérateur d'IAAS (Infrastructure As A Service).Il repose sur plusieurs datacenters aux États­Unis/Europe/Asie...

Page 36: Petit dejeuner-evolix-150410

#evoptitdejConclusion sur le Cloud Computing

● 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)

Page 37: Petit dejeuner-evolix-150410

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

3. Conclusion

Page 38: Petit dejeuner-evolix-150410

#evoptitdejConclusion

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

Page 39: Petit dejeuner-evolix-150410

#evoptitdejThat's all folks!

Fin de la présentation...

Des questions ?

Grégory COLPART ­ Resp. technique ­ <[email protected]>Sébastien DUBOIS ­ Resp. commercial ­ <[email protected]>

Nicolas DURUT ­ Resp. technique ­ <[email protected]>