L’après-midi de la 1ère journée de l’USI 2013 a pour thème « Ici« .
Au programme voici ce que j’ai décidé d’aller voir :
- La keynote de Jean-Pierre Raffarin sur la place de la France dans le monde et la géopolitique
- La programmation parallèle et concurrente avec Haskell par Simon Marlow de Facebook
- 30 milliards de requêtes par jour avec une architecture NoSQL par Julien Simon de Criteo<
- Les technologies de rupture au service de l’expérience utilisateur par Cynthia Savard Saucier de TP1
Faites votre choix… on y va.
Nous reprenons donc par une Keynote par Jean-Pierre Raffarin, Sénateur de la Vienne, ancien premier ministre pendant 3 ans de 2002 à 2005. Il vient nous parler géopolitique et place de la France, ce qui nous laissera quelques idées intéressantes sur notre avenir.
En 2013, le monde est de moins en moins bi-polaire, avec le déclin de l’influence des USA et la montée d’autres pays comme la Chine, le Brésil ou l’Inde. Nous serons de plus en plus dans un monde multi-polaire, où chaque continent aura une certaine influence sur l’autre. L’avenir est plus à la collaboration que la domination. Un continent assoit sa présence selon différents moyens. Cela peut être militaire, comme la Chine qui développe un budget très important. Cela peut être aussi via la monnaie : les américains essayent de conserver des taux bas et une bonne partie de la dette américaine est financé par la Chine. Lorsqu’un Chinois gagne 1 dollar, un Américain en gagne 25. Cependant le Chinois économise 50%, alors que l’Américain en dépense 26. Il vit sur le dos de la Chine, ce qui change la donne et les équilibres entre les pays. Enfin il peut être technologique, comme la recherche dans le domaine biomédical, ce qui nous sera confirmé le lendemain à l’USI…
La puissance économique, militaire ou technologique sont donc les 3 critères d’influence, bien au delà de la politique (et de la culture). La France conserve d’ailleurs une vision assez monarchique et paternaliste de la politique. Chaque gouvernement (gauche comme droite) se fait élire sur des promesses, qu’il n’a pas forcément les moyens de tenir. Jean-Pierre Raffarin regrette que les hommes politiques ne soient pas limités sur le nombre de mandats qu’il peuvent faire. Du coup, être « homme ou femme politique » est un métier à part entière. Nos gouvernants n’ont souvent jamais travaillé dans le monde de l’entreprise (ce qui n’est d’ailleurs pas le cas de Raffarin, qui n’a pas fait l’ENA et a travaillé dans le privé).
Pour revenir sur l’évolution, la diversité est reconnue comme une nouvelle valeur. Reconnaître la valeur de l’autre, ce qui est plus dans la culture Asiatique, nous forcera à revoir notre approche et notre place dans le monde. La France sans l’Europe n’est plus rien. Il y a certes la Francophonie, le Français reste encore parlé par 220 millions de personnes sur Terre, avec une forte croissance en Afrique. On estime à 1 million ce nombre de locuteur en 2050. Le Français sera plus parlé en Afrique qu’en Europe en volume.
En conclusion, l’avenir de la France se joue aux 4 points cardinaux. Au Nord avec l’Europe et l’obligation de garder un pacte fort avec les Allemands. La monté du nationalisme et le repli sur soit seraient une catastrophe pour le développement de la France. A l’est, nous devons renforcer nos liens avec l’Asie, dans un esprit de diversité et d’acceptation de l’autre, plus harmonieux. De Gaulle en 1964 avait initié les relations avec la Chine. Au Sud, nous devons garder nos liens avec l’Afrique, aider au développement, et continuer à aider les pays comme l’opération au Mali. Enfin vers l’Ouest, la France garde avec l’amérique du nord une relation forte et privilégiée. Il y a cependant une urgence en Europe de trouver de nouvelles solutions, pour conserver le continent Europe, sans lequel la France ne pourra assurer son avenir.
Bon… voilà… j’ai tartiné 3 pages, j’ai apprécié l’orateur, mais il est temps de revenir faire un truc bien Geek. Et je me suis dis : Haskell ça roxe du Poney, allons voir Simon Marlow, de Facebook.
Haskell : la programmation concurrente et parallèle.
Le langage Haskell est un langage fonctionnel pur inventé en 1990. Avec un typage fort et statique, il est d’abord le fruit d’universitaires et de chercheurs, avec un objectif certainement moins industriel que Scala ou Java. C’est un langage fonctionnel pur, sans effet de bord, ni entrée/sortie, ni affectation de variables. La présentation de Simon Marlow ne durait que 30 mn, ce qui n’est pas assez pour présenter Haskell.
Il commence sa présentation en expliquant la différence entre programmation parallèle et programmation concurrente.
La première vise à bénéficier des architectures multi-coeurs de nos CPU, pour répondre plus vite. La programmation dans ce domaine est déclarative. C’est le domaine par exemple du machine learning, du traitement des images ou de toute opération déterministe.
La programmation concurrente permet d’effectuer des tâches non-déterministes sur plusieurs Threads. L’exemple le plus simple par exemple c’est un aspirateur de sites Webs. Imaginez une ou deux threads pour collecter le contenu HTML, puis une pile de Thread pour traiter chaque page reçue. Comme votre traitement est lié à des entrées/sorties (recevoir sur le réseau du contenu HTML) il n’est pas possible de déterminer l’ordre d’écriture des résultats du crawler à la sortie. Le traitement est dit « non-déterministe ».
Un serveur Web qui traite 2 clients, c’est exactement la même chose. La programmation concurrente est plus du domaine de la programmation impérative (mais pas que). De même, l’approche fonctionnelle est plus adaptée à la programmation parallèle. Le langage Cilk est par exemple procédural/impératif mais c’est l’un des meilleurs pour la programmation parallèle. Dans le domaine de la programmation concurrentielle, Simon cite Erlang, langage multi-paradigm, fonctionnel et adapté à la programmation concurrente.
Vous l’aurez compris, après avoir écouté Jean-Pierre, ça pique un peu.
Alors que fallait-il retenir de la présentation ? Tout d’abord, pour le développeur Scala que je suis (je suis un « jique [1] » comme dirait Jean-Pierre) j’ai été séduit par l’approche « jusqu’au-bout-iste » d’Haskell. Si vous voulez comprendre « Either » en Scala, l’approche « Maybe » d’Haskell est plus intuitive. J’en ressors au bout de 30mn en me disant : j’irai voir Haskell, certainement jouer un peu avec… mais je ne m’en servirai pas pour faire un site web ou un programme. Une présentation pas mal, mais bon… trop geek pour moi.
[1] Jique c’est le Français de Geek… dixit Jean-Pierre.
30 millions de requêtes par jour, Criteo
Julien Simon et VP Engineering chez Criteo, société Française créé en 2005 par Jean-Baptiste Rudelle, Franck Le Ouay et Romain Nicolli. Criteo propose une solution de reciblage publicitaire. Imaginons que vous surfiez sur le site de la Fnac. Vous regardez une description d’un lecteur Blue-Ray. Puis ensuite vous décidez de naviguer sur Internet pour voir des avis sur ce lecteur. Vous arrivez alors sur un site de fans de Home-cinéma, qui utilise la solution de Criteo. La plateforme détecte que vous êtes sur un site de home-cinema et va alors afficher sur ce site, une publicité pour le lecteur Blue-Ray que vous regardiez. Ou pourquoi pas, une autre publicité d’un autre lecteur Blue-Ray. C’est donc une solution d’affichage publicitaire ciblée, qui analyse votre parcours pour vous proposer des pubs susceptibles de vous intéresser. Le rêve de n’importe quel chef produit. 8 ans plus tard, Criteo c’est 800 employés, un centre de R&D à Paris et à Palo-Alto.
Côté infrastructure, ce n’est pas du Cloud ou du IaaS. On imagine qu’Amazon serait très heureux d’avoir la plateforme Criteo… mais il y a un souci de latence. Pour ces raisons, Criteo a ses propres centres de données, 7 au total dans le monde. Il faut se rapprocher des clients géographiquement afin que la latence réseau soit très basse. 3 centres en Europe, 2 aux USA et 2 au Japon. Une disponibilité de 99,95%. Forcément, je reste vraiment intrigué par cette histoire de latence. J’ai regardé le TTL entre nos serveurs Webs et nos serveurs Redis sur les VPN d’Amazon entre 2 Security Groups et c’est pourtant aussi rapide qu’en réseau local :
--- 10.0.2.90 ping statistics --- 23 packets transmitted, 23 received, 0% packet loss, time 22001ms rtt min/avg/max/mdev = 0.850/0.908/1.069/0.047 ms
Criteo reçoit 30 milliards de requêtes HTTP par jour sur l’ensemble des 7 centres de données. C’est en moyenne 500 000 requêtes par seconde. Plus d’un milliard de bannières générées par jour. Cela génère 20 TB de logs par jour… C’est vraiment impressionnant. Côté Web, j’ai posé la question à la fin, c’est fait en C# avec donc des technologies Microsoft. Il y a aussi du C pour la performance et du Java. Les premières architectures utilisaient Microsoft SQL Server. Mais vu le succès de la société, rapidement les équipes ont migré vers MongoDB. Aujourd’hui les solutions de traitement utilisent Hadoop/Hive, memcached, Storm, Apache Kafka. Pour la petite histoire, Kafka qui est un système de messages distribués (à la JMS mais en mieux) développé au départ par LinkedIn. Storm est un système d’analyse et de traitement temps réel de données. C’est un peu comme Hadoop, mais pour de l’analyse temps réel. Je crois que Storm vient de Twitter.
Julien Simon présente ensuite plusieurs exemples de l’infrastructure de Criteo.
Premier cas : la mise à jour d’un catalogue produit. Un annonceur, comme par exemple Sony, livre un nouveau catalogue de lecteurs Blue-Ray. Il faut alors mettre à jour la description du produit. C’est quelque chose qui arrive assez fréquemment, particulièrement concernant les prix. Une fois la donnée importée, elle doit être répliquer vers les différents centres de données. Et c’est là que les soucis ont commencé. Jusqu’en 2011, Criteo utilisait Microsoft SQL Server. Mais le problème était que les écritures, assez importantes finalement, donnait une forte latence et il y avait un problème de réplication. Les équipes ont alors testé puis adopté MongoDB. Avec 150 machines, MongoDB est une solution simple, facile à mettre en oeuvre et qui prend en charge la réplication de site à site.
Deuxième cas intéressant : l’utilisation d’Apache Hadoop. En juin 2011, c’est presque 2PB d’information, 20 To de logs applicatifs. Pour exploiter tout ceci et faire de l’analyse, améliorer le ROI, les taux de clicks et de transformation, Hadoop a été utilisé pour gérer ces énormes volumes de données. Cependant comme le dit Julien lui même… ce n’est pas forcément la meilleure solution pour faire du Temps réel (d’où l’utilisation de Storm + Kafka maintenant j’imagine). Un point intéressant, concernant le profil des développeurs à même de travailler sur ce type d’architecture : vous devez avoir des compétences systèmes. Et là, je +1 à mort. Ce type d’architecture demande une très bonne connaissance réseau, un bon sens et un peu de simplicité pour que cela fonctionne. Je ne pense pas qu’une solution « méga-hype-sur-Amazon-avec-Pluff-Kabal-Chipster-en-Erlang-Haskell » soit réaliste.
En conclusion, on reste sur sa faim. Cette présentation aurait méritée une bonne heure. Ce que j’ai bien aimé : le format, la forme et les histoires. Ce que je regrette un peu dans les ReX c’est que souvent les gens décrivent ce qu’ils utilisent (le « What ») et ne parlent pas assez de la façon (« How ») ou des raisons (« Why ») pour lesquelles ces choix ont été fait. Ici c’était plutôt équilibré. N’importe quel architecte Web aimera travailler avec Criteo, c’est ce que je me suis dit au final. A suivre donc. Et encore merci à Julien Simon.
Les technologies de la Rupture au service de l’expérience utilisateur
Ce titre fait bien trop sérieux. Mais bon… ça parle d’érgonomie et d’expérience utilisateur. Et Cynthia Savard Saucier de TP1, a été bien notée sur le site de l’USI… Et c’est la fin de la journée et je commence à être crevé… Ah et j’ai l’impression que ses slides vont être sympas… Ok allez on y va.
Bon, les gars : c’était bien, vraiment bien… mais trop court… et bien délicat à résumer pour vous. Genre, je vais avoir du mal à leur raconter.
Si vous voulez prendre une leçon sur comment bien présenter un sujet, je vous conseille de vous refaire la vidéo lorsqu’elle sera dispo sur le site de l’USI. En attendant, le blog de TP1 propose des sujets présentés par Cynthia Savard, vous aurez une idée très précise de son talent pour faire des diapositives qui sortent de l’ordinaire.
L’effet Cupcake, ces adorables gâteaux sur lesquels se déchainent la créativité de votre moitié… Appliqué à la création d’un site, je suis certain que c’est un effet que vous avez déjà vu. Un Cupcake c’est un muffin sur lequel on ajoute des décorations, du sucre glace, des confettis, bref tout un petit tas de trucs qui ne servent à rien. Un cupcake c’est un muffin trop cher. Un site Web avec des animations et des effets dans tous les sens… c’est un Cupcake. La recette d’un site web qui fonctionne est pourtant simple. La pâtisserie en France est un art sacré qui demande le respect des doses. Et bien chère Cynthia, j’ai l’impression qu’il en est de même pour la réalisation d’un site Web. Il y a une base, le contenu. Ensuite un assemblage, le design. Et enfin la décoration, l’effet Waouuh… Mais pas trop.
En terme d’ergonomie, la conception des sites internet souffre parfois de grosses erreurs, qui tuent le goût du site. Il y a par exemple le service poli et le service mal-poli. Le service mal-poli ne vous demande pas la permission de faire quelque chose. Il pense que vous êtes un robot et que vous comprenez tout. Il n’explique pas les choix. Lorsqu’il y a une erreur, il vous gronde et vous demande de recommencer. Parfois, il oublie qu’il vous a demandé une information et vous la redemande. Par exemple votre adresse email… alors que vous avez un compte. Il prend aussi des libértés et vous impose de donner votre email pour utiliser le service. Imaginez que vous deviez donner votre nom pour acheter des Croquettes au MacDo… euh des MacNuggets comme on dit en France. L’exemple ultime du service stupide c’était par exemple Clippy. Lui, si on avait pu le tordre ce trombone… Il ne cessait d’apparaître dans Word. Autre exemple : votre imprimante. Avez-vous remarqué comment elle vous rappelle lourdement qu’il vous reste encore 5 litres d’encre… mais qu’elle échoue lamentablement à vous dire qu’il n’y a plus de papier pour imprimer ? Il faut que l’impression soit lancé pour que celle-ci râle… Non mais allo quoi… (là c’est moi qui ajoute un peu de culture Française)
En terme d’ergonomie, repensez vos services pour qu’ils soient polis. Essayez aussi de les rendre intelligent. Par exemple aux USA. les distributeurs de billet se souviennent que vous préférez les coupures de 10$ et que vous prenez en général 40$. Ceci vous fait gagner du temps. Google aussi vous aide lorsque vous faîtes une erreur de syntaxe et essaye de vous trouver d’autres suggestions.
Autre point : pensez à vos utilisatrices. Trop de sites, et je dirai aussi trop de services sont pensés par des Hommes. Messieurs, vous aimez lire les textes. Vous adorez les spécifications techniques. Un site de vente de lave-linge doit vous fair rêver avec le nombre de tours par minute ou l’essorage rapide. Mesdames, vous voulez une histoire et une mise en scène. De belles images, un côté sensitif. Vous devez voir cette jeune femme dynamique fier que son homme charge le lave-linge pendant qu’elle part avec son attaché-case… Bref une histoire.
Le contre-exemple c’est le site qui veut faire « femme » mais qui n’a rien compris aux femmes. C’est ce site qui pense que la femme est incapable de comprendre la technique, alors que nous sommes tous égaux devant la technologie. C’est le site de Dell qui pense que les femmes seront contentes de pouvoir chercher des recettes de cuisine ou tenir un journal intime… et qui pensent que le Rose est la seule couleur que les filles aiment…
La navigation dans un site, particulièrement dans le e-commerce, est la clé pour réussir l’achat. En moyenne, les sites qui fonctionnent ne demandent pas plus de 5 étapes pour faire une vente. S’il faut remplir un formulaire de 20 champs, c’est la mort assurée pour le site. Un email est suffisant. Et lorsque quelqu’un paye 40 EUR, oui il va vous donner son VRAI email. Les sites classiques qui fonctionnent peinent à se remettre en question. Pourquoi changer quelque chose qui marche ? Pourtant, un bon nombre de ces sites ne sont plus adaptés. Les clients utilisent de plus en plus une tablette ou un mobile, ce qui demande une nouvelle reflexion. Le responsive design est une meilleure réponse qu’un site 100% mobile. Il suffit de s’adapter, mais en prenant bien en compte les contraintes matérielles des tablettes.
Sur les quelques idées, Cynthia revient sur les carrousels d’images. S’ils permettent de coller du contenu (on en a sur Zaptravel), c’est aussi parfois mal utilisé, très remplissage. Une autre idée, c’est de mettre de l’émotion dans le site. Essayez de casser l’image « site informatique » pour mettre un peu de sensibilité. Le site doit être désirable, retrouvable, utile et crédible. L’immersion sur le site d’Apple (société où a d’ailleurs travaillé Cynthia) est un exemple réussi entre le côté émotion et le côté technique. Si Monsieur va s’extasier sur les spécifications du Macbook Pro, Madame sera plus séduite par les promesses du site d’Apple. En achetant un Mac, je pourrai écouter de la musique, trier et imprimer mes photos et échanger avec mes amis. Alors que moi, je me dis qu’un i7 avec 8-cores et 16Gb de mémoire… c’est top non ?
Bref une bonne présentation, avec beaucoup d’idées… mais qui aurait mérité une heure. On a mangé trop vite ce petit gâteau et je suis un peu déçu en sortant.
Il est maintenant temps de descendre pour écouter la dernière Keynote de la journée…
Rendez-vous dans 5 mn pour écouter Marc Giget.
Merci pour cet article.
Une question : « Le responsive design est une meilleure réponse qu’un site 100% mobile ». Je ne comprends pas… Selon moi, soit on fait des développements proprio selon l’os ciblé (‘apps’) soit on fait de l’adaptatif selon la taille de l’écran (‘responsive’), et dans notre ‘lexique moderne/commercial’, je comprends que ‘responsive’ = ‘Site mobile’. Un commentaire ?