Title: Diapositive 1
1(No Transcript)
2Contexte
- Refonte du Site www.Téléshopping.fr
3Contexte
- Refonte du Site www.Téléshopping.fr
4Enjeux et objectifs
Proposer une offre produit élargie avec une
majorité de références 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,
création de listes de produits thématiques et
transverses, meilleur affichage des promotions,
achats groupés, ventes flash, zone éditoriale
- Choisir loutil le plus adapté à nos besoins via
étude comparative. - Disposer dune plateforme dernière génération
permettant de supporter les futurs projets
dévolutions fonctionnelles et daccélérer nos
développements - Miser sur une solution de gestion de site
e-commerce innovante et complète
5Pourquoi Magento
- Solution Open Source
- Coûts de développement maitrisés
- Répondant à nos besoins E-commerce
- Répondant à nos besoins Editoriaux
- Prise de risque acceptable
6Fonctionnalités
- Répondant à 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 catégories)
- Adaptées pour nos besoins
- Gestion de trucs et astuces
- Gestion des offres commerciales
- Achats groupés
- Le paiement
- Flux externes ERP, RNVP, Dédup
7Les offres commerciales
- Le prix et laffichage des articles sur le site
Téléshopping sont déterminés par les offres
commerciales. - La gestion des offres se basent sur le module des
Promotions déjà existant dans Magento et
exploite lapplication des règles sur les prix.
Le module à été étendu et adapter pour répondre
aux besoins de Téléshopping sans modifier son
noyau. - Une offre commerciale est associée à un article
et un seul. Un article est associé à 0 ou n
offres commerciales. - Les articles et les offres associées sont mis à
jour quotidiennement à partir de lERP (Générix)
8Les fiches Trucs et astuces
- Les fiches Trucs et astuces correspondent à
un contenu éditorial qui permet de donner des
informations supplémentaires sur un produit
donné. - La particularité de ce module est lassociation
des fiches à des articles et inversement. - Soucieux dexploiter au maximum les
fonctionnalités de Magento, nous avons adapté le
modèle des catégories et des produits pour créer
les niveaux et les fiches Trucs et astuces - Ainsi, nous pouvons créer un niveau ou une fiche
indépendamment, associer une fiche à un niveau,
associer une fiche à un article et inversement.
9Extensions spécifiques
- Achats groupés
- Lachat groupé permet dobtenir un produit à un
prix réduit. Le de réduction augmente en
fonction des clients participants. - Ce module est associé au module de gestion des
Télécodes existant dans Magento. Le télécode sera
envoyé à tous les participants en fin des
enchères - Paiement
- Création dune extension de paiement avec Ogone
complètement paramétrable dans le BO - Intégration du paiement avec la carte de fidélité
OK Shopping - Application des facilités de paiements aux
différents mode de paiement (complément de module
paramétrable dans le BO)
10Les performances et notre intervention
- Contraintes projet
- 3 pics de prises de commandes dans lannée à
hauteur de 6000 commandes/heure - 1500 produits actifs au catalogue
- 2500 règles 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 règles de
réécriture - 1 SGBD
- bi processeur, quadri coeur
- 32Go de RAM, dont 12 dédiés aux clés Innodb
- 1 filer (pour les partages du cache, des sessions
et des médias) - 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
11Les performances et notre intervention
- Tests de charges
- Réalisés avec loutil .
- pic à 100 utilisateurs sur un frontal
- pic à 100 utilisateurs simultanées sur deux
frontaux - pic à 200 utilisateurs simultanées sur deux
frontaux - Résultats et nos optimisations
- Lenteur de navigation dans les pages du site
- Utilisation du cache Magento
- Compression gzip du contenu envoyé au client
- Pré-génération du cache des informations produits
et catégories (à adapter en fonction de
larchitecture partager/copier le cache ou le
pré-générer pour chaque frontal) - Requêtes MySQL
- Optimisation du moteur MySQL avec lintervention
dun expert MySQL - Amélioration de certaines requêtes contrairement
à ce que l'on pourrait penser, l'utilisation
d'index n'a pas forcément montré les meilleures
performances. Il est préférable parfois de passer
par les valeurs des attributs plutôt que par les
clés primaires gt Bien utiliser le profiler
12Les performances et notre intervention
- Dautres pistes doptimisations
- Augmentation du nombre de frontaux (4 prévus)
- Réduction du nombre d'insert / update en
désactivant notamment les logs gérés par Magento - Dissocier lecture et écriture sur des SGBD
différents - Utilisation du module de compression des css et
js. - Monter en version Magento
13Optimisation 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
14Optimisation 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 - table_cache 4096
- max_allowed_packet 2M - binlog_cache_size 1M
- max_heap_table_size 256M - sort_buffer_size
16M - join_buffer_size 512K - thread_cache_size
128 - thread_concurrency 8 - query_cache_size 128M
- query_cache_limit 2M - ft_min_word_len 4
- thread_stack 192K - transaction_isolation
REPEATABLE-READ - tmp_table_size 256M - tmpdir /mysqltemp
- key_buffer_size 128M - read_buffer_size 1M
- read_rnd_buffer_size 512K - bulk_insert_buffer_
size 64M - innodb_additional_mem_pool_size 16M -
innodb_buffer_pool_size 12G - innodb_file_io_threads 4 - innodb_thread_concur
rency 16 - innodb_log_buffer_size 8M - innodb_log_file_siz
e 512M - innodb_log_files_in_group 3
- Montage du volume tmpdir en tmpfs (5Go)
15Optimisation des performances 3/3
- Optimisation du code
- Analyse du nombre de requêtes
- Analyse des requêtes
- Mise en place du cache
- Activation de APC
- Résultat
- Nombre de requêtes réduit par 4 au niveau du code
- Nombre de requêtes réduit à 0 pour la demande de
la page daccueil grâce à la pré génération des
pages en cache.
16Test de charge
- Test de charge effectué avec 2 Fronts 1 BDD
- Charge utilisateur maximale 200
- Requêtes/s 630
- Temps de réponse moyen (s) 0,66
- Durée de test moyenne (s) 84,3
- Temps de réponse 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