{"id":1525,"date":"2014-02-08T13:50:17","date_gmt":"2014-02-08T12:50:17","guid":{"rendered":"http:\/\/www.laurentbourrelly.com\/blog\/?p=1525"},"modified":"2014-02-08T13:50:17","modified_gmt":"2014-02-08T12:50:17","slug":"petite-lecon-de-sysadmin-a-la-cnil","status":"publish","type":"post","link":"https:\/\/www.laurentbourrelly.com\/blog\/1525.php","title":{"rendered":"Petite le\u00e7on de sysadmin \u00e0 la CNIL"},"content":{"rendered":"<p><a href=\"https:\/\/www.laurentbourrelly.com\/blog\/wp-content\/uploads\/2014\/02\/404-erreur-cnil.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft  wp-image-1529\" style=\"border: 0px; margin: 0px 10px;\" alt=\"404-erreur-cnil\" src=\"https:\/\/www.laurentbourrelly.com\/blog\/wp-content\/uploads\/2014\/02\/404-erreur-cnil.png\" width=\"202\" height=\"114\" \/><\/a>Quand Goliath s&rsquo;attaque \u00e0 David, \u00e7a fait mal.<\/p>\n<p>En pointant en message en page d&rsquo;accueil du moteur vers le site de la CNIL, qui vient de condamner Google \u00e0 une modeste amende de 150 000 euros (une micro paille pour ce g\u00e9ant qui r\u00e9alise 200 milliards de chiffre d&rsquo;affaires par an), Google a abattu par un d\u00e9ni de service non intentionnel l&rsquo;institution fran\u00e7aise r\u00e9gissant les r\u00e8gles informatiques et libert\u00e9.<!--more--><\/p>\n<h1>CNIL DDoS by Google<\/h1>\n<p><a href=\"https:\/\/www.laurentbourrelly.com\/blog\/wp-content\/uploads\/2014\/02\/cnil-google.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1526\" alt=\"cnil-google\" src=\"https:\/\/www.laurentbourrelly.com\/blog\/wp-content\/uploads\/2014\/02\/cnil-google.png\" width=\"625\" height=\"435\" \/><\/a><\/p>\n<p>Le message a eu son effet \u00a0: le site de la CNIL est tomb\u00e9, en quelques secondes, sous la masse de trafic qui s&rsquo;est abattue sur le site . C&rsquo;est une action bien \u00e9videmment involontaire de la part de Google, mais le coup aurait pu \u00eatre \u00e9vit\u00e9 si les responsables techniques de la CNIL avaient pris quelques pr\u00e9cautions.<\/p>\n<p><a href=\"https:\/\/www.laurentbourrelly.com\/blog\/wp-content\/uploads\/2014\/02\/cnil-google-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1527\" alt=\"cnil-google-2\" src=\"https:\/\/www.laurentbourrelly.com\/blog\/wp-content\/uploads\/2014\/02\/cnil-google-2.png\" width=\"617\" height=\"672\" \/><\/a><br \/>\nSource images \u00a0: <a href=\"http:\/\/korben.info\/rigoole-avec-google.html\">Korben<\/a><\/p>\n<p>En parlant de ma propre exp\u00e9rience, subissant tous les jours des trafic de +100 000 connect\u00e9s en simultan\u00e9, voici quelques-unes des recommandations que je peux \u00a0sugg\u00e9rer \u00e0 la CNIL :<\/p>\n<p>&#8211; Du Reverse Proxying et toujours du\u00a0 Reverse Proxying\u00a0 !<\/p>\n<p>Un serveur Web passe une bonne partie de son temps CPU \u00e0 g\u00e9rer l\u2019acquittement des connections Web (TCP). Le soulager de cette t\u00e2che augmente sa capacit\u00e9 de mont\u00e9e en charge.<\/p>\n<p>&#8211; Si le code ne tient pas la charge&#8230; Alors le cache\u00a0 !<\/p>\n<p>&#8211; Apr\u00e8s du profiling\u00a0\u00a0 (identifications des goulets d&rsquo;\u00e9tranglement), et si les refontes de code sont trop lourdes, il faut mettre le site en cache. Pas le choix.<\/p>\n<p>Diff\u00e9rentes m\u00e9thodes s&rsquo;offrent \u00e0 vous\u00a0 :<\/p>\n<ol>\n<li>Le Reverse Proxy Cache\u00a0 : l&rsquo;application doit discuter avec le reverse proxy cache pour savoir quand d\u00e9livrer les pages aux internautes. A savoir\u00a0 : s&rsquo;ils sont authentifi\u00e9s ou non authentifi\u00e9s.<br \/>\nSi ce n&rsquo;est pas possible alors seuls les objets statiques (images, css, js) devront \u00eatre mis en cache.<\/li>\n<li>Une m\u00e9thode \u00ab\u00a0vieille \u00e9cole\u00a0\u00bb mais n\u00e9anmoins redoutable\u00a0 :\u00a0 la g\u00e9n\u00e9ration des pages statiques ou de blocs de pages statiques. Ce seul point aurait sans doute \u00e9vit\u00e9 au site de la CNIL de \u00a0\u00ab\u00a0tomber\u00a0\u00bb.<\/li>\n<li>S\u00e9parez la partie de l&rsquo;interpr\u00e9tation du code de la partie du serveur Web.Concr\u00e8tement\u00a0 : il ne faut pas de modules PHP int\u00e9gr\u00e9s dans Apache. Pr\u00e9f\u00e9rez un serveur d\u2019interpr\u00e9tation PHP et un Serveur Web distinct.<\/li>\n<li>Choisissez et benchez vos serveur Web.Par exemple Nginx a une architecture logicielle \u00e9prouv\u00e9e, et est \u00ab\u00a0 reverse proxyfiable\u00a0 \u00bb derri\u00e8re un \u00e9quipement r\u00e9seau supportant 100 000 connect\u00e9s.<\/li>\n<li>Renforcez les bases de donn\u00e9es, via du clustering (r\u00e9plication active \u2013 active) et mettez en place de la r\u00e9partition de charge sur ces bases de donn\u00e9es. Mais d&rsquo;un point de vue d&rsquo;architecture Web \u00ab\u00a0 philosophique\u00a0 \u00bb c&rsquo;est un peu sortir le char d&rsquo;assaut pour tuer le lapin blanc dans le champ\u00a0 !La mise en cache de requ\u00eates SQL (via du NoSQL ou\u00a0 de l&rsquo;allocation de m\u00e9moire aux index) est une option \u00e0 regarder de tr\u00e8s tr\u00e8s pr\u00eat.<\/li>\n<li>Le choix du hardware reste fondamental.Un serveur de sauvegarde avec 36 To n&rsquo;a pas la m\u00eame vocation qu&rsquo;un serveur frontal web avec ses 20 cores et ses 256 Go de RAM.<\/li>\n<\/ol>\n<p>Bref, en synth\u00e8se, vous l&rsquo;aurez compris, il est imp\u00e9ratif de revoir int\u00e9gralement l&rsquo;architecture Web. Sans n\u00e9cessairement r\u00e9aliser une modifications du code du site Web.<\/p>\n<p>A savoir aussi que certains clouds s\u2019effondrent tr\u00e8s rapidement d\u00e8s que \u00e7a chauffe sur le net.<\/p>\n<p>Messieurs, Mesdames, les responsables techniques de la CNIL, j&rsquo;esp\u00e8re que ces quelques lignes vous apporteront du \u00ab\u00a0uptime\u00a0\u00bb.<\/p>\n<p>Pierre-Alain &#8211; Administrateur Syst\u00e8me <a href=\"http:\/\/www.ooworx.com\/\">ooworx.com<\/a><\/p>\n<p>NDLR : <em>Pierre-Alain est mon sysadmin sur divers projets, dont du e-commerce et je vous le recommande chaudement. Il n&rsquo;y en pas plus d&rsquo;une poign\u00e9e d&rsquo;aussi balaises que lui sur le territoire fran\u00e7ais.<\/em><\/p>\n<p>Edit : le spinoff de <a href=\"http:\/\/www.qwant.com\/\">Qwant<\/a> est tout simplement d\u00e9licieux.<\/p>\n<p><a href=\"https:\/\/www.laurentbourrelly.com\/blog\/wp-content\/uploads\/2014\/02\/qwant-cnil.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1530\" alt=\"qwant-cnil\" src=\"https:\/\/www.laurentbourrelly.com\/blog\/wp-content\/uploads\/2014\/02\/qwant-cnil.jpg\" width=\"598\" height=\"285\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quand Goliath s&rsquo;attaque \u00e0 David, \u00e7a fait mal. En pointant en message en page d&rsquo;accueil du moteur vers le site de la CNIL, qui vient de condamner Google \u00e0 une modeste amende de 150 000 euros (une micro paille pour ce g\u00e9ant qui r\u00e9alise 200 milliards de chiffre d&rsquo;affaires par an), Google a abattu par [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[6],"tags":[],"class_list":["post-1525","post","type-post","status-publish","format-standard","hentry","category-internet"],"_links":{"self":[{"href":"https:\/\/www.laurentbourrelly.com\/blog\/wp-json\/wp\/v2\/posts\/1525","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.laurentbourrelly.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.laurentbourrelly.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.laurentbourrelly.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.laurentbourrelly.com\/blog\/wp-json\/wp\/v2\/comments?post=1525"}],"version-history":[{"count":0,"href":"https:\/\/www.laurentbourrelly.com\/blog\/wp-json\/wp\/v2\/posts\/1525\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.laurentbourrelly.com\/blog\/wp-json\/wp\/v2\/media?parent=1525"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.laurentbourrelly.com\/blog\/wp-json\/wp\/v2\/categories?post=1525"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.laurentbourrelly.com\/blog\/wp-json\/wp\/v2\/tags?post=1525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}