{"id":7839,"date":"2012-09-24T10:00:25","date_gmt":"2012-09-24T08:00:25","guid":{"rendered":"http:\/\/www.ziserman.com\/blog\/?p=7839"},"modified":"2012-09-24T13:01:46","modified_gmt":"2012-09-24T11:01:46","slug":"programmation-performante-des-serveurs-web","status":"publish","type":"post","link":"https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/","title":{"rendered":"Programmation performante des serveurs web"},"content":{"rendered":"<p>La performance des serveurs web est un vrai sujet : on a besoin de sites qui r\u00e9pondent vite, pour vendre plus \ud83d\ude09<\/p>\n<p>Et un serveur web peut \u00eatre amen\u00e9 \u00e0 r\u00e9pondre \u00e0 \u00ab\u00a0pleins\u00a0\u00bb de requ\u00eates simultann\u00e9es.<\/p>\n<p>On peut palier de mani\u00e8re superficielle \u00e0 ces probl\u00e8mes avec du cache. Bonne id\u00e9e&#8230; mais les sites doivent de plus en plus \u00eatre personnalis\u00e9s, dynamiques. On peut donc \u00ab\u00a0cacher\u00a0\u00bb certaines ressources, mais pour les parties dynamiques, il faut faire autrement.<\/p>\n<p>Au coeur des serveurs web se pose donc la question de la programmation parall\u00e8le : faire tourner plusieurs programmes en parall\u00e8les pour r\u00e9pondre en m\u00eame temps \u00e0 plusieurs utilisateurs.<\/p>\n<p>Quand on programme avec les technologies \u00ab\u00a0normales\u00a0\u00bb, on ne se rend pas compte de tout \u00e7a : c&rsquo;est le serveur web qui g\u00e8re, de mani\u00e8re transparente pour le programmeur. en fait, \u00e0 chaque appel au serveur web, un fork est cr\u00e9\u00e9. Un fork, c&rsquo;est une unit\u00e9 d&rsquo;ex\u00e9cution ind\u00e9pendante. Chaque programme, pour chaque appel, est donc \u00ab\u00a0dans son coin\u00a0\u00bb.<\/p>\n<p>C&rsquo;est une bonne id\u00e9e, parce que on masque ce probl\u00e8me technique&#8230; Sauf que la gestion des forks n&rsquo;est pas tr\u00e8s optimis\u00e9e, et qu&rsquo;\u00e0 cr\u00e9er trop de forks, on fait rapidement tomber les serveurs.<\/p>\n<p>D&rsquo;ou l&rsquo;id\u00e9e de faire autrement. C&rsquo;est en particulier ce que propose certains environnements, tel node.js, bas\u00e9s sur des serveurs webs sp\u00e9cifiques (autre que apache donc).<\/p>\n<p>Dans ces environnements alternatifs, les diff\u00e9rents programmes ne sont pas ex\u00e9cut\u00e9s dans des forks ind\u00e9pendants.<\/p>\n<p>Pour g\u00e9rer la continuit\u00e9 entre les diff\u00e9rentes fonction, le programmeur doit mettre en place des proc\u00e9dures de call back, &#8230;<\/p>\n<p>Bref, je ne veux pas trop rentr\u00e9 dans les d\u00e9tails (d&rsquo;ailleurs, je ne suis plus programmeur, j&rsquo;atteints vite mes limites \ud83d\ude09 ).<\/p>\n<p>Mon sentiment sur cette histoire :<\/p>\n<p>Je comprends le chemin emprunt\u00e9 par ces solutions, c&rsquo;est pragmatique : puisque les serveurs web rament avec les technos de forks, on descend d&rsquo;un niveau, et on g\u00e8re la programmation parall\u00e8le directement.<\/p>\n<p>Mais sur le fond, je suis convaincu que la solution n&rsquo;est pas l\u00e0. Cela me semble compl\u00e8tement indispensable de masquer ces probl\u00e9matiques au programmeur, qui a d\u00e9j\u00e0 bien de quoi s&rsquo;occuper. Et si la programmation parall\u00e8le n&rsquo;est pas efficace, et bien il faut revoir l&rsquo;architecture du syst\u00e8me !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La performance des serveurs web est un vrai sujet : on a besoin de sites qui r\u00e9pondent vite, pour vendre plus \ud83d\ude09 Et un serveur web peut \u00eatre amen\u00e9 \u00e0 r\u00e9pondre \u00e0 \u00ab\u00a0pleins\u00a0\u00bb de requ\u00eates simultann\u00e9es. On peut palier de mani\u00e8re superficielle \u00e0 ces probl\u00e8mes avec du cache. Bonne id\u00e9e&#8230; mais les sites doivent de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[2],"tags":[52,139,339],"class_list":["post-7839","post","type-post","status-publish","format-standard","hentry","category-e-commerce","tag-programmation","tag-systeme-dinformation","tag-technologies-web"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Programmation performante des serveurs web - Ziserman.com<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Programmation performante des serveurs web - Ziserman.com\" \/>\n<meta property=\"og:description\" content=\"La performance des serveurs web est un vrai sujet : on a besoin de sites qui r\u00e9pondent vite, pour vendre plus \ud83d\ude09 Et un serveur web peut \u00eatre amen\u00e9 \u00e0 r\u00e9pondre \u00e0 \u00ab\u00a0pleins\u00a0\u00bb de requ\u00eates simultann\u00e9es. On peut palier de mani\u00e8re superficielle \u00e0 ces probl\u00e8mes avec du cache. Bonne id\u00e9e&#8230; mais les sites doivent de [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/\" \/>\n<meta property=\"og:site_name\" content=\"Ziserman.com\" \/>\n<meta property=\"article:published_time\" content=\"2012-09-24T08:00:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-09-24T11:01:46+00:00\" \/>\n<meta name=\"author\" content=\"Fran\u00e7ois\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ziserman\" \/>\n<meta name=\"twitter:site\" content=\"@ziserman\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fran\u00e7ois\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2012\\\/09\\\/24\\\/programmation-performante-des-serveurs-web\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2012\\\/09\\\/24\\\/programmation-performante-des-serveurs-web\\\/\"},\"author\":{\"name\":\"Fran\u00e7ois\",\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/#\\\/schema\\\/person\\\/f9bae013e59005579f4b86f162f89c72\"},\"headline\":\"Programmation performante des serveurs web\",\"datePublished\":\"2012-09-24T08:00:25+00:00\",\"dateModified\":\"2012-09-24T11:01:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2012\\\/09\\\/24\\\/programmation-performante-des-serveurs-web\\\/\"},\"wordCount\":410,\"commentCount\":12,\"publisher\":{\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/#\\\/schema\\\/person\\\/f9bae013e59005579f4b86f162f89c72\"},\"keywords\":[\"programmation\",\"Syst\u00e8me d'information\",\"Technologies Web\"],\"articleSection\":[\"e-commerce\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2012\\\/09\\\/24\\\/programmation-performante-des-serveurs-web\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2012\\\/09\\\/24\\\/programmation-performante-des-serveurs-web\\\/\",\"url\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2012\\\/09\\\/24\\\/programmation-performante-des-serveurs-web\\\/\",\"name\":\"Programmation performante des serveurs web - Ziserman.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/#website\"},\"datePublished\":\"2012-09-24T08:00:25+00:00\",\"dateModified\":\"2012-09-24T11:01:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2012\\\/09\\\/24\\\/programmation-performante-des-serveurs-web\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2012\\\/09\\\/24\\\/programmation-performante-des-serveurs-web\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/2012\\\/09\\\/24\\\/programmation-performante-des-serveurs-web\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programmation performante des serveurs web\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/\",\"name\":\"BLOG E-COMMERCE\",\"description\":\"Fran\u00e7ois Ziserman : entrepreneur, IA et \u00e9b\u00e9nisterie\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/#\\\/schema\\\/person\\\/f9bae013e59005579f4b86f162f89c72\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/#\\\/schema\\\/person\\\/f9bae013e59005579f4b86f162f89c72\",\"name\":\"Fran\u00e7ois\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g\",\"caption\":\"Fran\u00e7ois\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g\"},\"url\":\"https:\\\/\\\/www.ziserman.com\\\/blog\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Programmation performante des serveurs web - Ziserman.com","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/","og_locale":"fr_FR","og_type":"article","og_title":"Programmation performante des serveurs web - Ziserman.com","og_description":"La performance des serveurs web est un vrai sujet : on a besoin de sites qui r\u00e9pondent vite, pour vendre plus \ud83d\ude09 Et un serveur web peut \u00eatre amen\u00e9 \u00e0 r\u00e9pondre \u00e0 \u00ab\u00a0pleins\u00a0\u00bb de requ\u00eates simultann\u00e9es. On peut palier de mani\u00e8re superficielle \u00e0 ces probl\u00e8mes avec du cache. Bonne id\u00e9e&#8230; mais les sites doivent de [&hellip;]","og_url":"https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/","og_site_name":"Ziserman.com","article_published_time":"2012-09-24T08:00:25+00:00","article_modified_time":"2012-09-24T11:01:46+00:00","author":"Fran\u00e7ois","twitter_card":"summary_large_image","twitter_creator":"@ziserman","twitter_site":"@ziserman","twitter_misc":{"\u00c9crit par":"Fran\u00e7ois","Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/#article","isPartOf":{"@id":"https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/"},"author":{"name":"Fran\u00e7ois","@id":"https:\/\/www.ziserman.com\/blog\/#\/schema\/person\/f9bae013e59005579f4b86f162f89c72"},"headline":"Programmation performante des serveurs web","datePublished":"2012-09-24T08:00:25+00:00","dateModified":"2012-09-24T11:01:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/"},"wordCount":410,"commentCount":12,"publisher":{"@id":"https:\/\/www.ziserman.com\/blog\/#\/schema\/person\/f9bae013e59005579f4b86f162f89c72"},"keywords":["programmation","Syst\u00e8me d'information","Technologies Web"],"articleSection":["e-commerce"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/","url":"https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/","name":"Programmation performante des serveurs web - Ziserman.com","isPartOf":{"@id":"https:\/\/www.ziserman.com\/blog\/#website"},"datePublished":"2012-09-24T08:00:25+00:00","dateModified":"2012-09-24T11:01:46+00:00","breadcrumb":{"@id":"https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.ziserman.com\/blog\/2012\/09\/24\/programmation-performante-des-serveurs-web\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.ziserman.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Programmation performante des serveurs web"}]},{"@type":"WebSite","@id":"https:\/\/www.ziserman.com\/blog\/#website","url":"https:\/\/www.ziserman.com\/blog\/","name":"BLOG E-COMMERCE","description":"Fran\u00e7ois Ziserman : entrepreneur, IA et \u00e9b\u00e9nisterie","publisher":{"@id":"https:\/\/www.ziserman.com\/blog\/#\/schema\/person\/f9bae013e59005579f4b86f162f89c72"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ziserman.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.ziserman.com\/blog\/#\/schema\/person\/f9bae013e59005579f4b86f162f89c72","name":"Fran\u00e7ois","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g","caption":"Fran\u00e7ois"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/ba23809fd4de9b5f86f21715fd23efa8331e766f2929dc11d3ae98539ba237b4?s=96&d=mm&r=g"},"url":"https:\/\/www.ziserman.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/posts\/7839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/comments?post=7839"}],"version-history":[{"count":0,"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/posts\/7839\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/media?parent=7839"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/categories?post=7839"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ziserman.com\/blog\/wp-json\/wp\/v2\/tags?post=7839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}