Plateform TICK Beta 3 of Chronograf : Chronograf 1.1 continue son bonhomme de chemin avec la parution d’une bêta 3 apportant son lot d’améliorations et de correctifs. Container & Orchestration Kubernetes 1.5: Supporting Production Workloads : Kubernetes, dans cette version 1.5, apporte des améliorations notamment sur la gestion des applications statefull (passage d’un statut alpha à beta) et plein de choses en alpha : le support des containers windows, la fédération de cluster kubernetes, la haute disponibilité, etc. containerd – a core container runtime project for the industry : Docker Inc continue de modulariser Docker (Engine) en publiant “containerd” et en prévoyant de le donner à une fondation en début d’année prochaine. Containerd est la partie centrale d’exécution du container. Il a été déployé silencieusement depuis Docker 1.11. L’idée de containerd serait de devenir le “format” universel pour faire tourner des containers sur lequel tout le monde s’appuierait… A suivre dans la guerre des containers et des initiatives de standardisation (ou pas). An Early Look at Ansible Container v0.3.0 : Ansible 2.x permet déjà d’interagir avec les containers docker, ansible-container permet d’aller plus loin dans la gestion des containers avec ansible. Cette version apportera le support du format docker-compose v2 et le support de docker 1.12. Même si je suis parvenu à piloter des containers docker avec Ansible 2.2, j’avoue qu’il y a quelques bugs pénibles et j’ai pas forcément l’impression que ce soit la bonne façon de faire. Peut⁻être que ce module apportera des réponses ou qu’il faut repenser la chose différemment. Making Elasticsearch in Docker Swarm Elastic : Un billet intéressant sur le déploiement d’Elaticsearch dans un contexte Docker Swarm. En effet, la partie pénible est de gérer la découverte par IP des noeuds et de rendre cela accessible de l’extérieur du cluster. Le billet présente des astuces pour le faire. J’aurais bien aimé l’avoir il y a de cela 6 mois à 1 an… NoSQL Redis — The AK-47 of Post-relational Databases : une bonne présentation de la base NoSQL Redis et de toutes ses capacités. ARM Hypriot OS 1.1.2 : vos raspberry pi vont être gatés avec les dernières versions de Docker, Docker-Compose et Docker-Machine. Je détaillerai en janvier la mise en place d’un cluster docker avec Hypriot OS avec 5 Raspberry et 2 Cubietruck qui permettent d’avoir un stockage distribué/résilient avec GlusterFS. Python Maya: Datetime for Humans™ : l’auteur de l’excellent module requests qui permet de faire simplement des appels HTTP, nous fait la même chose mais pour les dates. Sympathique, même si l’auteur admet lui-même que sa librairie ne fait pas tout pour autant. Bonnes fêtes de fin d’année à tous !
Container & orchrestration Kompose: a tool to go from Docker-compose to Kubernetes : en cours d’incubation chez Kubernetes, ce projet permet de faciliter la transition de Docker à Kubernetes en transformant les fichier docker-compose.yml en fichiers Manifests Kubernetes. Un pivot intéressant si on considère que les développeurs vont utiliser Docker (et au mieux Swarm) pour leurs environnements de développement et en production éventuellement Swarm et ensuite vouloir migrer vers Kubernetes pour ses fonctionnalités plus évoluées. Introducing Distributed Cheese: Traefik 1.1 Camembert Is Out! : Traefik, le reverse proxy moderne qui sait s’interfacer notamment avec Docker, Consul, Kubernetes et plein d’autres est sorti en version 1.1.x. Cette version apporte notamment le support de l’API Docker Swarm (Docker 1.12+), une meilleure gestion des contraintes, le support de Mesos, une meilleure gestion des affinités de sessions, un mode cluster pour Traefik (expérimental) et une image officielle docker basée sur alpine. J’ai profité de l’installation d’un nouveau serveur pour déployer Traefik et c’est vraiment agréable de pouvoir déclarer dynamiquement ses containers docker. Par ailleurs, je rappelle que je maintiens des images docker de Traefik pour sa version ARM Docker for AWS Public Beta : l’offre Docker pour AWS passe d’une version alpha à une verion beta. On notera essentiellement qu’il s’agit d’une version plus intégrée avec l’offre AWS que si l’on déployait un docker soi-même. A suivre mais attention à vérifier qu’il n’y a pas un lock-in qui se crée à la fin, que l’intégration apporte un plus et ne nuit pas à la portabilité des containers. Dashboard, Monitoring What’s new in Grafana v4.0 : la fonctionnalité phare de cette version est la capacité de définir des alertes au niveau de chaque élément d’un dashboard. Pour se faire il faut définir les règles à appliquer et ensuite s’appuyer sur la partie notification. Pour ceux qui étaient tentés d’installer Chronograf 1.1 (béta) pour avoir cet alerting en plus des dashboards adhoc de Grafana, ils pourraient bien finalement rester dans Grafana (dont la maturité n’est plus à prouver) plutôt que d’attendre que Chronograf se stabilise… A moins que Chonograf n’apporte une valeur ajoutée de part son intégration native avec Telegraf. Pépites Si vous pensiez que toutes les villes commencent par une lettre, maintenant vous savez que c’est faux avec la ville de ’s_Herenelderen. Vous pouvez mettre vos regexp à jour ! These unlucky poeple have names that break computers : même si l’article concède que ce problème est de moins en moins vrai au fur et à mesure des progrès réalisés et de la prise de conscience par les développeurs, mais s’appeller “Null” ou avoir un nom de famille très long (36 caractères dans l’exemple donné ou même 8 au Japon quand l’habitude est de 4…), cela pose des tas de problèmes dans la vie du quotidien.
Kubernetes Introducing Operators: Putting Operational Knowledge into Software : l’équipe de CoreOS vient de dévoiler les Operators, un complément à Kubernetes permettant, pour des applications stateful, de gérer une logique “métier” (création/suppression, perte d’un composant, mise à jour, sauvegarde, etc). Autant pour des applications stateless, il suffit d’instancier une nouvelle instance du composant, autant pour des applications stateful, il faut parfois avoir des commandes supplémentaires ou récupérer des informations des autres composants. C’est cette logique que les Operators apportent. On le comprend mieux en lisant les billets sur l’Operator d’etcd ou celui de Prometheus TICK (Telegraf, InfluxDB, Chronograf, Kapacitor) InfluxDB 1.1 released with up to 60% performance increase and new query functionality : des améliorations en termes de performance, stabilité (RAM) mais aussi de nouveaux filtres de requêtage. Kubernetes monitoring and utoscaling with Telegraf and Kapacitor : un exemple d’utilisation de la plateforme TICK pour monitorer son cluter Kubernetes mais aussi gérer de l’autoscaling via Kapacitor. Announcing the new Chronograf, a UI for the TICK stack & a complete open source monitoring solution : L’ancienne version de Chronograf se voulait une copie de Grafana et elle est abandonnée. La nouvelle version semble vouloir inspecter les données stockées dans Influxdb pour vous présenter des dashboards mais surtout faciliter l’interaction avec Kapacitor pour définir facilement des seuils et des alertes. La nouvelle version de Chronograf co-existerait donc avec Grafana dont elle pourrait reprendre des dashboards via l’API. Comme le dit l’annonce, c’est encore une version alpha de Chronograf qui est présentée ici, cela doit évoluer tous les 15 jours environ en fonction des retours de la communauté. A noter que le produit est (enfin) open source comme le reste des composants. Pour plus d’info, voir le dépot de chronograf et la doc d’installation Gestion des données personnelles Anonymisation des données : après la fuite des données chez Michael Page pour défaut d’anonymisation des données sur un environnement hors production, le billet sur les stratégies d’anonymisation des données est fort utile et judicieux. Comme le rappelle le billet, avec la nouvelle réglementation européenne sur la protection des données(RGPD), l’entreprise ayant une fuite de données peut être condamnée à payer jusqu’à 4% de son chiffre d’affaires et 20 millions d’euros à compter de mai 2018 - le réglement est applicable depuis mai 2016.
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)
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.
Containers Security Best Practices for Kubernetes Deployment : les points ne sont pas propres à Kubernetes : segmentation applicative via les namespaces, segmentation réseau, quota de ressources, utilisation d’images approuvées, maintient des images à jour, etc. Docker + Golang : le billet présente des astuces pour compiler un programme Go au travers de containers pour illustrer différents besoins (cross-compilation, etc) 12 fractured apps : une revue des bonnes pratiques à adopter pour gérer les fichiers de configurations, les connections à des bases de données dans un monde orientée micro-services. AngularJS AngularJS 2.0 : la version 2 du framework Javascript AngularJS de Google est (enfin) sorti et se dote d’un nouveau site angular.io. Etrangement, j’ai l’impression que c’est un non événement ? Cette version mainte fois discutée, tant attendue et au final ? Ou peut être que React est passé par là et à occuper le trou laissé par cette réécriture d’Angular ? Kafka Event sourcing, CQRS, stream processing and Apache Kafka: What’s the connection? : après un rappel sur ce qu’est CQRS et l’Event Sourcing, le billet décrit les apports de Kafka (et Kafka Streams / Kafka Connect) pour ce type de projet. Announcing the Certified DataStax Connector for Confluent Platform, Kafka Connect se dôte d’un connecteur Cassandra. Il s’agit d’un connecteur de type “Sink’, c’est à dire que vous pouvez pousser des données de Kafka vers Cassandra. TICK (Telegraf, InfluxDB, Chronograf et Kapacitor) La plateforme TICK atteint le palier de la version 1.0 ; InfluxDB, Telegraf et Kapacitor. Pas de grosses nouveautés dans ces releases, juste une stabilisation et le tampon 1.0 ; Chronograf est aussi estampillé 1.0 même s’il s’est fait discret depuis la version 0.13. A voir s’il rattrape son retard sur Grafana… Sécurité Obtenir une bonne note sur Mozilla Observatory : HTTPS/CSP/SRI/CORS/HSTS/HPKP/etc. : Le Mozilla Observatory est un outil d’aide à l’évaluation de la sécurité de votre site web. Le billet vulgarise les technoligies sous-jacentes et donne des pistes pour avoir une bonne note à ce test et améliorer la sécurté de vos sites. Postgres Is Bi-Directional Replication (BDR) in Postgres Transactional? : En gros BDR fonctionne si vous n’avez pas de contraintes transactionnelles fortes. D’autres solutions sont présentées sur le wiki de la fondation Postgres: Replication, Clustering, and Connection Pooling
Elasticsearch 10 Elasticsearch Concepts You Need to Learn : Retour aux bases, si vous voulez des explications sur les différents concepts d’Elasticsearch, c’est une bonne synthèse. Everything You Need to Know About ELK Stack 5.0 : une synthèse des apports & nouveautés de la prochaine version de la stack ELK. How we reindexed 36 billion documents in 5 days within the same Elasticsearch cluster : un très long billet mais avec plein d’enseignement sur la gestion d’un cluster Elasticsearch et la migration d’un index. How to fix your Elasticsearch cluster stuck in initializing shards mode? : petit how-to utile sur la gestion d’un cluster lorsque les shards ont du mal à se redéployer suite à un redémarrage du cluster. ElasticSearch cluster rolling restart at the speed of light with rack awareness : un petit how to pour gérer le restart de son cluster de façon optimisée en tirant partie de la “rack awareness”. Intéressant ! Cassandra Introducing Datastax Entreprise 5.0 : la nouvelle version de l’offre entreprise de Cassandra vient de voir le jour. Elle apporte notamment un modèle Graph (Introduction to DSE Graph). Ayant assisté au Cassandra Days à Paris, j’ai bien aimé l’idée d’avoir un worker Spark et un index Solr sur chaque noeud du cluster Cassandra pour pouvoir travailler au plus près des données et avoir différentes façons de travailler avec selon les besoins. Une combinaison assez intéressante pour manipuler les données tout en restant dans une architecture (relativement) simple ou plus simple qu’une architecture Hadoop. Retour d’expérience sur l’utilisation de Cassandra sur 6play en vidéo ; Retour d’expérience de l’équipe M6Web sur leur utilisation de Cassandra lors des Cassadra Days à Paris en Juin. Wagtail Wagtail, créer des modèles de type de contenu - partie 1 : Wagtail est un CMS développé en python et s’appuyant sur le framework Django. Le billet de blog permet de revoir les étapes de création d’un contenu. Wagtail : Utiliser le modèle Page ainsi que son Manager (partie 2) : dans cette seconde partie, c’est la façon de requêter les objets de contenus qui est traité. Wagtail : Comment écrire les templates (partie 3) : cette partie 3 permet de passer rapidement sur la logique de “template” et des apports de Wagtail sur les templates django traditionnels. Je suis avec intérêt Wagtail et Grav qui sont 2 CMS assez flexibles et avec des interfaces ergonomiques et ce sans rentrer dans des usines à gaz comme Drupal ou eZ Publish.
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 !
Infrastructure Traefik : un reverse-proxy et load-balancer (comme Nginx, HAProxy ou encore Apache+mod_proxy) conçu dans une logique d’architecture micro-services. Il s’interface notamment avec Docker, etcd, consul ou encore une API REST. A tester et surveiller. Une image officielle docker pour Traefik est même disponible Container Elastikube : une solution de gestion d’une infrastructure Kubernetes ; cela fait penser à une version allégée d’Openshift. Containers Containers are not VM : Une clarification par l’équipe Docker sur la différence entre un container et une VM sur la base de l’analogie avec l’appartement (le container) et la maison (la VM). Une maison (VM) contient tout ce dont elle a besoin pour fonctionner alors que pour un immeuble, des ressources sont partagées et chaque appartement de l’immeuble en profite dans une certaine mesure. Docker a annoncé Docker pour Windows/Mac (beta) ; cela permet d’utiliser Docker de façon plus native et intuitive sous Windows/Mac. Pour Windows, cela demande d’avoir Windows 10 pour bénéficier de l’hypervision via Hyper-V. Sur ce sujet, l’équipe Hypriot dans leur revue de Docker pour Mac et Docker pour Windows montre le bonus (easter egg) de cette version à savoir qu’il est possible de faire tourner des conteneurs ARM sous environnement OSX/Windows ; cela permettrait de batir des conteurs pour Raspberry ou des projets IoT plus facilement. Je ne peux hélas pas le tester pour le moment, mais cela semble plus prometteur que Docker Toolbox qui reste un peu complexe à mettre en oeuvre. Rancher, une solution d’orchestration de conteneurs, après avoir annoncé le support de Kubernetes, vient d’annoncer la sortie de la version 1.0. A suivre, même si la notion d’environnement ne permettrait pas une allocation optimale des capacités d’infrastructure (chaque environnement aurait ses hôtes alors que Kubernetes pourrait a priori permettre une mutualisation totale via la gestion des “namespaces” ; à creuser !). Kubernetes, la solution d’orchestration de container (Docker/Rocket) développée par Google, est sorti en version 1.2 avec diverses améliorations et notamment une nouvelle GUI. Kubernetes on ARM vient de sortir sous la version 0.7.0 ; de quoi se faire la main sur Kubernetes avec vos Raspberry ;-) ; une image Rancher est d’ailleurs disponible. Docker en production : la bataille sanglante des orchestrateurs de conteneurs : Pour conclure, Octo compare Docker Swarm, Kubernetes et Openshift et donnant Kubernetes gagant pour le moment. Personellement, vu qu’a minima pour Kubernetes et Docker Swarm, on peut utiliser des containers docker, il est peut être intéressant de combiner les 2 solutions qui répondent plus ou moins bien à différentes problématiques. Je vois assez bien l’utilisation de Docker Swarm dans une logique de développement / labs et plus Kubernetes en effet dans une logique de production pure. Il ne faut pas se cacher que Kubernetes est plutôt “Ops friendly” et remonte la chaine de valeur vers les développeurs quand Docker fait le contraire… Elasticsearch & friends Reindex is coming : Avec Elasticsearch 2.3, vous pouvez (re)copier les documents d’un index et enrichir ses données dans un nouvel index ou bien mettre à jour les documents d’un index existant. Release Bonanza! Elasticsearch, Graph, Shield, Watcher, Marvel, Logstash 2.3, Beats 1.2, and Kibana 4.5 are Now Available! ; on note la sortie du nouveau produit Graph. C’est un plugin Kibana et qui permet de relier vos données et de les présenter sous la forme d’un graphe. A creuser ! Elasticsearch 2.3 est sorti avec comme apport notable la réindexation comme décrit précédemment et la notion de “task”, qui permerttrait notamment d’annuler certaines tâches (comme une réindexation !). Les autres composants sont également mis à jour : Kibana 4.5.0, Logstash 2.3 et Beats 1.2.0, Elastic a décidé d’uniformier ses numéros de versions et tout le monde passe en 5.0-alpha1 avec la sortie de l’Elastic Stack ; au-delà de la convention de nommage, c’est l’engagemet de fournir un socle cohérent pour les produits Elasticseach, Kibana, Logstash et Beats. Les produits Marvel, Shield et Watcher deviennent quant à eux le X-Pack. Je vous laisse consulter les apports d’elasticsearch 5.0.0-alpha1 ou encore le revamping de l’interface de Kibana. InfluxDB & Friends InfluxDB 0.12 est sorti (et précédemment la version 0.11) ; après l’annonce du retrait du mode cluster de la version open source car peu utilisé et qui passe en code propriétaire pour assurer leurs revenus, il y a néanmoins le module Relay qui doit répondre en partie à ce besoin de haute disponibilité / réplication. Sysadmin Teleport ; Une passerelle (bastion) SSH qui permet d’accéder à ses serveurs via SSH ou en HTTPS via une IHM Web. A tester ! Sécurité VNCFail ; vous reprendrez bien un peu de non sécurité: l’analyse des 4 milliards de plage IPv4 remonte 5 millions d’adresse pour lesquelles le logiciel VNC (prise de contrôle à distance) est accessible et au final 2.246 hotes avec des systèmes accessibles sans mot de passe dont des systèmes sensibles (contrôle d’aération, usine éléctrique, etc).
On orchestre, on conçoit — et on code aussi. Parlons de votre plateforme, vos données ou votre projet IoT.
Contactez-nous →