Petite leçon de sysadmin à la CNIL

404-erreur-cnilQuand Goliath s’attaque à David, ça fait mal.

En pointant en message en page d’accueil du moteur vers le site de la CNIL, qui vient de condamner Google à une modeste amende de 150 000 euros (une micro paille pour ce géant qui réalise 200 milliards de chiffre d’affaires par an), Google a abattu par un déni de service non intentionnel l’institution française régissant les règles informatiques et liberté.

CNIL DDoS by Google

cnil-google

Le message a eu son effet  : le site de la CNIL est tombé, en quelques secondes, sous la masse de trafic qui s’est abattue sur le site . C’est une action bien évidemment involontaire de la part de Google, mais le coup aurait pu être évité si les responsables techniques de la CNIL avaient pris quelques précautions.

cnil-google-2
Source images  : Korben

En parlant de ma propre expérience, subissant tous les jours des trafic de +100 000 connectés en simultané, voici quelques-unes des recommandations que je peux  suggérer à la CNIL :

– Du Reverse Proxying et toujours du  Reverse Proxying  !

Un serveur Web passe une bonne partie de son temps CPU à gérer l’acquittement des connections Web (TCP). Le soulager de cette tâche augmente sa capacité de montée en charge.

– Si le code ne tient pas la charge… Alors le cache  !

– Après du profiling   (identifications des goulets d’étranglement), et si les refontes de code sont trop lourdes, il faut mettre le site en cache. Pas le choix.

Différentes méthodes s’offrent à vous  :

  1. Le Reverse Proxy Cache  : l’application doit discuter avec le reverse proxy cache pour savoir quand délivrer les pages aux internautes. A savoir  : s’ils sont authentifiés ou non authentifiés.
    Si ce n’est pas possible alors seuls les objets statiques (images, css, js) devront être mis en cache.
  2. Une méthode « vieille école » mais néanmoins redoutable  :  la génération des pages statiques ou de blocs de pages statiques. Ce seul point aurait sans doute évité au site de la CNIL de  « tomber ».
  3. Séparez la partie de l’interprétation du code de la partie du serveur Web.Concrètement  : il ne faut pas de modules PHP intégrés dans Apache. Préférez un serveur d’interprétation PHP et un Serveur Web distinct.
  4. Choisissez et benchez vos serveur Web.Par exemple Nginx a une architecture logicielle éprouvée, et est «  reverse proxyfiable  » derrière un équipement réseau supportant 100 000 connectés.
  5. Renforcez les bases de données, via du clustering (réplication active – active) et mettez en place de la répartition de charge sur ces bases de données. Mais d’un point de vue d’architecture Web «  philosophique  » c’est un peu sortir le char d’assaut pour tuer le lapin blanc dans le champ  !La mise en cache de requêtes SQL (via du NoSQL ou  de l’allocation de mémoire aux index) est une option à regarder de très très prêt.
  6. Le choix du hardware reste fondamental.Un serveur de sauvegarde avec 36 To n’a pas la même vocation qu’un serveur frontal web avec ses 20 cores et ses 256 Go de RAM.

Bref, en synthèse, vous l’aurez compris, il est impératif de revoir intégralement l’architecture Web. Sans nécessairement réaliser une modifications du code du site Web.

A savoir aussi que certains clouds s’effondrent très rapidement dès que ça chauffe sur le net.

Messieurs, Mesdames, les responsables techniques de la CNIL, j’espère que ces quelques lignes vous apporteront du « uptime ».

Pierre-Alain – Administrateur Système ooworx.com

NDLR : Pierre-Alain est mon sysadmin sur divers projets, dont du e-commerce et je vous le recommande chaudement. Il n’y en pas plus d’une poignée d’aussi balaises que lui sur le territoire français.

Edit : le spinoff de Qwant est tout simplement délicieux.

qwant-cnil

33 réflexions sur “Petite leçon de sysadmin à la CNIL”

  1. On voit très bien que ce point n’a pas été anticipé ! C’est dommage, une bonne petite pub Adsense sur la page de la CNIL aurait fait monter le tarif 🙂

  2. C’était prévisible de toute manière ! On constate juste l’incompétence des personnes responsables de la gestion des serveurs à la CNIL.

    Dommage qu’ils ont pas amorti avec un petit peu de pub

  3. Sans vouloir me faire passer pour l’emmerdeur de service, parler de la forme (les serveurs qui ne sont pas assez bien dimensionnés, la valeur de l’amende), c’est s’éloigner du sujet, qui est important et normatif pour toute la société.

    Est-ce que l’on est OK pour montrer toute notre vie ou presque à un opérateur dont on a du mal à déterminer son positionnement sur le plan idéologique ? Est-ce qu’on ne devrait pas au contraire se féliciter que certaines personnes se posent la question pour nous, même si l’on n’est qu’au début de la réflexion ?

    Ensuite, je ne vois pas où est l’incompétence ? Je vois avec plaisir que tout le monde devient sysadmin aujourd’hui, mais croyez vous qu’il est raisonnable de mettre en place une infrastructure capable de supporter un pourcentage non négligeable du trafic journalier de Google.fr juste pour 48h ? Entre le coût humain et le coût d’infrastructure, ce serait une immense perte d’argent PUBLIQUE. Je me félicite au contraire que rien n’ait été fait.

    Laurent, je vois dans ton article des bonnes bases sur la gestion de charge. C’est bien que cela soit dit, mais j’aimerais que Pierre-Alain nous dise quel est le coût de mise en place de ses propositions, et la faisabilité en quelques jours.

  4. C’est con pour l’image de la CNIL, mais je rejoins Sylvain sur l’utilité d’une telle architecture pour la CNIL. Ca a clairement un coût et ne lui est pas utile, sauf pour un cas extrême tel que celui-ci.

    Je n’y connais pas grand chose en admin système et les coûts de réalisation des idées proposées par Pierre-Alain ainsi que le temps de mise en place m’intéresseraient aussi.

  5. @Rodrigue & @Marian : je ne pense pas qu’intégrer de la pub ait même traversé l’esprit des responsables.

    @Sylvain : c’est simplement tragi-comique. La sanction est ridicule et le seul bénéfice était une visibilité hors norme sur la page d’accueil de Google.
    Hors ne pas prévoir la montée en charge est une faute flagrante d’incompétence. Un site qui tient quelques secondes mérite d’être moqué.
    D’ailleurs, j’ose imaginer qu’ils n’y ont même pas réfléchi. À la place, ils ont joué les pompiers en trouvant les solutions après que le mal soit fait, puisque le site est à nouveau accessible.
    Pour le coût, la solution 2/ est très économique et parfaitement viable.
    Cela dit, la visibilité en home de Google ne se borne pas un un simple calcul de « combien ça coûte de prévoir la montée en charge ».
    C’est même sans oser penser qu’ils aient prévu une landing page dédiée aux visiteurs provenant de ce vecteur, avec une idée de conversion autre que le message sur la sanction.
    C’est bien de défendre les institutions nationales, mais leur incompétence à tous niveaux se révèle encore une fois dans cet exemple.
    N’importe qui d’autre aurait prévu le truc, mais pas la CNIL car ils sont bidons.

    @Morgan : passer le site en statique n’est pas coûteux, mais Pierre Alain répondra mieux que moi.
    Puis je suppose qu’il y a assez d’institutions nationales qui disposent de serveurs qui dépotent pour jouer le relais.

  6. @Laurent :

    Je vois qu’on est pas d’accord, mais principalement sur un point : sur celui de l’importance d’avoir un site qui tourne et qui supporte le flux. Le message est de toute façon passé, car tout le monde en parle (journaux, blogs, etc.). Après, que rien n’ait été prévu, osef un peu, et effectivement ils ont mis en place une solution tout à l’heure, tant

    Pour l’amende, elle est très faible égard à ce que Google a comme trésorerie, c’est sûre. Mais c’est le cas des amendes dans quasiment tous les pays, par exemple les amendes pour excès de vitesse sont ridicules (sauf dans les pays nordiques qui font une amende proportionnelle aux revenus). Après, pour l’attaque au portefeuille, c’est visiblement le fisc qui s’en occupe en ce moment.

    Mais encore une fois je ne pense pas que cela soit le point important. Le débat devrais être sur la raison de la décision. Que fait Google que la CNIL a estimé préjudiciable à la nation Française ? toute sorte de choses, mais je retiens surtout le recoupement de fichiers, qui est totalement interdit en France, même pour l’état (par exemple il est à ma connaissance interdit de recouper automatiquement les fichiers du fisc avec ceux d’autres administrations) et c’est plutôt heureux d’après moi.
    Ce qu’on peut faire avec le recoupement de données est réellement terrifiant, même au niveau artisanal, alors au niveau de ce que peut faire GG, cela devrait provoquer le questionnement de chacun.

  7. Ceci étant, il y a un point sur lequel on est d’accord : la CNIL n’est pas douée pour les aspects techniques. Même le pdf de la délibération est un scan au lieu d’être une version numérique lisible !

  8. Punaise, jusqu’à la fin de l’article, j’ai cru que Laurent était également « Sysadmin Rockstar » ! Ouf, c’est pas lui mais son collaborateur en la matière,… j’ai frôlé le complexe d’infériorité 😉

  9. Je suis bien d’accord avec toi sur le fond, les reverse proxy sont indispensables mais je pense qu’il n’y a rien à reprocher à l’équipe technique. Ça m’étonnerais que les techniciens soient au courant de chaque « pénalité » donnée. Je ne dis pas que les sysadmin sont bon dans le public mais ils ne peuvent pas tout prévoir, l’erreur est humaine.

    A l’heure actuelle, le site tourne plutôt bien, il charge en moins de 100ms, ils ont du mettre un varnish, c’est franchement pas mal pour un samedi…

  10. En tous cas leur manque d’anticipation leur à coûté cher niveau image, tous les médias se sont emparés de l’histoire et ils ne sont pas passés pour les héros 🙂

  11. @Sylvain
    Sylvain tu soulèves deux très bonnes questions à mes yeux :
    1 – Sur le plan idéologique
    Que dire de Google qui a maintenant la main mise sur le paysage ecommerce francais et européen ?
    La Chine a son moteur de recherche.
    La Russie a son moteur de recherche.
    L’Amérique a ses moteurs de recherche.
    Et les européens ?
    Je réduis la compléxité a l’extrême, mais je ne vois pas en quoi c’est pas si compliqué de monter un système de fichiers distribués en RAM et de monter un index (SOLR ?)
    Et là Sylvain, je sais que je m’adresse à la bonne personne 🙂
    Quand on voit les bénéfices qu’il peut y avoir la clé…

    2 – L’argent public, le coût ?
    L’argent public est un vaste sujet. Il y a certainement eu appel d’offres.
    Donc une société type SSII remportant un contrat. Où est parti l’hébergement ? Et qui a signé quoi ? Un responsable technique ? Ou un système administratif quelconque invariablement hors sujet.
    L’aberration commence là. Et on arrive à des sujets comme le coût du logo de pôle emploi.

    Pour le reste le coût est visible sur mon site et reste (je le pense et je le souhaite) très correct.
    Un de mes clients ecommerce (ecommerce=l’interruption de service n’est pas une option) doit faire un passage télévisuel sur l’émission les maternelles la semaine prochaine.
    En prod : Temps d’interruption 10 minutes > Intervention de nuit > Code de réponse HTTP 503 pendant le temps de migration du VPS.

    Bénéficier de performances accrues n’est pas important quand il s’agit du site de l’association sportive du bout de la rue.
    Mais dès qu’on parle de ecommerce, de ecommerce et de SEO, ou de site institutionnel, c’est autre chose. (Quel était le mot de passe de la banque de France déjà ? 123456 ? Ouais OK…)

    @Aurélien
    C’est exactement ce que dit Laurent, c’était trop compliqué d’anticiper ?

    Et désolé, mais ce déni de service ne peut empêcher de faire réagir la bienveillance du technicien.

  12. C’est pas le sujet de fond, mais le message avec lien vers le communiqué n’apparait pas quand on est sur tablette ou mobile, bizarre non ?

  13. @Pierre-Alain : mon passage sur le coût n’était en aucune manière une attaque. Je me demandais vraiment combien peut couter toute la mise en place.
    Pour le point 1, qui sait, l’avenir répondra peut-être à ta question implicite 😉

  14. @Sylvain

    Je suis plutôt moins cher que la concurrence à un niveau de qualité que je veux et j’essaie de rendre difficilement dépassable.
    Je ne fais pas d’hébergement à 1,99 € par mois non plus. (Mais ça risque de changer) je risque d’avoir 20 ou 30000 sites.

    Mon infrastructure Web est un héritage de mes anciennes fonctions d’architecte Web.
    Pour faire court, j’ai décliner l’infrastructure en solution full open source d’un ex top 10 du commerce français (On parle de 2 millions d’euros jours) pour lequel j’ai travaillé 5 ans.

    Ce qui à vraiment changé depuis ces quelques dernières années c’est la virtualisation et la puissance incontestable (donc la démocratisation) de la communauté Open Source.
    Il y 15 ans sur le web c’était Unix… Solaris ou Windows. Maintenant plus personne ne ferait ce choix.
    Ainsi une petite machine virtuelle (bien « confée » et bien optimisée) peut encaisser plusieurs milliers de connectés en simultanés, si toutes les conditions sont réunies bien sûr.
    Donc, les coûts baissent. Et ça ne coute pas / plus une fortune.

    C’est vrai des reverses Proxy à l’époque coutaient 50000 euros… 1 euros par internautes connectés… 🙂 Il y en avait 6 chez mon ancien employeur…
    Pour moi l’open source balaye de fait cette ancienne version de l’informatique.

    Je peux vous parlez d’exemples concret où certains de mes clients ecommerce arrive presque à l’état de mort clinique de leur business, avec des sites s’affichant en 16 secondes.
    En prod chez moi ils s’affichent en 2 sec. Je vous laisse imaginer le taux de transformation ensuite…
    Quand l’application sait discuter avec un reverse proxy cache. Ça cache la misère… 🙂
    Et ils payent autant qu’auparavant.

    Mais n’ayez crainte, quand je serais maitre du monde et que j’aurais le monopole absolu ça changera… 🙂 ! (OVH si tu m’entends…)

  15. Tiens au passage un autre truc irritant, le PC de mon « beauf » qui met 15 minutes à démarrer dans un hopital parisien.
    Il est professeur dans un service de réa cardiaque sur Paris…
    A cette vitesse tu as le temps de mourir avant qu’il puisse accéder à ton dossier.

    A quand les parcs informatique de l’administration sous Linux ?

  16. Le site à été rétabli assez rapidement finalement.
    À défaut de faire du reverse proxying, ils auront du reverse achat de lien ! :p

  17. @Pierre-Alain : pour résumer la question de Sylvain, d’après toi, à la louche, ça coûtait combien et fallait passer combien de temps pour prévoir la montée en charge d’un lien sur la home GG ?

  18. @Aurélien: d’après les Headers actuels c’est bien Varnish :

    X-Varnish: 1152586773 1152559229
    Via: 1.1 varnish
    Connection: keep-alive
    X-Cache: HIT from cnil-prox.accelance.net
    X-Cache-Hits: 12
    X-Accelance-Backend: cnil

  19. @Laurent
    Je ne puis malheureusement répondre précisément à cette question.

    Car il y a 2 cas de figure :
    – Les optimisation en cas de montée en charge est déjà prévue (et même contractuellement) et ça ne coute rien et ne prends pas de temps.

    – Ce n’est pas prévu, ça peux couter « bonbon » de tout remanier, code + archi. Jusqu’à plusieurs milliers voir dizaines de milliers d’euros one shot + éventuellement du récurant.

    Là, dans le cas de figure de la CNIL c’est un typo3 connu pour (très bien) fonctionner avec Varnish. C’est donc déjà prévu à priori.

    Pour moi, le prix concerne donc une intervention d’un sysadmin. A la louche quelques centaines d’euros.

    Mais parallèlement :
    S’ils sont en serveur dédiés (vielle archi), c’est effectivement plus lourd de faire évoluer la gestion de la montée en charge.

    S’ils sont en virtualisé, avec l’abstraction hardware c’est facile d’allouer de nouvelles ressources et de dupliquer des rôles dans l’architecture.

    Ou alors la virtualisation peut venir épauler une architecture dédiée existante…

    Ou un service de type CloudFlare (qui arrive à se vautrer)

    Ma réponse est qu’en terme de temps et de coût la fourchette mini maxi peu être super large. Et vous aurez compris que tout est une question de proactivité dans le projet.

  20. Bref, on aura compris que le sysadmin de la CNIL est un boulet car il a bien mis en place la solution après que le site soit devenu la risée mondiale.
    Ce n’était pas une question de coût, mais bien d’incompétence ou même de jemenfoutisme typique dans ce genre d’administration.
    L’argument de Sylvain sur la dépense des deniers publics fait un peu réac dans la cas présent.

  21. Je pense qu’il avait budgétisé un changement d’infrastructure en 2012, mais en regardant l’état de leurs comptes ils se sont dit merde, on est dans le rouge, il nous faut 150 000€. On fait quoi les gars ?
    Un stagiaire dit d’une voix timide, et si on attaquait google car il est méchant quand même ?
    fou rire général
    Mais bon comme c’était vendredi soir et apéro général le DT l’a pris au mot et voila un an après le magot arrive. Ils vont pouvoir se payer les services de Pierre Alain.

    Buzzea à tenu le choc, certes leur page d’accueil était minimaliste mais je pense qu’il ont eu un énorme pic de trafic suite à la mise à mort de leurs business par google.

  22. J’en pleurerais presque de joie… si effectivement la situation n’était pas si ubuesque.

    Entendons nous bien, je rejoins complètement Laurent sur le fait que, en y réfléchissant ne serait-ce que 30 secondes, les sysadmin de la CNIL auraient pu prévoir que la petite blague leur rapporterait un paquet de traf imprévu mais bon, là encore, je ne dis rien, à chacun son métier, je ne ferais pas le leur, donc je ne leur jette pas la pierre de ne pas connaitre le nôtre ^^

    Ensuite, là où je rejoins Sylvain, c’est que, oui dans les faits, 150K€ pour Google, c’est rien de plus qu’un ticket de parcmètre ! Néanmoins, l’image reste forte. Même quand on s’appelle Google, on peut se faire plomber pour manquement et même si cette condamnation n’est qu’une goutte d’eau dans la masse océanique, pour le nombre de millions de personnes qui ont vu ce communiqué sur la home de Google, et qui en tireront invariablement des opinions et des conclusions, finalement, il me semble important que ça se sache et que ça se voit

  23. Oui dommage pour la CNIL, ils auraient pu prévoir et cacher cette page en HTML static (d’ailleurs il me semble que TYPO3 marche très bien avec Varnish en mode « mirroir »).

    Dans tout cas Qwant tient la charge lui !

  24. Sait-on combien de temps le site de la CNIL est tombé ? Je n’ai de mon côté jamais vu le site hors ligne et je ne pense pas avoir vu passer la news avec trois jours de retard.

  25. @Rob : Le site était down quasi tout le samedi et l’info a été relayée très vite. Pour défendre un peu le pauvre sysadmin, si ça se trouve il n’était même pas au courant que Google allait faire un lien !

    Ce qui est malheureux dans l’histoire c’est qu’ apparemment ca aurait pu être évité et finalement ça leur a peut être couté bien cher (tarif week end en urgence…)

    Qwant fait un excellent coup ! (Félicitations à celui qui en a eu l’idée). Malheureusement, à part sur ce site, je n’ai vu cette info nulle part… Bref, un petit coup dans l’eau.

  26. En définitive, beaucoup de bruit pour pas grand chose…

    Quand on voit le site de Sony tomber le jour de l’annonce de la Playstation ou Vente privée tomber le jour d’une vente exceptionnelle, la CNIL n’a pas à rougir. Il n’ont pas anticipé, c’était le week-end, ils ont réagit comme ils peuvent et c’est très bien comme ça.

    La prochaine fois ils mettront plus de capacité avant un tel événement et souscriront surement à un contrat incluant une astreinte en 2014, mais même avec ça des tuiles peuvent arriver.

    J’ai aussi souvenir d’un ado de 17 ans qui avait fait tomber Yahoo pendant une demi journée… Comme quoi, même quand on a une armée de mecs qui sont d’astreinte, les choses ne sont pas toujours si simples.

  27. Bonjour,

    Cela montre, s’il en était encore besoin, la totale incompétence de la CNIL qui n’est qu’un simple faire valoir des politiques pour faire gober aux français qu’on se soucie de leur vie privée et surtout qu’on les protège des grands méchants capitalistes.
    Je pense de toute manière qu’ils ont du bien rire chez Google et à deux reprises:
    – lorsqu’ils ont découvert le montant dérisoire de l’amende par rapport aux bénéfices engendrés par leur non-respect des lois françaises
    – lorsqu’ils se sont aperçus que leur lien a fait sauter le site de la CNIL
    Bref, cela nous montre une fois de plus qu’il faut réfléchir à la conséquence de nos actes avant d’agir.

    Cordialement,

    Bruno

  28. En tant que e-commerçant, je confirme que le service proposé par Pierre-Alain est du type caviar : service humain et proactif, serveur rapide, support également en cas de besoin, aucune indisponibilité du site en un an d’activité.

    Pierra-Alain n’est pas un prestataire, mais un partenaire. Vous en connaissez beaucoup de qui l’on peut dire ça ?

  29. Eh bien voilà ce qui arrive quand la concurrence devient déloyal. Alors c’est la nouvelle actuelle que le fameux site de CNIL est tombé?

  30. Hello tous,

    Juste comme ça au passage, il me semble qu’il n’était pas forcément prévu que Google mette un lien, ils étaient juste censés afficher le message… Enfin j’dis ça, j’dis rien…

  31. Commission Nationale de l’Informatique… Ah bah oui on voit ça, s’ils sont aussi fort pour maintenir leur réseau que pour nous protéger on est dans la merde !

    Merci pour l’article, j’en n’ai pas compris la moitié mais je vais regarder déjà pour dissocier le module php5 d’apache au profit d’un serveur, ce sera en plus sûrement plus rapide pour les utilisateurs.

Laisser un commentaire