Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

23
Oxalide © 2013 – Documents confidentiels 08/10/2013 Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

description

Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement #Magento

Transcript of Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Page 1: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

08/10/2013

Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Page 2: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

Maxime KURKDJIAN

Directeur de productionIngénieur Système & Réseaux

« Gros barbu »

Page 3: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

E-Commerçants

SaaS e-Commerce

Page 4: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

NOS OBJECTIFSL’hébergement Magento

Efficacité : and it’s cheap

Scalabité : and it’s fast even when there is a lot of

people

Performance : and it’s fast

Disponibilité : It works

La maîtrise budgétaire et l’innovation

Queuing / Bus / Node.JS

L’architecture logicielle redimensionnable

Sharding verticale / horizontale

La ressource au bon endroitProfiling PHP/ MySQL

Webperformance

La fiabilité sous-jacente La résilience et la redondance

Infogérance en 24x7x365

Page 5: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

LES DIFFERENTS LEVIERSL’hébergement Magento

Infrastructure

Magento

Architecture logicielle

MOAClient

eCommerçant

L’intégrateur

Page 6: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

Magento

Solution Magento

Block cache HTMLFlat catalogueCompilation! loggingEtc…

LES BEST PRACTICE MAGENTO

Effet de levier sur le nombre

de produit

Effet pervers sur la performance

Page 7: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

Architecture logicielle

VarnishApache/nginxPHP/FPM APCMemcachedSolRMySQL

UN BON EMPILEMENT APPLICATIF

Architecture logicielle

Proxy HTTP

Apache pour commencer

C’est la stack à banaliser lorsque l’on fait du Magento et quand on a des projections de

croissance forte

Page 8: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

Architecture technique

ArchitectureServeurRéseau

DES COUCHES BASSES OPTIMISEES

Infrastructure

n-frontal / répartiteur de charge

Backoffice dédié…

Bonne ressource au bon endroit

Latence : memcachedCDN local

Page 9: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

LE TOWER DEFENCE DES RESSOURCES

Le caching

Page 10: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

LE PRINCIPELe coût d’une requête

faible importantTemps de traitement et de réponse

Un process Apache pèse près 500 Mo :

c’est lourd

Page 11: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

LES PROTECTIONS DES RESSOURCES

Les différents caching

100 %

Ressources CPU/Mémoire sont

limitées et il faut les utiliser à bon escient

Sans optimisation, tous les visiteurs pourraient

faire des requêtes lourdes – utilisant

toutes les ressources CPU/Mémoire

Page 12: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

LES PROTECTIONS DES RESSOURCES

Les différents caching

ApacheAPC

Memcached

Query Cache

10 %100 %

90 %

1er rempart

2ème rempart

3ème rempart

4ème rempart

Effet de levier qui peut multiplier par 100 la

capacité du site

Page 13: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

IMPLEMENTATION

Niveau 1 Manuel et webmastering

Niveau 2Automatique et avec les headers

Niveau 3Automatique et intégrée au CMS

La politique de caching

Statique Dynamique

Un chantier de webperformance est pertinent à ce niveau

Des modules comme Power Cache et

Turpentine

Page 14: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

LE WARM-UPL’architecture de cache

Apache

Apache

Niveau 1Puissance

Si le cache est vide et passe en mode

WARM-UP, les appels au serveur peuvent le faire

tomber.

Page 15: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

LE WARM-UPL’architecture de cache

Apache

Apache

Niveau 1Puissance

Niveau 2Intelligence1. Si le cache est

vide au lieu d’interroger le

serveur, interroge un autre varnish

2. Si tous les varnish sont vides, ils interrogent les

varnish en seconde ligne.

3. Si ces derniers sont vides, il interrogent le serveur. Cette architecture

garantie une bonne disponibilité du

service

Page 16: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

La politique de caching

KISS : KEEP IT SMALL & SIMPLE

Flush : la mise à jour forcée du cacheEviter le flush : attention au temps de warm-upMaîtriser la taille du cachePréférer les noms des objets différents pour les mises à jour

Edge Side Include : le cache partiel d’une pageCacher les éléments dynamiquesGarder un découpage simpleEviter les usines à gazEnterprise Edition gère

l’ESI de manière native

Eviter les include d’include

Peut être gérer via une API par exemple :

Turpentine

Page 17: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

Caching des objets non-cachage

COMMENT GERER CES OBJETS ?

Cookies

Ajax

ESI

PLUSIEURS ELEMENTS DYNAMIQUES D’UNE PAGELe découpage des pages en zones statiques et dynamiques

LES DONNES PRODUITS VARIABLES StockPrix promotionnels et/ou profilés

LES DONNEES UTILISATEURSAuthentificationTunnel SSL

Ne pas bootstrapper tout Magento pour les requêtes non-cachable

Page 18: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

La politique de caching

MONITORING

Indicateurs

DevOps

MAÎTRISER LES DEPLOIEMENTSLe temps de Warm-upTime stamper les évolutions applicativesLe temps de générations des pages à « l’origine »

MESURER POUR L’AMÉLIORERLa taille du cacheLe nombre d’éléments cachés

Pour le SEO : Attention au TTL trop long

Le cache masque la performance à l’origine

Point important pour le déploiement à

l’étranger

Page 19: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

Réussir son caching

LES CLES DU SUCCES

1

2

3

FAVORISEZ LA COLLABORATION DEV ET OPSDevOps

CONSIDÉREZ LA PROBLÉMATIQUE TOUT AU LONG DU PROJETMême combat que la sécurité

INTÉGREZ LA PERFORMANCE DANS LE PLANNINGSavoir stopper la course à la fonctionnalitéProvisionner la ressource (homme + temps) pour la performanceTMC et retour de TMC valoriser le travail sur la perf

C’est un arbitrage fonctionnel et de

planning

Connaissance du développement et de

l’infrastructure

Page 20: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

LES DIFFERENTS LEVIERSL’hébergement Magento

Infrastructure

Magento

Architecture logicielle

MOAClient

eCommerçant

L’intégrateur

DEVOPS

Page 21: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

Des questions ?

Page 22: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

Siège social & NOC :25 Boulevard de Strasbourg – 75010 Paris

Tel : +33 1 75 77 16 50e-mail : [email protected]

Ou contactez directement :Maxime KURKDJIAN – Directeur associé

Tel : +33 1 75 77 16 58 / [email protected] Sébastien LUCAS – Directeur associé

Tel : +33 1 75 77 16 59 / [email protected]

Page 23: Les bonnes pratiques d'une architecture logicielle et infrastructure de l'hébergement Magento

Oxalide © 2013 – Documents confidentiels

Merci