Vous êtes sur la page 1sur 16

Contexte

 Refonte du Site www.Tlshopping.fr

Contexte
 Refonte du Site www.Tlshopping.fr

Enjeux et objectifs
Proposer une offre produit largie avec une majorit de rfrences disponibles uniquement sur le web : le site proposera ainsi lassortiment le plus complet et le plus large de lenseigne. Multiplier et diversifier les zones de sollicitation et danimation commerciale : multiplication des liens up et cross selling, cration de listes de produits thmatiques et transverses, meilleur affichage des promotions, achats groups, ventes flash, zone ditoriale  Choisir loutil le plus adapt nos besoins via tude comparative.  Disposer dune plateforme dernire gnration permettant de supporter les futurs projets dvolutions fonctionnelles et dacclrer nos dveloppements  Miser sur une solution de gestion de site e-commerce innovante et complte

Pourquoi Magento
 Solution Open Source
Cots Administrati on des contenus 100% 50% e-commerce 0% Magento

 Cots de dveloppement maitriss


Prennit / Risques

 Rpondant nos besoins E-commerce  Rpondant nos besoins Editoriaux  Prise de risque acceptable

Restitution des contenus

Fonctionnalits
 Rpondant nos besoins E-commerce (natif)
Gestion de panier Gestion de frais de port Gestion des remises (pas totalement) Gestion des clients

 Aux besoins ditoriaux (natif)


Commentaires produits Gestion des mails CMS Gestion des univers (via les catgories)

 Adaptes pour nos besoins


Gestion de trucs et astuces Gestion des offres commerciales Achats groups Le paiement Flux externes : ERP, RNVP, Ddup

Les offres commerciales


 Le prix et laffichage des articles sur le site Tlshopping sont dtermins par les offres commerciales.  La gestion des offres se basent sur le module des Promotions dj existant dans Magento et exploite lapplication des rgles sur les prix. Le module t tendu et adapter pour rpondre aux besoins de Tlshopping sans modifier son noyau.  Une offre commerciale est associe un article et un seul. Un article est associ 0 ou n offres commerciales.  Les articles et les offres associes sont mis jour quotidiennement partir de lERP (Gnrix)

Les fiches Trucs et astuces


 Les fiches Trucs et astuces correspondent un contenu ditorial qui permet de donner des informations supplmentaires sur un produit donn.  La particularit de ce module est lassociation des fiches des articles et inversement.  Soucieux dexploiter au maximum les fonctionnalits de Magento, nous avons adapt le modle des catgories et des produits pour crer les niveaux et les fiches Trucs et astuces  Ainsi, nous pouvons crer un niveau ou une fiche indpendamment, associer une fiche un niveau, associer une fiche un article et inversement.

Extensions spcifiques
 Achats groups :
Lachat group permet dobtenir un produit un prix rduit. Le % de rduction augmente en fonction des clients participants. Ce module est associ au module de gestion des Tlcodes existant dans Magento. Le tlcode sera envoy tous les participants en fin des enchres

 Paiement :
Cration dune extension de paiement avec Ogone compltement paramtrable dans le BO Intgration du paiement avec la carte de fidlit OK Shopping Application des facilits de paiements aux diffrents mode de paiement (complment de module paramtrable dans le BO)

Les performances et notre intervention


 Contraintes projet :
3 pics de prises de commandes dans lanne hauteur de 6000 commandes/heure 1500 produits actifs au catalogue 2500 rgles de gestion actives de prix

 Environnement de preprod :
1 loadbalanceur, 1 firewall 2 frontaux
mono processeur, 8 Go de RAM APC Zend Debugger Magento 1.1.6 avec utilisation des rgles de rcriture

1 SGBD
bi processeur, quadri coeur 32Go de RAM, dont 12 ddis aux cls Innodb

1 filer (pour les partages du cache, des sessions et des mdias)


var/session, media/catalog/product/cache, jpg, video, skin

3 webservices (interconnectant avec le site) :


ERP : gestion des clients et de leur commandes AMABIS : normalisation des adresses MailPerformance : gestion de mailing

10

Les performances et notre intervention


 Tests de charges :
Raliss avec loutil . pic 100 utilisateurs sur un frontal pic 100 utilisateurs simultanes sur deux frontaux pic 200 utilisateurs simultanes sur deux frontaux

 Rsultats et nos optimisations :


Lenteur de navigation dans les pages du site :
Utilisation du cache Magento Compression gzip du contenu envoy au client Pr-gnration du cache des informations produits et catgories ( adapter en fonction de larchitecture : partager/copier le cache ou le pr-gnrer pour chaque frontal)

Requtes MySQL :
Optimisation du moteur MySQL avec lintervention dun expert MySQL Amlioration de certaines requtes: contrairement ce que l'on pourrait penser, l'utilisation d'index n'a pas forcment montr les meilleures performances. Il est prfrable parfois de passer par les valeurs des attributs plutt que par les cls primaires => Bien utiliser le profiler

11

Les performances et notre intervention


 Dautres pistes doptimisations :
Augmentation du nombre de frontaux (4 prvus) Rduction du nombre d'insert / update en dsactivant notamment les logs grs par Magento Dissocier lecture et criture sur des SGBD diffrents Utilisation du module de compression des css et js. Monter en version Magento

12

Optimisation des performances 1/3


 Optimisation des fronts
Configuration serveur : HP Proliant 360 G5, 8Go RAM, 1 CPU quad core 2,83Ghz, 2HDD 72 Go SAS, 4 Nics Montage NFS des volumes suivants :
var/session media/catalog/product/cache media/catalog/product/jpg media/catalog/product/video Skin

Montage tmpfs du volume var/cache

13

Optimisation des performances 2/3


 Optimisation MySql
Configuration serveur : HP Proliant 360 G5, 32Go RAM, 2 CPU quad core 2,83Ghz, 2HDD 72 Go SAS, 4 Nics Configuration & tunning MySQL :
max_connections = 800 max_allowed_packet = 2M max_heap_table_size = 256M join_buffer_size = 512K thread_concurrency = 8 query_cache_limit = 2M thread_stack = 192K tmp_table_size = 256M key_buffer_size = 128M read_rnd_buffer_size = 512K innodb_additional_mem_pool_size = 16M innodb_file_io_threads = 4 innodb_log_buffer_size = 8M innodb_log_files_in_group = 3 - table_cache = 4096 - binlog_cache_size = 1M - sort_buffer_size = 16M - thread_cache_size = 128 - query_cache_size = 128M - ft_min_word_len = 4 - transaction_isolation = REPEATABLE-READ - tmpdir = /mysqltemp - read_buffer_size = 1M - bulk_insert_buffer_size = 64M - innodb_buffer_pool_size = 12G - innodb_thread_concurrency = 16 - innodb_log_file_size = 512M

Montage du volume tmpdir en tmpfs (5Go) Utilisation de la console dAdministration Mysql : Mysql Entreprise Dashboard Activation de la fonction Query analyzer dans Mysql Entreprise Dashboard.

14

Optimisation des performances 3/3


 Optimisation du code
Analyse du nombre de requtes Analyse des requtes Mise en place du cache Activation de APC

 Rsultat :
Nombre de requtes rduit par 4 au niveau du code Nombre de requtes rduit 0 pour la demande de la page daccueil grce la pr gnration des pages en cache.

15

Test de charge
 Test de charge effectu avec 2 Fronts & 1 BDD
Charge utilisateur maximale : 200 Requtes/s : 630 Temps de rponse moyen (s): 0,66 Dure de test moyenne (s) : 84,3 Temps de rponse moyen de la page (s) : 0,061

 Resultat
Charge non visible par un utilisateur. Charge CPU sur Front : uptime de 1 Charge CPU sur BDD : moins de 5%

16

Vous aimerez peut-être aussi