Architecture initiale 2000-2006


Pas de CDN


aucun cache !


Nombre de serveurs qui augmente avec le trafic


Premier CDN Akamai 2008



un cdn pour éviter de multiplier les serveurs origines.
 

On ne craint plus les pics de charge


Cache hiérarchique (qq 10aines de milliers de serveurs)


Couverture mondiale


gzip on the fly


Le multi CDN avec Cedexis

2012


Plusieurs conf à gérer !


conf détaillée chez Akamai

ttl origine chez Limelight


Flush à faire 2 fois

3 gros Varnish ATOS devant les fronts


Un niveau de cache supplémentaire






L'architecture 2016


Introduction des CDN boxs

(sept 2013)


Varnish !


Coût de la bande passante


BP limitée et système de freinage (pénalité)

Le fonctionnement du cache


basé sur headers transmis

max-age : durée de cache (ttl)

last modified

expires

eTag





Le choix des ttl sur www.lequipe.fr - Akamai



css, js : 7j

jpeg, jpg : 1h

html : 1mn

json : 30s

fonts : 60j

+ éventuellement règles spécifiques


Comment choisir le bon ttl ?


Les ttl se configurent dans la conf Apache ou le .htaccess ouau niveau du Varnish ATOS ou au niveau du CDN (Akamai seulement)

 

TTLs configurés pour iphdata à l'origine :

· Css, gif, ico, js, mp3, pdf, png : 7 jours

· Jpeg, jpg, swf : 30 minutes

· htm, html, xml, txt et json : 30 secondes

· cur : 30 jours

· data : 3 minutes

· /Football/logos/*.(gif|jpg|jpeg|png) : 30 jours

· Index.html : 1 minute

/iPhoneDatas/mediametrie/EFR_(IPHONE|IPAD|ANDROID).json : 1 jour

· Eot, svg, ttf, woff, woff2 : 60 jours

· /iPhoneDatas/EFR/STD/ALL/V2/navigation.json :10 minutes

· /iPhoneDatas/EFR/STD/ALL/V1/(infapp|abonnements).json : 10 minutes

· /iPhoneDatas/EFR/STD/ALL/V1/Premium/today.json : 3 minutes

· unesQuoti.jpg dans /iPhoneDatas/EFR : 60 minutes

· jpg dans /iPhoneDatas/EFR/Quotidien è 60 minutes

· json ou html dans /iPhoneDatas/EFR/Edito/Articles/201(.*) : 2 minutes



compression gzip ?

un browser moderne envoie

Accept-Encoding: gzip,deflate

En cas de nouvelle visite sur une page le nav peut envoyer 

If-Modified-Since: Sat, 28 Nov 2009 06:38:19 GMT

Rep 304 (not modified)ou 200


Les query string pour les ttl longs et comment les choisir


Les headers http à l'origine

exemple sur http://orig-iphdata.lequipe.fr/iPhoneDatas/EFR/STD/ALL/V6/home.json



Status: HTTP/1.1 200 OK

Date: Sun, 19 Jun 2016 14:58:02 GMT

Server: Apache

Last-Modified: Sun, 19 Jun 2016 14:57:40 GMT

Accept-Ranges: bytes

Content-Length: 91978

Cache-Control: max-age=60

Expires: Sun, 19 Jun 2016 14:59:02 GMT

Connection: close

Content-Type: application/json


Les headers http via Varnish ATOS

exemple sur http://varnish-iphdata.lequipe.fr/iPhoneDatas/EFR/STD/ALL/V6/home.json


Status: HTTP/1.1 200 OK

Server: Apache

Last-Modified: Sun, 19 Jun 2016 14:52:55 GMT

Cache-Control: max-age=60

Expires: Sun, 19 Jun 2016 14:55:14 GMT

Content-Type: application/json

Content-Length: 93736

Accept-Ranges: bytes

Date: Sun, 19 Jun 2016 14:54:56 GMT

X-Varnish: 1540595792 1540587109

Via: 1.1 varnish

Connection: close

X-Varnish-Cache: HIT


Les headers http

exemple sur http://iphdata.lequipe.fr/iPhoneDatas/EFR/STD/ALL/V6/home.json



Status: HTTP/1.1 200 OK

Server: Apache

Last-Modified: Tue, 14 Jun 2016 12:00:44 GMT

Cache-Control: max-age=60

Expires: Tue, 14 Jun 2016 12:04:19 GMT

Content-Type: application/json

Content-Length: 94009

Date: Tue, 14 Jun 2016 12:03:23 GMT

Via: 1.1 varnish

X-Varnish-Cache: HIT

X-VarnishAtos: 3907289337 3907288698

Age: 60

Via: 1.1 varnish-v4 (CDN Box ?)

X-VarnishBox: 1018291397 1022307421

Connection: close

Accept-Ranges: bytes

Taux de cache chez Akamai

Php centralisé pour décache (flush, purge)

Historiquement on utilise /Php/purge_akamai.php

qui utilise un fichier de config par domaine et CDN purge_akamai_config.php


$arrPurgeConfig = array(

'www.lequipe.fr' => array(

VARNISH,

AKAMAI,

LIMELIGHT

),

'abonnes.lequipe.fr' => array(

VARNISH,

LIMELIGHT

),

'iphdata.lequipe.fr' => array(

VARNISH,

AKAMAI,

LIMELIGHT,

DEDIBOX,

OVH

),

Outils de suivi et surveillance 


conf Akamai 

Limelight

Décisions Cedexis 



Create a presentation like this one
Share it on social medias
Share it on your own
Share it on social medias
Share it on your own

How to export your presentation

Please use Google Chrome to obtain the best export results.


How to export your presentation

Cache et CDN

by alboury36

21 views

Public - 5/28/16, 1:30 PM