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

Oxalide © 2013 – Documents confidentiels
Maxime KURKDJIAN
Directeur de production

Ingénieur Système & Réseaux
« Gros barbu »

Oxalide © 2013 – Documents confidentiels
E-Commerçants

SaaS e-Commerce

Oxalide © 2013 – Documents confidentiels
L’hébergement Magento

NOS OBJECTIFS

La maîtrise budgétaire et
l’innovation
Queuing / Bus / Node.JS

Efficacité : and it’s cheap

L’architecture logicielle
redimensionnable
Sharding verticale / horizontale

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

Performance : and it’s fast

Disponibilité : It works

La ressource au bon endroit
Profiling PHP/ MySQL
Webperformance

La fiabilité sous-jacente
La résilience et la redondance
Infogérance en 24x7x365

Oxalide © 2013 – Documents confidentiels
L’hébergement Magento

LES DIFFERENTS LEVIERS

MOA

Client
eCommerçant

L’intégrateur

Magento
Architecture logicielle
Infrastructure

Oxalide © 2013 – Documents confidentiels
Solution Magento

LES BEST PRACTICE MAGENTO

Magento

Effet de levier sur le
Block cache HTML
nombre de produit
Flat catalogue
Compilation
! logging
Effet pervers sur la performance
Etc…

Oxalide © 2013 – Documents confidentiels
Architecture logicielle

UN BON EMPILEMENT APPLICATIF
Proxy HTTP

Architecture
logicielle

Varnish
Apache/nginx
PHP/FPM
APC
Memcached
SolR
MySQL

Apache pour
commencer

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

Oxalide © 2013 – Documents confidentiels
Architecture technique

DES COUCHES BASSES OPTIMISEES

Infrastructure

Architecture
Serveur
Réseau

n-frontal / répartiteur de
charge
Backoffice dédié
…
Bonne ressource au bon
endroit

Latence : memcached
CDN local

Oxalide © 2013 – Documents confidentiels
Le caching

LE TOWER DEFENCE DES RESSOURCES

Oxalide © 2013 – Documents confidentiels
Le coût d’une requête

LE PRINCIPE

Un process Apache pèse
près 500 Mo : c’est lourd

faible

important
Temps de traitement et de réponse
Oxalide © 2013 – Documents confidentiels
Les différents caching

LES PROTECTIONS DES RESSOURCES
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

100 %

Oxalide © 2013 – Documents confidentiels
Les différents caching

LES PROTECTIONS DES RESSOURCES
1er rempart

2ème
rempart

3ème
rempart

4ème
rempart

Query
Cache
Apache
APC

100 %

90 %

Effet de levier qui peut
multiplier par 100 la
capacité du site

Memcached

10 %
Oxalide © 2013 – Documents confidentiels
La politique de caching

IMPLEMENTATION
Des modules comme
Power Cache et Turpentine
Un chantier de
webperformance est
pertinent à ce niveau

Niveau 3

Niveau 2
Niveau 1

Automatique et
intégrée au CMS

Automatique et
avec les headers

Manuel et
webmastering

Statique

Dynamique

Oxalide © 2013 – Documents confidentiels
L’architecture de cache

LE WARM-UP

Niveau 1
Puissance

Apache

Si le cache est vide et
passe en mode
WARM-UP, les appels
au serveur peuvent le
faire tomber.

Apache

Oxalide © 2013 – Documents confidentiels
L’architecture de cache

LE WARM-UP
1. Si le cache est vide
au lieu d’interroger le
serveur, interroge un
autre varnish

Niveau 1
Puissance

Niveau 2
Intelligence

2. Si tous les varnish
sont vides, ils
interrogent les varnish
en seconde ligne.

Apache

Apache

3. Si ces derniers sont
vides, il interrogent le
serveur. Cette
architecture garantie
une bonne disponibilité
du service
Oxalide © 2013 – Documents confidentiels
La politique de caching

KISS : KEEP IT SMALL & SIMPLE

Enterprise Edition gère l’ESI
de manière native

Edge Side Include : le cache partiel d’une page
Cacher les éléments dynamiques
Eviter les include
Garder un découpage simple
d’include
Eviter les usines à gaz

Flush : la mise à jour forcée du cache
Eviter le flush : attention au temps de warm-up
Maîtriser la taille du cache
Préférer les noms des objets différents pour les mises
à jour
Peut être gérer via une API
par exemple : Turpentine

Oxalide © 2013 – Documents confidentiels
Caching des objets non-cachage

COMMENT GERER CES OBJETS ?
Cookies

Ajax

ESI

LES DONNEES UTILISATEURS
Authentification
Tunnel SSL

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

LES DONNES PRODUITS VARIABLES
Stock
Prix promotionnels et/ou profilés
PLUSIEURS ELEMENTS DYNAMIQUES D’UNE
PAGE
Le découpage des pages en zones statiques
et dynamiques

Oxalide © 2013 – Documents confidentiels
La politique de caching

MONITORING

MESURER POUR L’AMÉLIORER
La taille du cache
Le nombre d’éléments cachés

Pour le SEO : Attention au
TTL trop long

Indicateurs
Point important pour le
déploiement à l’étranger

DevOps

MAÎTRISER LES DEPLOIEMENTS
Le temps de Warm-up
Time stamper les évolutions applicatives
Le temps de générations des pages à
« l’origine »
Le cache masque la
performance à l’origine

Oxalide © 2013 – Documents confidentiels
Réussir son caching

LES CLES DU SUCCES
INTÉGREZ LA PERFORMANCE DANS LE PLANNING

1

Savoir stopper la course à la fonctionnalité
Provisionner la ressource (homme + temps) pour la performance
TMC et retour de TMC valoriser le travail sur la perf

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

2

C’est un arbitrage
fonctionnel et de planning

FAVORISEZ LA COLLABORATION DEV ET OPS
DevOps

3

Connaissance du
développement et de
l’infrastructure

Oxalide © 2013 – Documents confidentiels
L’hébergement Magento

LES DIFFERENTS LEVIERS
MOA

Client
eCommerçant

L’intégrateur

Magento
DEVOPS
Architecture logicielle

Infrastructure

Oxalide © 2013 – Documents confidentiels
Des questions ?

Oxalide © 2013 – Documents confidentiels
Siège social & NOC :
25 Boulevard de Strasbourg – 75010 Paris
Tel : +33 1 75 77 16 50
e-mail : commercial@oxalide.com

Ou contactez directement :
Maxime KURKDJIAN – Directeur associé
Tel : +33 1 75 77 16 58 / mku@oxalide.com
Sébastien LUCAS – Directeur associé
Tel : +33 1 75 77 16 59 / slu@oxalide.com

Oxalide © 2013 – Documents confidentiels
Merci

Oxalide © 2013 – Documents confidentiels

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

  • 1.
    Les bonnes pratiquesd'une architecture logicielle et infrastructure de l'hébergement Magento 08/10/2013 Oxalide © 2013 – Documents confidentiels
  • 2.
    Maxime KURKDJIAN Directeur deproduction Ingénieur Système & Réseaux « Gros barbu » Oxalide © 2013 – Documents confidentiels
  • 3.
    E-Commerçants SaaS e-Commerce Oxalide ©2013 – Documents confidentiels
  • 4.
    L’hébergement Magento NOS OBJECTIFS Lamaîtrise budgétaire et l’innovation Queuing / Bus / Node.JS Efficacité : and it’s cheap L’architecture logicielle redimensionnable Sharding verticale / horizontale Scalabité : and it’s fast even when there is a lot of people Performance : and it’s fast Disponibilité : It works La ressource au bon endroit Profiling PHP/ MySQL Webperformance La fiabilité sous-jacente La résilience et la redondance Infogérance en 24x7x365 Oxalide © 2013 – Documents confidentiels
  • 5.
    L’hébergement Magento LES DIFFERENTSLEVIERS MOA Client eCommerçant L’intégrateur Magento Architecture logicielle Infrastructure Oxalide © 2013 – Documents confidentiels
  • 6.
    Solution Magento LES BESTPRACTICE MAGENTO Magento Effet de levier sur le Block cache HTML nombre de produit Flat catalogue Compilation ! logging Effet pervers sur la performance Etc… Oxalide © 2013 – Documents confidentiels
  • 7.
    Architecture logicielle UN BONEMPILEMENT APPLICATIF Proxy HTTP Architecture logicielle Varnish Apache/nginx PHP/FPM APC Memcached SolR MySQL Apache pour commencer C’est la stack à banaliser lorsque l’on fait du Magento et quand on a des projections de croissance forte Oxalide © 2013 – Documents confidentiels
  • 8.
    Architecture technique DES COUCHESBASSES OPTIMISEES Infrastructure Architecture Serveur Réseau n-frontal / répartiteur de charge Backoffice dédié … Bonne ressource au bon endroit Latence : memcached CDN local Oxalide © 2013 – Documents confidentiels
  • 9.
    Le caching LE TOWERDEFENCE DES RESSOURCES Oxalide © 2013 – Documents confidentiels
  • 10.
    Le coût d’unerequête LE PRINCIPE Un process Apache pèse près 500 Mo : c’est lourd faible important Temps de traitement et de réponse Oxalide © 2013 – Documents confidentiels
  • 11.
    Les différents caching LESPROTECTIONS DES RESSOURCES 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 100 % Oxalide © 2013 – Documents confidentiels
  • 12.
    Les différents caching LESPROTECTIONS DES RESSOURCES 1er rempart 2ème rempart 3ème rempart 4ème rempart Query Cache Apache APC 100 % 90 % Effet de levier qui peut multiplier par 100 la capacité du site Memcached 10 % Oxalide © 2013 – Documents confidentiels
  • 13.
    La politique decaching IMPLEMENTATION Des modules comme Power Cache et Turpentine Un chantier de webperformance est pertinent à ce niveau Niveau 3 Niveau 2 Niveau 1 Automatique et intégrée au CMS Automatique et avec les headers Manuel et webmastering Statique Dynamique Oxalide © 2013 – Documents confidentiels
  • 14.
    L’architecture de cache LEWARM-UP Niveau 1 Puissance Apache Si le cache est vide et passe en mode WARM-UP, les appels au serveur peuvent le faire tomber. Apache Oxalide © 2013 – Documents confidentiels
  • 15.
    L’architecture de cache LEWARM-UP 1. Si le cache est vide au lieu d’interroger le serveur, interroge un autre varnish Niveau 1 Puissance Niveau 2 Intelligence 2. Si tous les varnish sont vides, ils interrogent les varnish en seconde ligne. Apache Apache 3. Si ces derniers sont vides, il interrogent le serveur. Cette architecture garantie une bonne disponibilité du service Oxalide © 2013 – Documents confidentiels
  • 16.
    La politique decaching KISS : KEEP IT SMALL & SIMPLE Enterprise Edition gère l’ESI de manière native Edge Side Include : le cache partiel d’une page Cacher les éléments dynamiques Eviter les include Garder un découpage simple d’include Eviter les usines à gaz Flush : la mise à jour forcée du cache Eviter le flush : attention au temps de warm-up Maîtriser la taille du cache Préférer les noms des objets différents pour les mises à jour Peut être gérer via une API par exemple : Turpentine Oxalide © 2013 – Documents confidentiels
  • 17.
    Caching des objetsnon-cachage COMMENT GERER CES OBJETS ? Cookies Ajax ESI LES DONNEES UTILISATEURS Authentification Tunnel SSL Ne pas bootstrapper tout Magento pour les requêtes non-cachable LES DONNES PRODUITS VARIABLES Stock Prix promotionnels et/ou profilés PLUSIEURS ELEMENTS DYNAMIQUES D’UNE PAGE Le découpage des pages en zones statiques et dynamiques Oxalide © 2013 – Documents confidentiels
  • 18.
    La politique decaching MONITORING MESURER POUR L’AMÉLIORER La taille du cache Le nombre d’éléments cachés Pour le SEO : Attention au TTL trop long Indicateurs Point important pour le déploiement à l’étranger DevOps MAÎTRISER LES DEPLOIEMENTS Le temps de Warm-up Time stamper les évolutions applicatives Le temps de générations des pages à « l’origine » Le cache masque la performance à l’origine Oxalide © 2013 – Documents confidentiels
  • 19.
    Réussir son caching LESCLES DU SUCCES INTÉGREZ LA PERFORMANCE DANS LE PLANNING 1 Savoir stopper la course à la fonctionnalité Provisionner la ressource (homme + temps) pour la performance TMC et retour de TMC valoriser le travail sur la perf CONSIDÉREZ LA PROBLÉMATIQUE TOUT AU LONG DU PROJET Même combat que la sécurité 2 C’est un arbitrage fonctionnel et de planning FAVORISEZ LA COLLABORATION DEV ET OPS DevOps 3 Connaissance du développement et de l’infrastructure Oxalide © 2013 – Documents confidentiels
  • 20.
    L’hébergement Magento LES DIFFERENTSLEVIERS MOA Client eCommerçant L’intégrateur Magento DEVOPS Architecture logicielle Infrastructure Oxalide © 2013 – Documents confidentiels
  • 21.
    Des questions ? Oxalide© 2013 – Documents confidentiels
  • 22.
    Siège social &NOC : 25 Boulevard de Strasbourg – 75010 Paris Tel : +33 1 75 77 16 50 e-mail : commercial@oxalide.com Ou contactez directement : Maxime KURKDJIAN – Directeur associé Tel : +33 1 75 77 16 58 / mku@oxalide.com Sébastien LUCAS – Directeur associé Tel : +33 1 75 77 16 59 / slu@oxalide.com Oxalide © 2013 – Documents confidentiels
  • 23.
    Merci Oxalide © 2013– Documents confidentiels