Docker

02/11/2016

Web, Ops & Data - Semaine 44

Elasticsearch Elastic Stack 5.0.0 Released : La version 5.0 de l’Elastic Stack (Elasticsearch, Kibana, Beats, Logtstash) vient de sortir. Concernant Elasticsearch, on notre l’arrive d’une ingest node pour mieux traiter vos données, des améliorations de performances et plein d’autres choses dont on a parlé ici précédemment. Les leviers d’Elasticsearch pour le traitement des spécificités linguistiques : le billet présente les différentes capacités d’Elasticsearch pour analyser plus ou moins finement un texte en fonction de vos besoins. Assez bien documenté pour voir les comportements des différents filtres d’Elasticsearch. Conteneurs Stratégies de placement de conteneurs Docker (partie 1) et Stratégie de placement de conteneurs Docker (partie 2) : les billets cherchent à présenter et synthériser les stratégies de placement de containers offertes par les différents solutions : Nomad, Fleet, (Docker) Swarm et Kubernetes. Le premier billet porte plutôt sur la labellisation des ressources et d’une stratégie de déploiement associée et le second porte d’avantage sur la stratégie de déploiement 1 noeud / 1 container ou bien 1 noeud / n containers CMS Wagtail 1.7: Elasticsearch 2, Smaller Images, CloudFront : Tout est dans le titre ou presque : support d’Elasticsearch 2, une plus grande flexibilité sur le degré de compression des images et le support du CDN Amazon CloudFront. Grav 1.1.8 : le CMS Grav continue à améliorer sa version 1.1.x ; terminant un premier projet avec Grav, je suis à la fois séduit par son potentiel et sa flexibilité que frustré par quelques défauts de jeunesse (?). Cela fera l’objet d’un futur billet… DevOps Ansible 2.2 Delivers New Automation Capabilities for Containers, Networks and Cloud Services : Mise à jour mineure d’Ansible qui lui aussi s’améliore au fil des versions. Cette version apporte surtout des mises à jour sur les composants networks (gestion d’équipements réseau), des améliorations sur la gestion des plateformes cloud et sur la couche réseau de docker (docker_network)

ansible docker nomad fleet kubernetes swarm elasticsearch wagtail grav
11/10/2016

Web, Ops & Data - Semaine 41

Container & Orchestration Docker a annoncé un partenariat avec Microsoft pour le support de Docker dans le cadre de Windows Server 2016 mais aussi sur la plateforme Azure. Docker a publié deux billets sur l’introduction à Docker sur Windows Server 2016 et la création et l’exécution de containers Docker dans un environnement Windows. Si l’on peut saluer la plus grande simplicité à gérer des containers docker sous Windows, aller jusqu’à les déployer sur des environnements Windows, c’est un autre pas… Kubernetes 1.4: Making it easy to run on Kubernetes anywhere : La version 1.4 porte essentiellement sur la facilité à installer et déployer un cluster Kubernetes avec l’arrivée notamment de kubeadm ou encore le Dashboard. Cette version apporte plein d’autres améliorations, chacun devrait y trouver son compte. Forkera ou pas, cela s’agite dans l’univers des containers : A docker fork, the split is now on the table, certains reprochaient il y a quelques semaines à Docker Inc une instabilité et l’ajout de fonctionnalités rendant compliqué le fait de baser des outils sur docker quand Docker Inc cherchent à toujours avancé. On vient de franchir un nouveau pas avec RedHat et Google qui cherchent à créer un nouveau format pour s’affranchir de Docker et de rkt, supporté par CoreOS. Au final, via CRI-O, le but serait surtout d’avoir une interface permettant aux différents moteurs de containers (docker, rkt, etc) de s’interconnecter facilement avec Kubernetes. La conclusion de ce dernier article est finalement peut-être la plus éclairante sur le sujet : c’est davantage la façon d’orchestrer qui va prévaloir que ce que l’on orchestre. Ansible Ansible Container 0.2.0 Release : ansible-container est une extension ansible qui doit permettre de créer des images docker et de les orchestrer depuis des playbooks Ansible. Cette version 0.2 montre les améliorations apportées grâce aux retours de la communauté et le chemin restant à faire pour être plus facile à utiliser. Base de données Postgres 9.6 Released ! : comme tous les ans au mois de septembre, une nouvelle version de la base de données Postgres. Au programme notamment de cette version 9.6 : parallélisme des requêtes, nouveaux mode de réplication synchrone et de fédération, amélioration des recherches orientée phrase (ie ensemble de mots). RethinkDB is shutting down : l’entité commercial derrière RethinkDB (base documentaire orientée temps réel) ferme faute d’avoir trouvé un modèle économique adéquat. Il y a une réflexion pour voir comment la communauté peut continuer à maintenir RethinkDB et à ouvrir le code d’Horizon. Elasticsearch An Elasticsearch cheat sheet : une collection de commandes utiles pour gérer un cluster Elasticsearch dès lors que l’on sort d’un usage basique. Docker Stats Monitoring: Taking Dockbeat for a Ride : une introduction à Dockbeat (anciennement Dockerbeat) et son intégration dans une plateforme ELK. Il a le mérite de remonter des métriques sur vos containers (CPU, RAM, etc). Cela n’empêchera pas de devoir ajouter une seconde solution pour la remontée des logs systèmes / applicatifs. Frontend Vue 2.0 is Here! : le framework Javascript qui fait de l’ombre à AngularJS voir même à Réact sort en version 2.0 avec des améliorations de performances, améliorations des API, etc. Pas encore eu le temps de tester ça mais de la présentation vue à DevoxxFR cela semblait plus léger et moins inutilement complexe qu’AngularJS.

docker microsoft windows kubernetes kubeadm ansible postgres rethinkdb elasticsearch vue.js
26/09/2016

Web, Ops & Data - Semaine 39

Docker Lessons learned from using Docker Swarm mode in production : ce retour d’expérience confirme mon ressenti (pas encore mis à l’épreuve des faits) sur Docker et l’intégration de Swarm depuis la version 0.12. A la fois il est très simple de créer et opérer un cluster Docker Swarm mais il reste quelques défauts de jeunesse. A voir comment les prochaines version de docker vont consolider/maturer tout cela. ARM Fixes for Docker Machine 1.8.0 : Si comme moi vous souhaitez utiliser docker-machine depuis un PC 64 bits vers un cluster de machines ARM (Raspberry, etc) utilisant HypriotOS ou Raspbian. Logs 5 Logstash Alternatives : Le billet compare Logstash avec Filebeat, rsyslog, syslogng, logagent et fluentd. Il donne les forces/faiblesses de chaque solution et les cas d’usage les plus adaptés pour chaque solution. Cela reste très orienté dans un contexte Elasticsearch, on pourrait par ex songer à Telegraf et à la plateforme TICK Sécurité Is HTTP Public Key Pinning Dead? : dans l’édition précédente, j’ai parlé du Mozilla Observatory qui évalue notamment cette fonctionnalité qui est HPKP. Ce billet montre les limites et les risques de l’implémentation actuelle. Le risque le plus grand étant que le propriétaire du site perde les clés requises au bon fonctionnement d’HPKP et se retrouve à la porte de son site… Elasticsearch Running High Performance Fault-tolerant Elasticsearch Clusters on Docker - vidéo : une présentation des options et des bonnes pratiques pour utiliser Elasticsearch dans un contexte Docker. Elastic Stack Release - 5.0.0-beta1 : l’écosystème Elastic continue son bonhomme de chemin vers la 5.0 avec la sortie de la version 5.0-beta1. Au delà des diverses améliorations, il est noté que Elastic requiert 2Go de RAM par défaut (au lieu de 1 Go); de quoi écarter Elasticsearch d’une utilisation dans un contexte ARM (Raspberry, etc) ? Base de données temps réel Firebase, le nouveau Parse ? : historiquement une base de données temps réel, Firebase est devenue une plateforme pour développer et déployer des applications mobiles avec bon nombre de services pratiques/utiles (Remote storage, Cross platform, Push, Remote Config, Test Lab, etc). Le billet fait un état des lieux mais insiste en fin de billet sur les limites qui sont la consolidation de données chez Google et les tarifs si vous avez une utilisation intensive. Si c’est surtout le coté base de données temps réel qui vous intéresse, il vaut peut être mieux regarder du côté de RethinkDB et leur service Horizon qui package RethinkDB avec Node.JS pour avoir des API et des services complémentaires (authentification, etc)

docker log logstatsh rsyslog syslog-ng elasticsearch firebase hpkp filebeat fluentd
30/08/2016

Web, Ops & Data - Semaine 35

Petite collection de liens pour reprendre les bonnes habitudes en cette période de rentrée… Laravel Résumé de la Laracon EU 2016 : reconsidérant l’écosytème PHP, je regarde de près Laravel et espère y trouver un framework plus léger que Symfony et plus dans la lignée d’un framework comme Django Docker Releasing HypriotOS 1.0.0 “Blackbeard” : l’équipe Hypriot qui assure le port de Docker sur l’architecture ARM vient de sortir la version 1.0 de son OS avec Docker 1.12 et les dernières versions de docker-compose et docker-machine. De quoi pouvoir tester les apports de la version 1.12 sur vos Raspberry Pi. Lean Lean et Architecture IT : l’architecture et l’ingénierie sont au service de la valeur que l’on apporte aux clients. Il faut donc batir non pas la plateforme idéale mais la plateforme adaptée aux besoins du client. Toujours utile de le rappeeler et totalement en phase avec cette idée, puisque c’est notre philosophie.

docker lean laravel framework php arm architecture
16/08/2016

Web, Ops & Data - Semaine 33

Docker Docker Built-in Orchestration Ready for Production: Docker 1.12 Goes GA : avec la sortie de la version 1.12 de Docker contenant le nouveau modèle d’orchestration (basé sur Swarm), le billet présente comment l’ordhestrateur a été implémenté, la relation Manager/Worker nodes, les communications intra managers et intra workers. De quoi avoir une meilleure vision sur le fonctionnement de ce nouvel orchestrateur. Big Data Amazon EMR 5.0.0 – Major App Updates, UI Improvements, Better Debugging, and More : Amazon a fait une mie à jour significative de son offre managée Hadoop avec notamment une mise à jour significative pour Hive (1.x => 2.x) et Spark (intégration de la v2 sortie cet été). Si tous les composants supportent le stockage S3 en entrée/sortie des jobs, cela peut (re)donner à EMR de l’intérêt pour une platforme de calcul à la demande. Spark Release 2.0.0 : Qui dit 2.0, dit stabilisation des API sous-jacentes et par ailleurs de nombreuses améliorations. Je vous laisse le soin de lire les release notes pour y trouver votre bonheur. MySQL MySQL 5.7 apporte le plugin “MySQL Group Replication” qui permet d’obtenir un cluster MySQL distribué (multi-master, haute disponibilité) ; comme l’installation ne semble pas triviale, Percona a décidé de fournir des images Docker : Docker Images for MySQL Group Replication 5.7.14. A voir s’il existe également pour MariaDB ou si un équivalent existe pour MariaDB. OrientDB Spatial Module in OrientDB 2.2 : avec la version 2.2, OrientDB (la base de données orientée graph et document) s’est doté d’un meilleur support des données géospatiales. Au delà du simple couple de coordonnées longitude/lattitude, OrientDB sait gérer des points et des polygones.

docker orientdb amazon emr spark mysql cluster replication géospatial
29/06/2016

Web, Ops & Data - Semaine 26

Docker La version 1.12 apporte son lot de nouveautés : Docker 1.12: Now with Built-in Orchestration! ; une version “améliorée” de swarm est intégrée nativement dans Docker ; en gros Docker s’orchestre lui-même. Announcing the Docker for Mac and Windows Public Beta : après une phase de béta privée, une phase de béta publique. Introducing the Docker for AWS and Azure Beta : dans la même veine que Docker for Mac/Windows, une solution rapide pour monter un environnement docker sur AWS/Azure ; en s’appuyant bien sûr sur les capacités d’orchestration de Docker 1.12. Introducing Experimental Distributed Application Bundles ; là encore, on peut le voir comme une version améliorée de docker-compose et l’idée est de pouvoir déplaoyer des applications sous la forme d’un “bundle”. More Microservices Bliss with Docker 1.12 and Swarm only : l’article permet d’avoir un avant/après pour mieux comprendre les apports de la 1.12 et voir en quoi elle simplifie la gestion du cluster et le déploiement d’application. Il semblerait que consul ait disparu à moins que pour le moment seul la création d’un cluster par token soit supporté. Je nuancerai également le point sur l’absence de besoin d’un reverse proxy, si cela peut ne pas être nécessaire dans une logique de laboratoire, pour de la production, cela me semble nettement plus discutable. How to use Docker 1.12 Built-In Orchestration and Service Creation : un autre exemple sur les apports de la version 1.12 Introducing the Docker Store Private Beta : Docker lance une market place, version améliorée de Docker Hub permettant aux distributeurs de logiciels d’avoir un nouveau canal de diffusion et un certain nombre de services (sécurité, conformité de licences, etc) Xebian était présent à la DockerCon 16 : compte-rendu en français de la conférence par Xebia. OrientDB Pattern matching with OrientDB : pour un cas d’usage d’une connaissance, nous avons investigué les données Graph comme OrientDB pour matérialiser des relations et des inter-connexions. Le billet montre comment via des requêtes SQL on peut parcourir le graph et définir des pattern. HTML/JS/CSS Comparaison de plugins JS : les select widgets ; “Beaucoup de plugins existent pour rendre plus beaux ou plus pratiques les éléments HTML select, petite comparaison pour choisir le bon” Streams Apache Kafka and Kafka Streams at Berlin Buzzwords ; la CTO de Confluent a fait un tour d’Europe où elle présente Kafka, Kafka Connect et Kafka Streams et surtout sa vision du Stream processing et les impacts que cela a sur notre façon de développer des applications et consommer de la donnée. Ils ont une approche assez pragmatique du sujet, l’ayant mis en place notamment chez LinkedIn et chez d’autres clients. Why Apache Beam ? : Beam est un projet Apache et la version Open Source de ce qu’a implémenté Google pour sa plateforme Google Cloud Data Flow. C’est un modèle de programmation pour traiter de la donnée dans une logique de streaming. Le billet porte sur l’intégration de Beam dans Flink (un moteur de processing temps réel). De quoi voler la vedette à Spark Streaming ?

kafka docker orientdb swarm select stream beam
21/05/2016

Web, Ops & Data - Semaine 20

Python Python et HTML : David a publié une collection de librairies python pour manipuler du HTML en Python. J’utilise déjà la magnifique requests, je vais pouvoir en ajouter quelques-unes à la liste. Elasticsearch How to make a Dockerfile for Elasticsearch : Si vous souhaitez bâtir votre propre container plutôt que d’utiliser [l’image officielle(https://hub.docker.com/_/elasticsearch/)] Docker networking avec Elastiscsearch : rien de nouveau sur le réseau mais plutôt sur le moyen de bien configurer Elasticsearch et Docker Effective elasticsearch plugin management with Docker : la gestion des plugins qui peut avoir un impact sur les volumes (notamment pour la partie config). REST Repenser ses échanges de données client-serveur sur le Web ; un billet qui énonce les limites du protocole REST et surtout présente les approches de Falcor (Netflix) et GraphQL (Facebook) pour compenser ces manques.

docker elasticsearch rest graphql falcor python html
04/05/2016

Web, Ops & Data - Semaine 18

Astuce over HTTP HTTP to HTTP with bash, curl and jq : Le billet explique les principes du ‘chainage de données’ (data pipelining) sur HTTP avec quelques lignes de bash, curl et jq. Sympa pour prototyper et peut-être plus ? Elasticsearch & friends Elastic Srack Release : Elasticsearch 5.0.0-alpha2 : on note principalement l’arrivée d’un plugin permettant la migration 2.3 vers 5.x et un nouveau requêteur sur les percolations. Kibana 5.0.0-alpha2 : Sense, le constructeur de requête Elasticsearch s’appelle maintenant Console et est inclus par défaut dans Kibana. Docker Docker sur Windows Server 2016 (technical preview) : Microsoft et Docker continuent leurs efforts pour rendre Docker disponible sur un environnement Windows Server.

docker elasticsearch kibana http curl jq bash data-pipelining
25/04/2016

DevoxxFR 2016

J’ai pu assister aux 3 jours de Devoxx FR 2016 ; voici les conférences qui ont retenu mon attention en repnant une approche thématique plutôt que chronologique. Code et société La médecine de demain ; Jean-Michel Billaut nous sensibilise aux enjeux de la e-santé et la course qui a commencé depuis 10 ans aux USA, en Chine et dans de nombreux autres pays sauf en France. Nous allons passé du règle où les molécules soignent les maladies à celui où ce sont les données qui nous soignent (séquençage génétique, big data + machine learning, dossier médical numérique, spectromètre de poche pour informer et diagnostiquer). En aggrégeant les conférences Software development, responsibility and ethics: the coming crisis, Algorithmes, les nouveaux pouvoirs du développeur - Slides, Société programmable : développeurs citoyens ou encore The impact of code in society, on aborde différents sujets comme : L’homme automate qui ne réfléchit plus ou qui ne prend pas de recul sur les données qui lui sont fournies avec le retour notamment sur les manipulations de Facebook sur les fils d’actualité de ces membres ou encore la capacité de Facebook à ne pas faire élire Trump par ex. Le code que nous produisons peut donc créer un biais sur nos décisions pouvant aller jusqu’à de la manipulation. Dès lors, il nous faut nous poser des questions sur l’éthique. Doit-on attendre que la loi régule la chose ou bien faut-il comme les médecins ou les avocats que notre profession s’auto-régule ? Le code impacte beaucoup nos sociétés (on prend la liberté d’expression au sens américain du terme grâce à Facebook/Twitter, internet a mis tout le monde sur un pied d’égalité pour l’accès à la connaissance et en terme de fraternité, l’open source a renversé la donne. Reste que économie, polique et informatique requirt tout trois de la confiance pour bien fonctionner. Cette confiance est toute fragile (cf NSA/Snowden, etc) et si elle tombe, quid ? Le Service Public à l’heure d’internet ; retour sur l’évolution de l’Etat en matière de numérique au travers de beta.gouv.fr. Travail & Société De l’utopie de la fin du travail au digital labour : La fin du travail pourrait-elle être un objectif ? Le lien entre travail et progrès technique était de diminuer la quantité de travail tout en améliorant sa qualité. Du coup, à terme, on pourrait imaginer que le travail de l’homme ne soit plus nécessaire. L’auteur fait ensuite le panorama des théories de l’utopie, le travail ne disparait pas totalement mais est limité au juste nécessaire. Passage d’une période où on travaillait par nécessité mais dégoût plutôt que par plaisir ou participer à la réalisation de soi, contrairement à maintenant. Si l’ère numérique permet de faire apparaitre des formes plus intéressantes / agréables de travail, il a aussi ses à coté négatifs : ex de la précarité de certains emplois créées par l’uberisation des services (livreur ou chauffeur indépendant à la solde de qqs startups) La période que l’on vie est-elle réellement la fin du travail ou bien une transformation historique et qu’il faut garder les utopies énoncées comme une boussole vers un avenir possible ? ie que nous n’en sommes qu’à une mutuation de la forme de travail mais que la fin du travail aura lieu bien plus tard ; si elle a lieu ? L’entrepreunariat au féminin : retour sur 10+ ans de combat pour une meilleure prise en compte des femmes dans le monde du numérique. On y parle notamment du mouvememnt #JamaisSansElles et du fait que le numérique est une opportunité pour une meilleure mixité dans le travail. Etant déjà convaincu, je n’en dirais pas plus. // TODO Implémenter le modèle de l’entreprise [de service] de demain. Retour d’expérience du patron de la société de services Zenika dans l’adoption d’une nouvelle forme d’entreprise. Plutôt que d’entreprise libérée pour laquelle il y a plein de fanstasmes, il partle plutôt d’une entreprise reponsabilisante s’appuyant sur 3 piliers. Le premier est d’abaisser le centre de gravité de la décision le plus bas possible mais que cette décision se fait toujours dans l’intérêt de l’entreprise. Ensuite, les décisions sont prises par les personnes compétentes sur le sujet donné. Enfin, pour prendre de bonnes décisions, il est nécessaire d’avoir de la transparence. Le micro-management est remplacé par du feedback immédiat (structure plate) d’une part et par des KPI et la transparence. Les KPI ont pour but d’illustrer le contexte de l’entreprise. Le CEO doit être un Chief Enabler Officer ou facilitateur en bon français. Les 5 axes à prendre en compte sont : donner du sens, le plaisir, l’humain, KISS et la transparence. Ops, Docker & Microservices Déployer vos applications sur un cluster kubernetes avec Ansible : le format Hands-on labs est compliqué à mener et c’est surement ce qui a miné cette présentation. Cela m’a néanmoins permis d’avoir une meilleure appréhension de Kubernetes. L’atelier fut l’occasion de découvrir Kargo (et kargo-cli), une surcouche à Ansible pour déployer un cluster Kubernetes ; ainsi que kpm pour déployer et gérer des applications sur un cluster kubernetes. Traefik, a modern reverse-proxy : j’en ai parlé dans un précédent billet ; la présentation confirme l’intérêt d’un reverse-proxy adapté aux infrastructures micro-services et sachant s’interfacer avec des systèmes comme docker, etcd, consul, etc. J’ai bien prévu de l’utiliser pour mes prochains projets, une fois que j’aurais fini de tout transformer en container docker. Building a unikernel java application : un unikernel est en gros un kernel qui ne contient que le minimum nécessaire pour lancer votre application et qui ne contient rien d’autre. Ce quickie a permis d’introduire le concept et de montrer le déploiement d’une application tomcat dans un format unikernel sur Google Cloud Platform. Si le concept est intéressant en soi, se repose un peu comme docker il y a quelques mois, la question de la maturité et de son écosystème. Même si la technologie unikernel existe depuis des années, on retrouve les problématiques de monitoring, sécurité, orchestration à adresser. A la découverte du service discovery ; on manipule parfois etcd, consul ou encore zookeeper sans trop savoir ce qu’il se passe en leur sein. Cette présentation a été l’occasion de revenir aux basiques sur le concept de service discovery (un annuaire de services) et l’implémentation d’un cluster consul et son utilisation. Ce fut l’occasion de voir le mécanisme des health checks et comment des applications peuvent dynamiquement être informées de l’existence ou non d’un composant applicatif et de gérer des rechargements de configuration à la volée via consul-replicate. Rancher, le (petit) orchestrateur docker qui vous veut du bien ; une introduction assez complète puisqu’elle décrit la configuration de rancher pour le déploiement d’une application 3-tiers et la mise en place d’une stratégie de mise à jour via rolling upgrade et en déploiement blue/green. A voir si Rancher peut aller jusqu’à gérer des environnements de production ou bien si cela reste un outil pour des expérimentatiosns / du dev / des labs et que l’on rebascule sur Kubernetes pour des (grosses) productions ? Microservices IRL: ça fonctionne chez un client, on vous dit comment! ; un retour d’expérience sur le déploieemnt d’une architecture microservices et les problèmes rencontrés. Je suis peut être trop ce sujet en ce moment pour apprendre quelque chose de nouveau, si ce n’est l’éventuel remplacement d’Ansible par Spinnaker pour gérer les déploiements. Dockerized system testing, with a dash of chaos : Arquillian est un framework (java) de test qui permet notamment de tester une application dans un container et de lui appliquer des containtes réseaux (timeout, latence, etc) avec les extensions Arquillian Cube & Arquillian Cube Q. Coté Back Stream processing avec les acteurs Akka : où comment via des composants simples que l’on peut combiner pour traiter des piles de messages de façon concurrente et distribuée (potentiellement). Cela peut éviter de déployer des clusters Spark/Storm/Flink qui ont un coût d’infrastructure non négligeable. Akka fonctionne sur la JVM aussi sur la plateforme .net. Si le pattern des actors vous intéresse, vous pouvez regarder ce qu’il existe pour votre langage favori. 100% Stateless avec JWT (JSON Web Tokens : les JSON Web Tokens peuvent être vu comme les remplaçants des ID de sessions. Au travers des cookies, ils peuvent porter des informations qui sont signées et avec une date d’expiration mais en aucun cas chiffrées. Dans le cas d’une architecture distribuée et contrairement aux id de sessions, n’importe quel frontaux de votre application est en mesure de valider le token, contrairement aux id de sessions, qui, sauf à avoir un système de cache distribué, sont spécifiques à un frontal. Des articles complémentaires sur le sujet chez Stormpath et Auth0. Hadoop à grand échelle : comment croitre sur le long terme ? : un retour d’expérience des équipes de Criteo sur l’exploitation et l’évolution de leur plateforme Hadoop avec des points d’attention sur HDFS et la problématique de la gestion des espaces disques (taille), du nombre d’inodes (HDFS n’aime pas les petits fichiers). Mais aussi les aléas de ma JVM (152 Go) des Name Nodes avec la gestion de la RAM, du Garbage Collector, qui peuvent créer des surprises. La gestion des jobs (1.3 millions lancés sur 15 jours) où il faut gérer les arbres de dépendances des jobs et la dépendance aux données pour bien les faire tourner ; un outil interne “langoustine” permet de visualiser cela. La gestion des utilisateurs pour savoir qui (a) fait quoi et accompagner les utilisateurs du cluster La nécessité de tout automatiser ! Avec 2000+ noeuds, pas le choix. Idem pour les utilisateurs ! Le choix de gérer leur infrastructure en interne ; Historiquement, Criteo a démarré avant que le cloud ne soit assez mature pour accueillir leur contacte. le cloud peut être vue comme trop lent (latence, etc) et vu que la charge est assez linéaire, l’elasticité du cloud n’est pas un argument. Ils estiment au final que leur infrastructure leur coûte 12 fois moins cher que si elle était hébergé chez un fournisseur de cloud. Passage de 200 à 2600 serveurs en 2 ans. Gestion des backups : définir la quantité strictement nécessaire de donénes vitales (entre 3 et 8 Po) ; snapshoté dans un 3ème datacenter. Systèmes distribués, scotch, bouts de ficelle et doigts croisés : une histoire du streaming à Criteo - (Duct-tape streaming at scale (slides)). Récit du passage de la centralisation des logs d’une base MySQL à RSyslog puis à Kafka avec de nombreuses annecdotes et un retour humble puisque c’est toujours en cours (en tous cas, le sujet n’est pas encore fini, il reste des améliorations à porter). Sur Kafka, je retiendrais que si Kafka coté serveur est très performant, il faut par contre prendre le temps de comprendre comment fonctionne le client pour ne pas avoir des comportements “étranges”. Coté serveur, il est important de borner les queues dans la logique qu’il vaut mieux perdre des données que de ne plus avoir de système. Coté Front Conquérir le desktop avec Electron : Electron permet de développer des applications desktop avec des technologies Web. Pour cela, il embarque une instance de Chrome, V8 et Node.JS. La présentation s’attachera à démontrer comment il est simple de développer un petit logiciel de prise de note. Vue.js, une alternative plus simple que React.js et Angular2 : Vue.js se veut un framework très orienté frontend ; Si la syntaxe est assez proche/similaire à celle d’Angular, vue.js se concentre vraiment sur la partie “Vue”. Contrairement à Angular par ex, il n’y a pas d’équivalent du module $http dans le coeur de vue.js. Pour autant, il peut être très complet et embarqué de quoi faire des tests e2e. Un framework a étudier si vous n’avez pas besoin de toute les fonctionnalités d’Angular mais plus des besoins de restituions uniquement (?). Modulariser votre JavaScript avec JSPM et SystemJs ; SystemJS est un “module loader” pour ES6 et le reste par extension. JSPM est un gestionnaire de paquet qui s’appuie sur SystemJS. s’il n’y avait pas le fait que SystemJS était intégré à Angular2, je dirais bien que ce n’est qu’un n-ième système de gestion de packages javascript/css. Côté Bonnes pratiques L’odyssée du Continuous Delivery ; un retour très complet sur le passage de la Société Générale d’une application monolithique avec du code historique et l’équipe associée vers du continous delivery. Cela couvre aussi bien les thèmes humains (passage component teams > feature teams, gestion de la montée en compétence et du changement de culture de l’équipe, etc) que les thèmes techniques (mise en place d’un release train, feature toggling, etc). Living Documentation : vous allez aimer la documentation ! : Après avoir rappelé que la documentation sert à partager un savoir, le rendre accessible et à transmettre pour plus tard, le présentateur indique aussi que certaines documents sont inutiles : shameful comments (le commentaire qui sert à rien et dont on peut se passer avec un code plus lisible, mieux nommé) ou parfois qu’il vaut mieux une bonne conversation plutôt qu’une (mauvaise) documentation pour former quelqu’un qui rejoint une équipe par ex. Lire la documentation doit permettre de comprendre le métier. Plutôt qu’une documentation, il est aussi possible de coller sur un mur (investigation wall) tous les éléments qui permettent d’appréhender le métier, sans parler de stage terrains, etc. Cela peut être plus efficace/performant qu’une documentation classique. Nécessité de séparer la documentation stable (evergreen documentation) de la documentation instable. Pour cette documentation instable, possibilité d’utiliser le BDD (Behaviour Driven Development) qui, au travers d’un scénario, formalise une intention, des exemples concrets et les exceptions le cas échéant. La documentation peut être au milieu du code (commentaires, annotations, etc) et elle est générable par automatisation. Au final, l’auteur cherche à montrer qu’une bonne documentation permet d’améliorer le design de son application et réciproquement. Côté outil et BDD, on parlera surtout de Cucumber et Pickles. Côté Nouveaux horizons La blockchain en détail : une présentation progressive sur les principes, la technologie et les enjeux de la blockchain au travers notamment du bitcoin et d’ethereum. A regarder absolument pour mieux comprendre ce nouvel écosystème, en plus de consulter le site Blockchain France. En synthèse, une belle première expérience à Devoxx, même pour un non-javaiste comme moi ; des retours d’expérience qui font réfléchir et instructifs dans l’immédiat ou bien à plus long terme à titre pro ou perso. Il se pourrait bien que j’y retourne l’année prochaine !

kafka docker devoxx hadoop code société loi travail kubernetes microservice reverse-proxy frontend javascript rancher rsyslog scale documentation médecine unikernel jwt akka electron desktop vue.js continous-delivery
20/04/2016

Web, Ops & Data - Semaine 16

Kafka Hello world, Kafka connect and Kafka Steams : Une introduction à Kafka Connect & Kafka Streams pour traiter les mises à jour de Wikipedia. La question qui va se poser c’est jusqu’où Connect/Streams peuvent aller sans “trahir” les fondamentaux de Kafka (un simple bus de message performant & scalable). A contrario, à partir de quel niveau de logique, un outil comme Spark, Flink ou autre est requis pour traiter les données depuis/vers Kafka. La supervision de Kafka est encore assez jeune et immature ; un retour d’expérience assez complet et intéressant de SignalFX où ils présentent leur démarche et les développements qu’ils ont mené. Si vous êtes clients AWS, ce retour d’expérience sur Kafka et EBS et en quoi les nouvelles offres EBS sont intéressantes dans un contexte Kafka. Container Shipyard : une surcouche à Docker Swarm et une IMH Web pour gérer vos images, containers, registres, etc. Il contient aussi des modules comme une console, des stats, gestion de rôles, etc. Docker a annoncé la sortie de la version 1.11 avec son lot de nouveautés : Une plus grande modularité de l’Engine avec la sortie de containerd ; couche intermédiaire entre l’API et les containeurs en eux même et dont le but est de les piloter. Engine 1.11 : Support des VLAN, IPv6, encore plus de labels, DNS Round robin, etc. Swarm 1.2 : le rescheduling est désormais stable Compose 1.7 : arrivée de docker-compose up --build pour rebuilder et lancer votre stack et docker-compose exec … Docker, container de build : un exemple documenté sur l’utilisation de docker où le container permet de “builder” une application en go et où le livrable est accessible depuis la machine hôte au final. Une expérience autour de clusters fédérés avec Docker Swarm ; l’idée, sous la forme d’un proof of concept est de voir s’il est possible et dans quelle mesure il est possible de faire un cluster de cluster swarm. Dockerbeat ou quand beats rencontre Docker. Il est dès lors possible de remonter les statistiques de votre/vos container(s) docker dans Elasticsearch afin de les indexer. Pour conclure, une petite astuce pour supprimer tous les conteneurs et images docker présentes sur votre poste/serveur. Elasticsearch Elasticsearch chez BlaBlaCar : une vision sur l’utilisation (massive ?) d’Elasticsearch chez BlaBlaCar. Elassandra est un fork de Elasticsearch modifié pour tourner au-dessus d’un cluster Cassandra. L’idée est apparamment de bénéficier des capacités de recherche d’Elasticsearch en profitant de la résilience de Cassandra. Postgres Postgres XL est une version distribuée et optimisée de Postgres ; tout comme CitusDB, dont on a parlé précédemment, la version 9.5r1 apporte ses nouveautés et montre la tendance des projets dérivés de Postgres de se “rebaser” sur les dernières version stables et créer leurs extensions par dessus le socle de base. Est-ce que Postgres 9.5 peut être votre base JSON ? ; même si la réponse est “plutôt non, ça dépend de vos besoins”, l’article a le mérite de retracer les améliorations apportées dans les versions 9.0 à 9.5. Superviser Postgresql ; un panorama des solutions existantes pour les différents besoins de monitoring.

kafka monitoring ebs docker beat shipyard elasticsearch cassandra postgres

Besoin d'un C(P)TO / Architecte « hands-on » ?

On orchestre, on conçoit — et on code aussi. Parlons de votre plateforme, vos données ou votre projet IoT.

Contactez-nous