Download - Cours 3/3 - Architecture Web

Transcript
Page 1: Cours 3/3 - Architecture Web

Architecture web Cours

mercredi 3 avril 13

Page 2: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 3: Cours 3/3 - Architecture Web

Visiblement Koh-Lanta 2014, n’aura pas lieu, non plus...

mercredi 3 avril 13

Page 4: Cours 3/3 - Architecture Web

Lindsay Lohan a annoncé sur Twitter qu’elle était enceinte...

mercredi 3 avril 13

Page 5: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 6: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 7: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 8: Cours 3/3 - Architecture Web

Battle Plan pour aujourd’hui

mercredi 3 avril 13

Page 9: Cours 3/3 - Architecture Web

Geolocalisation

Battle Plan pour aujourd’hui

mercredi 3 avril 13

Page 10: Cours 3/3 - Architecture Web

Geolocalisation Moteurs de recherche

Battle Plan pour aujourd’hui

mercredi 3 avril 13

Page 11: Cours 3/3 - Architecture Web

Geolocalisation Moteurs de recherche

Test de performance

Battle Plan pour aujourd’hui

mercredi 3 avril 13

Page 12: Cours 3/3 - Architecture Web

Geolocalisation Moteurs de recherche

Test de performance Sizing

Battle Plan pour aujourd’hui

mercredi 3 avril 13

Page 13: Cours 3/3 - Architecture Web

Geolocalisation Moteurs de recherche

Test de performance Sizing

Battle Plan pour aujourd’hui

Déploiements

mercredi 3 avril 13

Page 14: Cours 3/3 - Architecture Web

Geolocalisation Moteurs de recherche

Test de performance Sizing

Battle Plan pour aujourd’hui

Déploiements Tests

mercredi 3 avril 13

Page 15: Cours 3/3 - Architecture Web

Geolocalisation Moteurs de recherche

Test de performance Sizing

Battle Plan pour aujourd’hui

Déploiements Tests

Exemple

mercredi 3 avril 13

Page 16: Cours 3/3 - Architecture Web

Moteur de recherche

mercredi 3 avril 13

Page 17: Cours 3/3 - Architecture Web

Comment fonctionne un moteur de recherche ?

mercredi 3 avril 13

Page 18: Cours 3/3 - Architecture Web

1. Normalisation

mercredi 3 avril 13

Page 19: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 20: Cours 3/3 - Architecture Web

J’ai mangé du chocolat

[je], [manger], [chocolat]mercredi 3 avril 13

Page 21: Cours 3/3 - Architecture Web

2. Poids des mots

mercredi 3 avril 13

Page 22: Cours 3/3 - Architecture Web

Extraordinaire loi Zipf

mercredi 3 avril 13

Page 23: Cours 3/3 - Architecture Web

f(n) = K / n

la fréquence d'occurrence f(n) d'un mot est liée à son rang n dans l'ordre des fréquences par une loi de la forme

Mandelbrot ShannonParetomercredi 3 avril 13

Page 24: Cours 3/3 - Architecture Web

TF/IDF

mercredi 3 avril 13

Page 25: Cours 3/3 - Architecture Web

Doc 1 Doc 2 Doc 3

Son nom est célébré par le bocage qui frémit, et par le ruisseau qui murmure, les vents l’emportent jusqu’à l’arc céleste, l’arc de grâce et de consolation que sa main tendit dans les nuages.

À peine distinguait-on deux buts à l’extrémité de la carrière : des chênes ombrageaient l’un, autour de l’autre des palmiers se dessinaient dans l’éclat du soir.

Ah ! le beau temps de mes travaux poétiques ! les beaux jours que j’ai passés près de toi ! Les premiers, inépuisables de joie, de paix et de liberté ; les derniers, empreints d’une mélancolie qui eut bien aussi ses charmes.

QUI ?

mercredi 3 avril 13

Page 26: Cours 3/3 - Architecture Web

TF1 = 2 / (3 + 7x2 + 21) = 2/38

mercredi 3 avril 13

Page 27: Cours 3/3 - Architecture Web

IDF1 = log (3 / 2)

mercredi 3 avril 13

Page 28: Cours 3/3 - Architecture Web

tfidf1 = 2/38 x log (3/2) = 0,0092

tfidf2 = 0 x log (3/2) = 0

tfidf3 = 1/40 x log (3/2) = 0,0044

mercredi 3 avril 13

Page 29: Cours 3/3 - Architecture Web

3. Indexation

mercredi 3 avril 13

Page 30: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 31: Cours 3/3 - Architecture Web

Poids

mercredi 3 avril 13

Page 32: Cours 3/3 - Architecture Web

PoidsLocalisation

mercredi 3 avril 13

Page 33: Cours 3/3 - Architecture Web

PoidsLocalisation

Sémantique

mercredi 3 avril 13

Page 34: Cours 3/3 - Architecture Web

PoidsLocalisation

SémantiquePopularité

mercredi 3 avril 13

Page 35: Cours 3/3 - Architecture Web

PoidsLocalisation

SémantiquePopularité

Datemercredi 3 avril 13

Page 36: Cours 3/3 - Architecture Web

4. Recherche

mercredi 3 avril 13

Page 37: Cours 3/3 - Architecture Web

5. Facettes

mercredi 3 avril 13

Page 38: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 39: Cours 3/3 - Architecture Web

1990

Alam Emtage

Montréal

Archie

mercredi 3 avril 13

Page 40: Cours 3/3 - Architecture Web

Quels moteurs de recherche connaissez-

vous ? mercredi 3 avril 13

Page 41: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 42: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 43: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 44: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 45: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 46: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 47: Cours 3/3 - Architecture Web

Geolocalisation

mercredi 3 avril 13

Page 48: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 49: Cours 3/3 - Architecture Web

Cylindrique

Conique

Polaire

mercredi 3 avril 13

Page 50: Cours 3/3 - Architecture Web

Distance de surface

mercredi 3 avril 13

Page 51: Cours 3/3 - Architecture Web

SELECT poi_id FROM poi AS p WHERE 6371 * 2 * ATAN2 ( SQRT ( ( SIN( ( RADIANS(p.latitude - @lat) / 2 ) * SIN( RADIANS(p.latitude - @lat) / 2 ) + COS ( RADIANS (@lat )) * COS ( RADIANS ( p.latitude ) ) * SIN ( RADIANS(p.longitude - @long) / 2 ) * SIN ( RADIANS(p.longitude - @long) / 2 ) ) ) , SQRT ( 1 - (SIN( RADIANS(p.latitude - @lat) / 2 ) * SIN( RADIANS(p.latitude - @lat) / 2 ) + COS ( RADIANS (@lat) ) * COS ( RADIANS (p.latitude) ) * SIN ( RADIANS(p.longitude - @long) / 2 ) * SIN ( RADIANS(p.longitude - @long) / 2 ) ) ) ) < @radius;

Récupération de POI classé par la distance par rapport à un point

sur la terre

mercredi 3 avril 13

Page 52: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 53: Cours 3/3 - Architecture Web

{ loc : { type : "Point" , coordinates : [ 40, 5 ]} }

db.collection.ensureIndex( { loc : "2dsphere" } )

db.places.find( { loc : { $near : { $geometry : { type : "Point" , coordinates: [ 40 , 5 ] } , $maxDistance : 100 } } } )

mercredi 3 avril 13

Page 54: Cours 3/3 - Architecture Web

db.places.find( { loc : { $geoWithin : { $centerSphere : [ [ 88 , 30 ] , 10 / 3959 ] } } } )

db.places.find( { loc : { $geoIntersects : { $geometry : { type : "Polygon" , coordinates: [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ] ] } } } } )

mercredi 3 avril 13

Page 55: Cours 3/3 - Architecture Web

<field name="store">45.17614,-93.87341</field><field name="store">40.7143,-74.006</field><field name="store">37.7752,-122.4232</field>

<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>

&q=*:*&fq={!geofilt pt=45.15,-93.85 sfield=store d=5}

"response":{"numFound":8,"start":0,"docs":[ { "name":"Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133", "store":"45.17614,-93.87341"}, { "name":"Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300", "store":"45.17614,-93.87341"},

mercredi 3 avril 13

Page 56: Cours 3/3 - Architecture Web

Déploiements

mercredi 3 avril 13

Page 57: Cours 3/3 - Architecture Web

Sources

mercredi 3 avril 13

Page 58: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 59: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 60: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 61: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 62: Cours 3/3 - Architecture Web

DEV TEST PRE-PROD PROD

CODE

BASE

mercredi 3 avril 13

Page 63: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 64: Cours 3/3 - Architecture Web

Checkout du code

mercredi 3 avril 13

Page 65: Cours 3/3 - Architecture Web

Checkout du codeSauvegarder la base

mercredi 3 avril 13

Page 66: Cours 3/3 - Architecture Web

Checkout du codeSauvegarder la baseScripts de mise à jour

mercredi 3 avril 13

Page 67: Cours 3/3 - Architecture Web

Checkout du codeSauvegarder la baseScripts de mise à jour

Copier les fichiers

mercredi 3 avril 13

Page 68: Cours 3/3 - Architecture Web

Checkout du codeSauvegarder la baseScripts de mise à jour

Copier les fichiersMettre à jour la conf

mercredi 3 avril 13

Page 69: Cours 3/3 - Architecture Web

Checkout du codeSauvegarder la baseScripts de mise à jour

Copier les fichiersMettre à jour la conf

Lancer la revue du code

mercredi 3 avril 13

Page 70: Cours 3/3 - Architecture Web

Checkout du codeSauvegarder la baseScripts de mise à jour

Copier les fichiersMettre à jour la conf

Lancer la revue du codeTests automatiques

mercredi 3 avril 13

Page 71: Cours 3/3 - Architecture Web

Capistrano & Webistrano

mercredi 3 avril 13

Page 72: Cours 3/3 - Architecture Web

Intégration Continue

mercredi 3 avril 13

Page 73: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 74: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 75: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 76: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 77: Cours 3/3 - Architecture Web

Tests automatiques

mercredi 3 avril 13

Page 78: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 79: Cours 3/3 - Architecture Web

Selenium

mercredi 3 avril 13

Page 80: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 81: Cours 3/3 - Architecture Web

Couverture

mercredi 3 avril 13

Page 82: Cours 3/3 - Architecture Web

Tests de performance

mercredi 3 avril 13

Page 83: Cours 3/3 - Architecture Web

Quels types de test de perf.

vous connaissez ?

mercredi 3 avril 13

Page 84: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 85: Cours 3/3 - Architecture Web

Test de charge

mercredi 3 avril 13

Page 86: Cours 3/3 - Architecture Web

Test de chargeTest des transactions

mercredi 3 avril 13

Page 87: Cours 3/3 - Architecture Web

Test de chargeTest des transactions

Test de stress

mercredi 3 avril 13

Page 88: Cours 3/3 - Architecture Web

Test de chargeTest des transactions

Test de stressTest de montée en charge

mercredi 3 avril 13

Page 89: Cours 3/3 - Architecture Web

Test de chargeTest des transactions

Test de stressTest de montée en charge

Test aux limites

mercredi 3 avril 13

Page 90: Cours 3/3 - Architecture Web

Test de chargeTest des transactions

Test de stressTest de montée en charge

Test aux limitesTests d’endurance

mercredi 3 avril 13

Page 91: Cours 3/3 - Architecture Web

Pondeuses

mercredi 3 avril 13

Page 92: Cours 3/3 - Architecture Web

Scénario

mercredi 3 avril 13

Page 93: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 94: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 95: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 96: Cours 3/3 - Architecture Web

Log Apache

mercredi 3 avril 13

Page 97: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 98: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 99: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 100: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 101: Cours 3/3 - Architecture Web

1 pixel IFRAME trick

mercredi 3 avril 13

Page 102: Cours 3/3 - Architecture Web

Sizing

mercredi 3 avril 13

Page 103: Cours 3/3 - Architecture Web

RAM

mercredi 3 avril 13

Page 104: Cours 3/3 - Architecture Web

Charge Nominale

mercredi 3 avril 13

Page 105: Cours 3/3 - Architecture Web

Charge Nominale

Front 1

mercredi 3 avril 13

Page 106: Cours 3/3 - Architecture Web

Charge Nominale

Front 1 Front 2

mercredi 3 avril 13

Page 107: Cours 3/3 - Architecture Web

Charge Nominale

Front 1 Front 2

mercredi 3 avril 13

Page 108: Cours 3/3 - Architecture Web

Charge Nominale

Front 1 Front 2

mercredi 3 avril 13

Page 109: Cours 3/3 - Architecture Web

Charge Nominale

Front 1 Front 2 50%

mercredi 3 avril 13

Page 110: Cours 3/3 - Architecture Web

Charge Nominale

Front 1 Front 2 50%

Front 1

mercredi 3 avril 13

Page 111: Cours 3/3 - Architecture Web

Charge Nominale

Front 1 Front 2 50%

Front 1 ...

mercredi 3 avril 13

Page 112: Cours 3/3 - Architecture Web

Charge Nominale

Front 1 Front 2 50%

Front 1 ... Front 5

mercredi 3 avril 13

Page 113: Cours 3/3 - Architecture Web

Charge Nominale

Front 1 Front 2 50%

Front 1 ... Front 5

mercredi 3 avril 13

Page 114: Cours 3/3 - Architecture Web

Charge Nominale

Front 1 Front 2 50%

Front 1 ... Front 5

mercredi 3 avril 13

Page 115: Cours 3/3 - Architecture Web

Charge Nominale

Front 1 Front 2 50%

Front 1 ... Front 5 80%

mercredi 3 avril 13

Page 116: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 117: Cours 3/3 - Architecture Web

20 000

mercredi 3 avril 13

Page 118: Cours 3/3 - Architecture Web

20 00090%

mercredi 3 avril 13

Page 119: Cours 3/3 - Architecture Web

20 00090%

1000

mercredi 3 avril 13

Page 120: Cours 3/3 - Architecture Web

20 00090%

100010%

mercredi 3 avril 13

Page 121: Cours 3/3 - Architecture Web

Combien de trafic je peux accepter ?

mercredi 3 avril 13

Page 122: Cours 3/3 - Architecture Web

Un peu de maths :

Cmax = charge maximale

Ca = Charge d’un utilisateur anonyme

Cc = Charge d’un utilisateur connecté

Xa = nombre max d’utilisateurs anonymes

Xc = nombre max d’utilisateurs connecté

mercredi 3 avril 13

Page 123: Cours 3/3 - Architecture Web

Un peu de maths :

Cmax = 20000*Ca*0,5 = 1000*Cc*0,5 (50% nominal)

XaCa + XcCc = Cmax

Xa = 9Xc (90%)

9Xc*Cmax/10000 + Xc*Cmax/500 = Cmax

Xc = 1/(9/10000 + 1/500) = 344

Xa = 9 * 344 = 3103

mercredi 3 avril 13

Page 124: Cours 3/3 - Architecture Web

HAmercredi 3 avril 13

Page 125: Cours 3/3 - Architecture Web

SPOFmercredi 3 avril 13

Page 126: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 127: Cours 3/3 - Architecture Web

Load Balancer

Front1 Front2 Front3 Front4

Back1 Back2

mercredi 3 avril 13

Page 128: Cours 3/3 - Architecture Web

Load Balancer

Front1 Front2 Front3 Front4

Back1 Back2

SPOF

mercredi 3 avril 13

Page 129: Cours 3/3 - Architecture Web

Load Balancer 1 Load Balancer 2

Super Load Balancer ?

mercredi 3 avril 13

Page 130: Cours 3/3 - Architecture Web

Load Balancer 1 Load Balancer 2

Super Load Balancer ?

SPOF

mercredi 3 avril 13

Page 131: Cours 3/3 - Architecture Web

IP Flotante

mercredi 3 avril 13

Page 132: Cours 3/3 - Architecture Web

Load Balancer Actif192.168.0.1

Load Balancer Passif192.168.0.2

Ip Flotante : 192.168.1.1

mercredi 3 avril 13

Page 133: Cours 3/3 - Architecture Web

LB1 LB2

Ip Flotante

Front1 Front2 Front3 Front4

MySQL1Actif

MySQL2Passif

Replication

mercredi 3 avril 13

Page 134: Cours 3/3 - Architecture Web

LB1 LB2

Ip Flotante

Front1 Front2 Front3 Front4

MySQL1Actif

MySQL2Passif

Replication

SPOFmercredi 3 avril 13

Page 135: Cours 3/3 - Architecture Web

heart beat

mercredi 3 avril 13

Page 136: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 137: Cours 3/3 - Architecture Web

mercredi 3 avril 13

Page 138: Cours 3/3 - Architecture Web

mercredi 3 avril 13