Accessibilité L’accessibilité n’est pas un luxe : un bon billet de rappel sur la nécessité et la relative facilité d’appliquer les bonnes pratiques d’accessibilité, y compris en utilisant les derniers frameworks à la mode. Automatisation Ansible - Defining Variables As Dictionaries : la documentation d’Ansible donne plusieurs moyens d’utiliser des boucles (loops) au travers de listes, tableaux mais pas de dictionnaires. C’est chose fait et la solution est assez séduisante. SPINNAKER: Cloud Native Continuous Delivery Pipeline : présentation de l’outil Spinnaker, initié par Netflix et développé en partenariat avec AWS/Azure/GCP. Spinnaker se concentre sur le déploiement d’applications et supporte le multi-cloud. AWS:ReInvent 2017 Introducing AWS Fargate – Run Containers without Managing Infrastructure : On en a tous rêvé, pouvoir déployer des conteneurs sans avoir à s’occuper de l’infrastructure sous-jacente. Intéressant ! Amazon Elastic Container Service for Kubernetes : L’offre managée de cluster Kubernetes arrive enfin! In The Works – Amazon Aurora Serverless : dans la logique de séparer les capacités de stockage et de processing (un peu comme bigquery l’a fait), Amazon commence à introduire cela au niveau des bases de données avec Aurora. On aurait d’un coté le stockage et de l’autre le processing via du serverless. L’existence réelle du service est prévue pour début 2018. A suivre ! S3 Select and Glacier Select – Retrieving Subsets of Objects : En gros, une interface SQL au dessus de S3 qui permet de récupérer plus facilement les fichiers dont on a besoin. Amazon MQ – Managed Message Broker Service for ActiveMQ : tout est dans le titre, https://www.cerenit.fr/admin/pages/blog/web-ops-and-data-decembre-2017#une version d’ActiveMQ managée Introducing AWS AppSync – Build data-driven apps with real-time and off-line capabilities : AWS entre dans le monde de GraphQL en proposant sa version managée. L’équipe GraphQL en parle ici. AWS RE:invent 2017 : les annonces de la première Keynote ! : Une vue plus complète des annonces de la 1ère Keynote. AWS RE:invent 2017 : les annonces de la deuxième Keynote ! : Une vue plus complète des annonces de la 2nde Keynote. L’AWS RE:invent 2017 en 20 annonces ! ; s’il ne fallait retenir que 20 (!!) annonces de cette édition 2017 de RE:Invent. Cloud EC2Instances.info Easy Amazon EC2 Instance Comparison (code source : un site permettant de comparer (plus) facilement les types d’instances EC2 chez AWS. AWS GDPR Center : AWS met à disposition des ressources pour voir comment ils répondent aux objectifs de la GDPR qui s’applique à compter de Mai prochain et en quoi les plateformes cloud contribuent ou pas à ces efforts. Google Cloud a aussi son centre, tout comme Azure. Servers.LOL : devriez-vous instancier une vm EC2 ou bien utiliser AWS Lambda ? Ce petit configurateur vous aide à prendre la “bonne” décision. Elasticsearch Elastic Stack 6.0 Upgrade Guide : un petit assistant mis à disposition par Elastic pour vous accompagner dans la migration vers Elastic 6.0 pour l’ensemble des composants. Docker Performance Monitoring with Metricbeat and ELK Stack : Tutoriel indiquant comment remonter des métriques Docker (container, réseau, healthcheck, etc) via Metricbeat et leur ingestion dans Elasticsearch puis visualisation dans Kibana. Elastic Stack 6.1.0 Released : le module d’APM a sa propre UI, Beats apprend à faire de l’autodiscovery sur docker en plus de voir la liste de modules s’enrichir, Kibana améliore toujours sa visualisation, etc. Kafka Introducing Confluent Platform 4.0 : nouvelle version majeure de cette plateforme autour de Kafka 1.0 et la consolidation des autres outils autour (Control Center, Kafka Streams, Connecteurs Kafka, etc) Enabling Exactly-Once in Kafka Streams : le billet présente comment se gère le “exactly once message” dans un contexte Kafka Streams. Kafkapocalypse: Monitoring Kafka Without Losing Your Mind : l’équipe de New Relic a transcrit un talk réalisé lors d’une conférence sur un incident majeur qu’ils ont eu avec Kafka et les points de vigilance qu’ils ont développé pour monitorer au mieux leur infrastructure kafka. Ils surveillent les notions de rétention (temps ET espace), la réplication et le retard des consommateurs (“consumer lag”). Si Kafka est une solution très intéressante, son monitoring reste une bête noire pour moi. La nécessité de passer par Confluent Platform et son Control Center semble être une nécessité pour le faire dans de bonnes conditions (ou de devoir monter ses propres dashboards). (No)SQL PostgreSQL et le partitionnement : Point sur le fonctionnement du partitionnement d’une table Postgres et des avancées dans la version 10. Serverless Serverless frameworks and containers : Je connaissais OpenFaas et OpenWhisk de nom mais pas Fn. Il y a aussi Iron en open source. TICK Release Announcement: Telegraf 1.5.0 : 15 nouveaux plugins font leur apparition dans cette nouvelle version de Telegraf. Il ne me reste plus qu’à vous souhaiter de bonnes fêtes de fin d’année et à vous retrouver l’année prochaine pour de nouvelles aventures.
Nouvelle année, nouveau format - au programme une édition mensuelle mixant brèves et des choses plus construites/élaborées (j’espère le mois prochain) En Bref API Specifications and APIs : Réflexion sur la génération automatique de la doc d’une API avec ses avantages et inconvénients et l’idée qu’une API est avant tout un contrat passé entre son producteur et ses consommateurs. Le design d’API REST, un débat sans fin ? (Guillaume Laforge, Devoxx FR 2016) : Revue des composants d’une API, des status code et autres bonnes pratiques. RAML une autre façon de concevoir vos APIs RESTful (Sébastien LECACHEUR, Devoxx FR 2016) : RAML, Restfull API Markup Language, est un moyen de décrire une API. Au-delà de la specs, il y a tous les outils pour concevoir, bâtir, tester, documenter et partager son API. La vidéo permet de faire un tour des capacités de RAML. ARM / RPi Setup Kubernetes on a Raspberry Pi Cluster easily the official way! : Kubernetes, la solution d’orchestration de conteneurs, devient de plus en plus utilisable sur un enrionnement ARM (Raspberry, etc). Il faut que je réessaie ça sur mon Picocluster ; les derniers essais n’étaient pas très probant mais je n’avais pas utilisé apparemment le bon driver réseau (ie flannel et non pas weave pour ARM comme indiqué dans le billet). HypriotOS 1.2 avec Docker 1.13 est également disponible pour vos RPi. Big Data Databricks and Apache Spark 2016 Year in Review : Databricks, l’éditeur de Spark, fait sa revue de l’année 2016 et des apports significatifs réalisés sur Spark : Support SQL, Structured Streaming, Spark 2.x. Introduction to Kafka Streams with a Real-Life Example : l’auteur montre les limites de la combinaison Kafka+Spark (j’en ai vécu une partie) et propose son retour d’expérience sur la migration vers Kafka Streams (et conforte l’opinion que j’avais). Reste la problématique du monitoring de Kafka Streams à améliorer même si des solutions adhoc sont listées. Towards a realtime streaming architecture : dans la continuité du billet précédent, retour d’expérience d’une entreprise passant de Spark+Kafka à Kafka, Kafka Streams, Kafka Connect et Akka pour faire du vrai streaming (et pas du micro-batch). Intéressant de voir qu’ils jugent Flink trop complexe pour le moment au regard de leurs besoins. Globalement, l’article montre le problème récurrent dans une architecture big data de la maitrise de l’ensemble des composants pour bien les faire fonctionner. Confluent, en apportant Kafka Streams et Kafka Connect autour de Kafka, semble avoir trouver le bon créneau combinant (une relative) simplicité technologique et performance. CLI A shell command to create JSON: jo Container & Orchrestration Rancher v1.3: Experimental Windows Containers Support Understanding Docker Networking Drivers and their use cases : si le mode bridge est connu de fait, la description d’overlay et de macvlan valent le détour. Containerus Bellum, ou la chronique des hostilités dans l’écosystème Docker : résumé, panorama et perspectives de l’écosystème des conteneurs et des solutions d’orchestration. Si vous n’avez pas suivi le sujet en 2016, cela vous fait une belle synthèse. Introducing Docker 1.13 : Diverses améliorations au programme avec notamment une uniformisation de la ligne de commande. Ce qui m’intéresse le plus c’est de pouvoir m’appuyer sur un fichier docker-compose pour déployer des containers dans un cluster docker swarm. Des améliorations de commandes, quelques autres nouvelles fonctionnalités et la sortie du mode beta pour Azure & AWS sinon. DevOps 10 astuces Ansible : revue de 10 bonnes pratiques concernant l’outil d’automatisation Ansible. Il me manquait la personnalisation du logger et de ansible.cfg Elasticsearch Numeric and Date Ranges in Elasticsearch: Just Another Brick in the Wall : Elastic (5.2) permet maintenant de définir des index liés à des plages concernant les nombres (entier, flottant, long, double) et les dates. Reste plus qu’à requêter sur ces index. Opinions Tools & Teams : au-delà du “Utiliser le bon outil pour la bonne tâche”, c’est surtout d’utiliser les outils avec lesquelles une équipe est efficace à un instant donnée. La vision a long terme étant d’aller au-delà des outils vers les concepts afin d’avoir une compétence/expérience qui s’affranchit plus facilement des outils (qui ne sont pas éternels). Postgres Simple but handy postgresql features : Sympa le \watch ou jsonb_pretty pour respectivement surveiller le résultat d’une requête et affichrer proprement une donnée au format JSON. Python Records, SQL for Humans : comme tous les projets de Kenneth Reitz (requests, maya, etc), une API simple pour manipuler des données (ici des requêtes SQL) pytz : World Timezone Definitions for Python - permet de faire des calculs sur les dates, la librairie gérerait également les heures d’été/d’hiver dans les calculs. Announcing Pipenv! : Vous réviez d’un outil combinant pip et virtualenv et avec des options supplémentaires, Kenneth Reitz l’a fait durant un week-end… Sécurité Web Security 101 : présentation des principaux concepts, des cas d’exemples et des moyens de se prémunir. Introducing support for Content Security Policy Level 2 : Microsoft Edge se dote du support de niveau 2 de Content Security Policy (CSP) afin de permettre au propriétaire d’un site de mieux protéger ses clients en déclarant les ressources autorisées ou pas. Github’s Post CSP Journey : retour des équipes de Github sur l’implémentation de CSP et les points encore à adresser (spoiler : non, CSP n’est pas l’arme ultime). Ces points sont peut être des cas marginaux pour des sites classiques mais pas pour Github. Intéressant à lire. Web Foundation for Sites 6.3 - A Little Bit Naughty and A Whole Lotta Nice! How much data should my Service Worker put upfront in the offline cache? : si les service worker permettent de faire du cache applicatif coté navigateur, Nicolas pose la question de la stratégie de cache associée. Réflexion utile… From ReactJS to React-Native, what are the main differences between both? : Pas tout à fait web, mais comparaison intéressante sur les différences entre un projet ReactJS et un projet React-Native.
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 !
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)
Javascript Yarn: A new package manager for JavaScript : Facebook sort une alternative à npm, se voulant plus fiable et prédictive (voire idempotent ?) pour le contenu de node_modules, plus rapide (parallélisation et cache hors ligne) et plus sûr avec des mécanismes de contrôle de signature de fichiers. yarn reste compatible avec npm et son registre. Angular 2 Is Out: Should You Start Using It? : la réponse courte est non pour des projets professionnels pour de bonnes raisons (l’écosystème n’est pas encore à jour, peu de personnes expérimentées avec Angular2, le manque de recul/stabilité sur cette version, les changements à venir, etc) et de moins (?) bonnes raisons (documentation incomplète, le pré-requis sur TypeScript). Donc à apparendre tranquillement ou à utiliser pour des POC mais pour le reste, capitalsier sur la version 1.5 et profiter du fait qu’avec les dernières version d’Angular, on peut écrire du code dans l’objectif d’Angular2. MySQL Using the loose_ option prefix in my.cnf : Une bonne astuce à savoir dans MySQL, en préfixant une variable avec loose_, alors au lancement, MySQL va ignorer cette option si elle ne la connait pas. Le billet donne pour cas d’exemple la mutualisation d’un fichier de configuration entre la version MySQL de Percona (qui a ses propres variables) et celle de MySQL ou encore l’anticipation de la mise à jour de MySQL qui permet de déployer un futur fichier de configuration sans craine l’arrêt du service. MySQL 5.7 Performance Tuning Immediately After Installation : l’optimisation d’une base MySQL ressemble parfois à de la magie noire, à moins d’avoir lu High Performance MySQL. Le billet permet de voir les premières variables à ajuster et donne des pistes vers d’autres points à surveiller. DevOps Ansible Galaxy (Via) : Ansible Galaxy est un hub (public) pour l’outil d’automatisation Ansible où il est possible de diffuser/partager/réutiliser des roles ansible, que l’on peut ensuire réintégrer dans ses playbooks. Red Hat vient de décider de la publication de son code source, permettant ainsi d’avoir son progre serveur Galaxy dans vos murs et partager ainsi vos rôles ansible au sein de votre organisation. Vous pouvez aussi contribuer au code pour améliorer le Galaxy public ! Vie Privée Your Social Media Fingerprint : Comment permerttre à un tiers (ici les services en ligne) de récolter des données à votre insu juste grâce au favicon de leur site. L’exmple est connu mais bien expliqué. Il en est de même pour les polices (fonts) hébergées chez Google & co et plus généralement pour les ressources distantes. Toutes les ressources distantes ne vont pas donner le même volume d’information mais a minima, on a votre IP, la date et le site source… Dans la mesure du possible et pour protéger vos utilisateurs, pensez à rappatrier les ressources distantes sur votre site.
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.
Il y a de cela une dizaine de jours, la partition système d’un serveur d’un de nos clients est passé en lecture seule suite à un problème de consistence sur le disque. Pour les services en cours et ne dépendant pas de fichiers sur cette partition, les services continuaient de fonctionner. Pour les autres, ils étaients hors service ou dans une situation de dsyfonctionnement dès lors qu’ils avaient besoin d’écrire un fichier sur la partition système. Pour rétablir le service dans les plus brefs délais et investiguer ce problème dans un second temps, nous avons décidé de créer un nouveau serveur, de lui attacher les données et l’IP du serveur hors-service. Cette opération a été grandement facilitée vu que nous utilisons dans ce cas l’offre IAAS de Gandi : en quelques clicks, un nouveau serveur a été provisionné, et les disques contenant les données et les backups ont été attachés au nouveau serveur.
Traefik Pour les amateurs de containers docker au format ARM : traefik-arm Traefik active load balancer on Ranger : Rancher, une solution d’orchestration de containers Docker, intègre Traefik en mode expérimental. OrientDB OrientDB v2.2 GA - Improved Security, Performance, Operations & APIs : la base qui mixe documents et graph sort en version 2.2 avec diverses améliorations de performances, sécurité et un nouveau module Teleporter pour faciliter la migration de bases SQL vers OrientDB. Une série de billets présente Teleporter (OrientDB Teleporter - Making Migrations Easier (Part 1), OrientDB Teleporter - Making Migrations Easier (Part 2)) Ansible Six Ways Ansible Makes Docker-Compose Better : Etat des lieux et perspective sur l’intégration Ansible/Docker pour faciliter la vie de ses déploiements. Introducing Ansible 2.1: Networking, Windows, Azure, and Containers : Ansible dans sa version, amène des améliorations sur la gestion des équipements réseaux (Ciso, Juniper, etc), un meilleur support d’Azure et Windows et pour ce qui m’intéresse et comme décrit précédemment, un support de docker plus complet. Revue de code Mention bot, cibler la revue de code : Eric nous fait découvrir, en plus du feedback par emoj, mention-bot qui permet de déterminer qui doit relire les Pull Requests (PR) d’un projet. Kafka Announcing Kafka 0.10 and Confludent Platform 3.0 : Kafka 0.10 : Les Kafka streams sont officiels ; cf Introducing Kafka streams ; stream processing made simple Kafka 0.10 : Les messages ont maintenant un timestamp Dans sa version propriétaire, Confluent Platform se dote d’une interface de monitoring “Confluent Control Center” et d’une interface de gestion des connecteurs. Open sourcing Kafka Monitor ; LinkedIn rend open source son framework de monitoring Kafka qui semble aussi faire des tests de non régression. Paris Kafka Meetup -Introduction, concepts et architecture : Présentation assez claire sur Kafka ; à voir si les slides sont suffisament autoportantes ou pas. Paris Kafka Meetup - How to develop with Kafka : Premières intéractions avec un cluster Kafka coté Producer et consomumer.
On orchestre, on conçoit — et on code aussi. Parlons de votre plateforme, vos données ou votre projet IoT.
Contactez-nous →