Architecture web Cours
La saison 2013n aura pas lieu.
Reconversion deAlain Afflelou
Des bonnes etmauvaisesarchitectures
Caches et leur  importance
Principes ducloud
Load balancers     et proxys
Battle Plan pour             aujourd huiServeurs Web           Applications                Bases de données               ...
Serveurs Web
et le serveurLe client
1989                  CERN                  WWW                  HTTPTim Berners-Lee   HTML  (aka TimBL)
protocole://user:pass@f.q.d.n:port/chemin!                                           URI              URL          URN
WWW > Nexus
Récupérer les                     Ecouter sur le    fichiers sur le                     port 80           disqueExécuter de...
Requête 2                           Requête 3Requête 1                Requête 4                           Requête 5       ...
Requête 1            Requête 6          Requête 10    Requête 2          Requête 5        Requête 9             Requête 3 ...
Requête 1            Requête 6          Requête 10    Requête 2          Requête 5        Requête 9             Requête 3 ...
Apache
Evenements   Threads
Contenus        32             Threads        41 En ligne
1    2         3            4   5                       4             2Evenements                  3                      ...
Combien deserveurs web connaissez   vous ?
Apache
rambler.ru500 Millions de page vues         par jour
C10K2002                   30%                   TOP   Igor Sysoev    1000
V8 Google Javascript Engine                              Serveur Web Evenementiel           Push & Long Pollingvar http = ...
C est quoi lelong polling ?
Client JS                       Serveur λ             getNewEvents(); 1                   “null”             getNewEvents(...
Client JS                                    Node.js                       getNewEvents();Looooong HTTP                   ...
Applications
1993       Ken CoarNCSACGI1997RFC-3875
Common Gateway Interface                            Serveur Web            http                        http  Client       ...
1996FastCGI
PHP-FPM   PHP-FPM   PHP-FPM Drupal    Drupal    Drupal
Bases de données
1964Ansi/SparcPrix Turing1970SQLIBM               Charles              Bachman
Base de données hiérarchiqueBase dedonnées réseauBase de donnéesrelationnelleBase de données orientéeobjetBase de données ...
Base de données relationnelle
Normalisation
1995       David Axmark
MyISAM       InnoDB   Pas de                 ACIDtransactions  Lock de       Lock de   tables       lignes
C est quoi le   acid ?
AtomicitéCohérenceIsolationDurabilité
Atomicité
Cohérence
Isolation
Durabilité
SELECT nomFROM personnesWHERE id = 2
for (i=0; i<5000000; i++) {if personne[i].id == 2 break;}
Indexes
SELECT! DISTINCT(node.nid) AS nid,! node_data_field_contenu_1.field_contenu_1_nid ASnode_data_field_contenu_1_field_conten...
Théorème CAP
Consistency      Availability2         Partition         Tolerance
NoSQL1998        Carlo Strozzi
MongoDB Big Table      CouchDBVoldemort     CassandraHyperTable
use mydb!   j = { name3:}!   k = { x :    "mongo" }!      db.things.insert( j )!      db.things.insert( k )!
Collections
db.inventory.find( !{ type: food, !  price: { !           $lt: 9.95 } !} )!
Sharding
CDN
Akamai =Intélligent
TelCoCDN
@mtopolovmtopolov@adyax.com
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Prochain SlideShare
Chargement dans…5
×

Cours 2/3 - Architecture Web

2 493 vues

Publié le

Cours donné à l'HETIC aux H4. Architecture Web.
Ce cours traite des serveurs web, bases de données, application et scripts ainsi que des CDN.

Publié dans : Technologie
0 commentaire
4 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 493
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
196
Commentaires
0
J’aime
4
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Cours 2/3 - Architecture Web

  1. 1. Architecture web Cours
  2. 2. La saison 2013n aura pas lieu.
  3. 3. Reconversion deAlain Afflelou
  4. 4. Des bonnes etmauvaisesarchitectures
  5. 5. Caches et leur importance
  6. 6. Principes ducloud
  7. 7. Load balancers et proxys
  8. 8. Battle Plan pour aujourd huiServeurs Web Applications Bases de données CDN
  9. 9. Serveurs Web
  10. 10. et le serveurLe client
  11. 11. 1989 CERN WWW HTTPTim Berners-Lee HTML (aka TimBL)
  12. 12. protocole://user:pass@f.q.d.n:port/chemin! URI URL URN
  13. 13. WWW > Nexus
  14. 14. Récupérer les Ecouter sur le fichiers sur le port 80 disqueExécuter des Analyser les scripts / connexions H applications Gérer plusieurs Envoyer le connexions contenu simultanées demandé
  15. 15. Requête 2 Requête 3Requête 1 Requête 4 Requête 5 Requête 7 Requête 6
  16. 16. Requête 1 Requête 6 Requête 10 Requête 2 Requête 5 Requête 9 Requête 3 Requête 7 Requête 4 Requête 81 2 3 4 5 6 7 8 9 10
  17. 17. Requête 1 Requête 6 Requête 10 Requête 2 Requête 5 Requête 9 Requête 3 Requête 7 R eq Requête 4 Requête 8 uê te1 2 3 4 5 6 7 8 9 10 8
  18. 18. Apache
  19. 19. Evenements Threads
  20. 20. Contenus 32 Threads 41 En ligne
  21. 21. 1 2 3 4 5 4 2Evenements 3 5 1
  22. 22. Combien deserveurs web connaissez vous ?
  23. 23. Apache
  24. 24. rambler.ru500 Millions de page vues par jour
  25. 25. C10K2002 30% TOP Igor Sysoev 1000
  26. 26. V8 Google Javascript Engine Serveur Web Evenementiel Push & Long Pollingvar http = require(http);! !http.createServer(! function (request, response) {! response.writeHead(200, {Content-Type: text/plain});! response.end(Hello Worldn);! }!).listen(8000);! !console.log(Server running at http://localhost:8000/);!
  27. 27. C est quoi lelong polling ?
  28. 28. Client JS Serveur λ getNewEvents(); 1 “null” getNewEvents(); 2 Hello World Event “null” getNewEvents(); 3 “{ "Message": "Hello World!" }”
  29. 29. Client JS Node.js getNewEvents();Looooong HTTP Hello World Event “{ "Message": "Hello World!" }”
  30. 30. Applications
  31. 31. 1993 Ken CoarNCSACGI1997RFC-3875
  32. 32. Common Gateway Interface Serveur Web http http Client stdout CGI stdin1 requête = 1 process Application
  33. 33. 1996FastCGI
  34. 34. PHP-FPM PHP-FPM PHP-FPM Drupal Drupal Drupal
  35. 35. Bases de données
  36. 36. 1964Ansi/SparcPrix Turing1970SQLIBM Charles Bachman
  37. 37. Base de données hiérarchiqueBase dedonnées réseauBase de donnéesrelationnelleBase de données orientéeobjetBase de données orientéedocumentsBase de données XMLBasede données orientée composant
  38. 38. Base de données relationnelle
  39. 39. Normalisation
  40. 40. 1995 David Axmark
  41. 41. MyISAM InnoDB Pas de ACIDtransactions Lock de Lock de tables lignes
  42. 42. C est quoi le acid ?
  43. 43. AtomicitéCohérenceIsolationDurabilité
  44. 44. Atomicité
  45. 45. Cohérence
  46. 46. Isolation
  47. 47. Durabilité
  48. 48. SELECT nomFROM personnesWHERE id = 2
  49. 49. for (i=0; i<5000000; i++) {if personne[i].id == 2 break;}
  50. 50. Indexes
  51. 51. SELECT! DISTINCT(node.nid) AS nid,! node_data_field_contenu_1.field_contenu_1_nid ASnode_data_field_contenu_1_field_contenu_1_nid,! node.TYPE AS node_type,! node.vid AS node_vid,! node_data_field_contenu_1.field_contenu_2_nid ASnode_data_field_contenu_1_field_contenu_2_nid,! node_data_field_contenu_1.field_contenu_3_nid ASnode_data_field_contenu_1_field_contenu_3_nid,! node_data_field_contenu_1.field_contenu_4_nid ASnode_data_field_contenu_1_field_contenu_4_nid,! node_data_field_contenu_1.field_contenu_5_nid ASnode_data_field_contenu_1_field_contenu_5_nid,! node_data_field_contenu_1.field_contenu_6_nid ASnode_data_field_contenu_1_field_contenu_6_nid,! node_data_field_date.field_date_value AS node_data_field_date_field_date_value!FROM node node!LEFT JOIN content_field_date node_data_field_date ON node.vid = node_data_field_date.vid!LEFT JOIN content_type_une node_data_field_contenu_1 ON node.vid =node_data_field_contenu_1.vid!WHERE! ((node.TYPE IN (tagazok)) AND (node.STATUS <> 0))! AND (DATE_FORMAT(STR_TO_DATE(node_data_field_date.field_date_value, %Y-%m-%dT%T), %Y-%m-%dT%H:%i:%s)<= 2009-06-30T00:55:00)!ORDER BY node_data_field_date_field_date_value DESC!LIMIT 0,1!
  52. 52. Théorème CAP
  53. 53. Consistency Availability2 Partition Tolerance
  54. 54. NoSQL1998 Carlo Strozzi
  55. 55. MongoDB Big Table CouchDBVoldemort CassandraHyperTable
  56. 56. use mydb! j = { name3:}! k = { x : "mongo" }! db.things.insert( j )! db.things.insert( k )!
  57. 57. Collections
  58. 58. db.inventory.find( !{ type: food, ! price: { ! $lt: 9.95 } !} )!
  59. 59. Sharding
  60. 60. CDN
  61. 61. Akamai =Intélligent
  62. 62. TelCoCDN
  63. 63. @mtopolovmtopolov@adyax.com

×