Postgres

29/11/2017

Web, Ops & Data - Novembre 2017

Big Data Compte rendu du Spark Summit 2017 (Dublin) : La conférence européenne annulle de l’éditeur de Spark, Databricks, a cherché à montrer que le Streaming et le Deep Learning sont/seront bientôt plus accessibles via Spark et également la plateforme cloud DataBricks. Dataviz Grafana 4.6 Released : Nouvelle version de l’outil de visualisation des bases de données time series mais pas uniquement avec l’ajout de la source Postgres, du support de l’alerting pour Amazon Cloudwatch, des annotations simplifiées sur les graphs et autres améliorations sur la base prometheus. Wizzy : il s’agit d’un ensemble de script pour versionner et se simplifier la gestion de ses dashboards réalisés sous Grafana. Pas encore testé, sous peu ! Cloud Bootstrapping a Cloud with Cloud-Init and HypriotOS : j’avais croisé Cloud-Init dans Rancher OS mais n’avais pas eu le temps d’investiguer le sujet. Récemment, un podcast avec son créateur m’a permis d’en savoir plus sur le projet, à savoir que c’est un ensemble de script python qui permettent de configurer une machine lors de son initialisation (boot). Cet article permet du coup d’en avoir un exemple pratique par la configuration d’une image pour un Raspberry Pi 3 installant automatiquement le logiciel NextCloud sous la forme d’un container Docker. Elasticsearch An Ansible role to Manage your Elasticsearch Clusters : Synthesio publie son playbook ansible pour gérer des clusters Elasticsearch ; vu les clusters gérés, il y a surement de bonnes choses à récupérer - la limite étant peut être que pour un cluster de débutant, cela pourrait être trop complexe au regard du besoin. A évaluer suivant votre contexte. Operating Large Elasticsearch Clusters : un retour d’expérience de l’équipe Synthesio sur la bonne gestion de leurs clusters ElasticSearch lors des Sysadmindays il y a peu. La Stack ELK passe en 6.0 : Elasticsearch 6.0.0 GA released : mise à jour sans downtime, index filtré, meilleures performances, meilleure résilience et meilleure sécurité (mot de passe, usage de TLS). Logstash 6.0.0 GA released : il est désormais possible d’avoir des pipelines dont l’exécution se fait en parallèle et via X-Pack, il y a maintenant une UI pour piloter vos pipelines. Kibana 6.0.0 GA released : Plein d’améliorations au programme : Export CSV, Amélioration de l’UI, Mode lecture seule pour pouvoir partager des dashboards et d’autres nouveautés spécifiques à X-Pack. Beats 6.0.0 GA released : capture des données Docker/Kubernetes, auditbeat pour captuer les données d’auditd, une meilleure gestion des modules et de leur configuration, amélioration de performance et du stockage des données. Devez-vous migrer vers Elasticsearch 6 : l’équipe Jolicode passe en revue les avancées de la version 6 et globalement conseille de passer vers cette version 6. GraphQL Modernisez vos API, passez à GraphQL ! (slides et vidéo) : Une introduction à GraphQL présentée à Codeurs en Seine 2017. Je reste toujours sceptique sur GraphQL, si coté client cela semble magique, personne ne montre la partie backend pour que la “magie” opère. The GraphQL stack: How everything fits together : état des lieux suite à GraphQL Summit 2017 sur les parties cache, tracing (suivi d’une requête de bout en bout du système) et composabilité d’API (une requête GraphQL qui intérogge plusieurs API au lieu d’une). Kafka Apache Kafka Goes 1.0 : cette version 1.0 représente plutôt la complétude à l’égard d’une vision de ce que devait être Kafka que de sa stabilité ou de sa capacité à être utilisé en production. Le billet énoncce les derniers apports mais reviens surtout sur tout cette génése et la vision associée au produit. (No)SQL Memento PostgreSQL 10 : un petit memento pour Postgres 10 - toujours utile à avoir sous la main ! Time Series InfluxDB 1.4 Now Available: InfluxQL Enhancements, Prometheus Read/Write, Better Compaction and a lot more! : au programme de cette version des améliorations sur InfluxQL avec des commandes permettant de mieux connaitre les performances des requêtes (EXPLAIN & SHOW CARDINALITY), le support des endpoints prometheus en lecture/ecriture, des améliorations sur la compaction ainsi que le serveur http et le client (gestion des connexions). D’autres fonctionnalités plus expérimentales sont aussi disponibles. Announcing IFQL – A New Query Language and Engine for InfluxDB : parmi les nouvelles fonctionnalités expérimentales de InfluxDB 1.4, il y a IFQL, le nouveau langage de requêtage d’InfluxDB. La syntaxe s’apparente à celle de Javascript avec l’usage de fonctions et la possiblité d’enchainer des fonctions. select(db:"foo") .where(exp:{"_measurement"=="cpu" AND "_field"=="usage_system" AND "service"=="app-server"}) .range(start:-12h) .window(every:10m) .max() Announcing Prometheus 2.0 : Nouvelle version de la base de données orientées time series hébergée par la CNCF et qui a le vent en poupe. Cette version apporte notamment des améliorations en termes de performances (usage CPU, stockage, usage IO) TICK-Tac - Il est l’heure de collecter et exploiter vos données temporelles : les slides de mon talk à la conférence Codeurs en Seine 2017 sur les bases de données temporelles sur la base de la plateforme TICK (Telegraf, InfluxDB, Chrongraf, Kapacitor) et Grafana. En prime, la vidéo

spark grafana tick cloud-init elasticsearch elk graphql kafka postgres influxdb prometheus codeurs en seine
25/10/2017

Web, Ops & Data - Octobre 2017

Agile Isolation Continue : choisir librement l’ordre des mises en production : récit de la migration du modèle Gitflow vers un modèle où chaque fonctionnalité est isolée dans une branche dédiée et peut être réintégrée dans la branche de production aisément et rapidement. A contrario de Gitflow où la livraison contient un ensemble de fonctionnalités, là il est possible de moduler les fonctionnalités à déployer en fonction de son avancement et des besoins de déploiement. Cela n’empêche pas de tester ses branches et de déceler les bugs, voir même leur découverte a été accélérée. Big Data Genesis of M6’s Datalake : un retour d’expérience de l’équipe de M6 depuis leur usage d’une Data Management Platform d’un éditeur vers leur propre solution Hadoop avec le choix des composants et de l’infrastructure. Container et Orchestration DockerCon Europe 2017 Highlights : Docker Entreprise va bientôt supporter nativement Kubernetes (en plus de Swarm), Docker for Mac et Windows vont également inclure Kubernetes (via le projet minikube). Compte-rendu DockerCon EU 2017 : un compte-rendu plus détaillé de la DockerCon par les gens de WeScale. Traefik 1.4 — Roquefort Is Here, And It’s Huge! : Custom & Security Headers, multi-architecture (arm, etc), amélioration de l’authentification, support du proxy protocol et gestion des pages d’erreurs sont notamment au programme. Il est bon de voir ce produit s’améliorer de version en version, en attendant de voir ce que donnera Sozu. Elasticsearch 5 Filebeat Pitfalls To Be Aware Of : la sensibilité de yaml, le registre, le renommage/la suppressio n de fichiers de log, le multi-pipelines et l’usage CPU dans certains cas. Au passage, des recommandations d’options sur ces différents points. Elastic APM enters alpha : Annoncé précédemment, Elastic commence à montrer son programme d’APM (Application Performance Management) avec une version alpha. Il ne permet de monitorer que des projets python ou node.js pour le moment. Il est fourni avec une première intégration dans Kibana. Ce produit est intégré dans la version 6.0.0 rc1 Licences & Open Source Facebook grants full patent rights to all GraphQL users : après le débat le mois dernier sur la/les licences de ReactJS & co, Facebook a mis la spécification de GraphQL sous une licence libre (Open Web Foundation Agreement) et les implémentations Graphql.js et Relay sous licence MIT. Cela pourrait accéler le développement de l’écosystème GraphQL maintenant que les restrictions/doutes sont levés. Mobile React Native et CodePush : déployer sans compter : présentation de l’outil CodePush qui permet de mettre à jour son application mobile (basée sur React Native ou Cordova) sans repasser par les store pour un certain nombre de cas. Voir les limitations en fin d’article. (No)SQL Scaling the GitLab database : retour d’expérience de l’équipe de gitlab pour faire scaler la base de données du service gitlab.com. A la fin, pgpool et le hot standby ont été écartés, tout comme le sharding au profit de pgbouncer. Comme ils s’imposent d’intégrer les solutions qu’ils utilisent dans le produit (principe du eat your own food), cette solution permet d’avoir la haute disponibilité dans Gitlab Entreprise.

docker elasticsearch traefik mobile postgres scale big data agile licence apm
27/09/2017

Web, Ops & Data - Septembre 2017

Architecture Découplage, découplage, découplage ! : revue de 3 méthodes de découplage (format, localisation, temporalité) pour vos programmes avec forces et faiblesses de chacun. CLI Use .bashrc.d directory instead of bloated .bashrc : Une bonne astuce pour gérer tout ce que l’on veut mettre dans .bashrc sans que cela devienne une pagaille monstre : mettre tout dans un dossier et “sourcer” l’ensemble des fichiers s’y trouvant. Du coup, ça peut se versionner plus facilement/atomiquement ;-) Cloud AWS – Séparer la production du développement : article sur le séparation et la gestion des accès à une équipe de développement au sein d’AWS. AWS – Pourquoi devez-vous créer un VPC ? : retour sur ce qu’est un réseau privé virtuel chez AWS et comment il fonctionne / ce qu’il contient. Je ne connaissais pas l’option HA, intéressante, même si potentiellement chère. Saga de l’été : E01 Construction d’une infrastructure multi-cloud, Saga de l’été : E02 Découverte de service et répartition de charge multi-cloud et Saga de l’été : E03 Mon orchestrateur de conteneurs multi-cloud : un retour complet et intéressant sur l’implémentation d’une infrastructure multi-cloud (AWS, GCP) au travers des outils hashicorp avec Terraform, Nomad et Consul. Les architectures Serverless : une présentation assez complète des architectures serverless (FaaS, BaaS), leurs avantages/inconvénients, leurs objectifs/intérêts, etc et en quoi ces architectures diffèrent du IaaS, PaaS, SaaS, Container, etc. Dashboard Graphana 4.5 Released : des améliorations concernant surtout Elasticseach, Prometheus, MySQL, la capacité de rendre des valeurs cliquables pour investiguer une donnée, ainsi qu’un inspecteur de requêtes. Docker Preview: Linux Containers on Windows : annoncés à la DockerCon en Mai/Juin dernier, cela va arriver avec la version 17.09 de Docker : le support des conteneurs Linux depuis un hôte Windows. Jusqu’à présent, un hôte Windows ne pouvait faire tourner que des conteneurs Windows. A priori, on peut maintenant faire les 2 simultanément. Docker Official Images are now Multi-platform : enfin ! Plus besoin de construire des images spécifiques pour ARM vs 64 bits, les images officielles de Docker savent le gérer nativement et de façon transparente. Avoir le même Dockerfile que l’on soit sur un serveur 64 bits ou un raspberry, cela va faciliter les chaines de développement et déploiement. DockerHub Official Images Go Multi-platform! : un retour plus complet sur la gestion du passage au multi-platform des images Docker. Documentation Hi, my name is README! - WriteTheDocs 2017 : bonnes (et mauvaises) pratiques sur la rédaction du fichier README qui est le point d’entrée sur votre projet. Elastiscearch A Full Stack in One Command : Elastic, pour appréhender les capacités de la stack Elastic, propose de mettre à dispositon des examples permettant de tester cette stack en 1 seule commande (et via l’utilisation de Docker Compose). Un premier cas est décrit, d’autres devraient suivre… Elastic Stack 5.6.0 Released : Cette version de la stack Elastic prépare la migration vers Elasticsearch 6.0 et apporte quelques nouveautés, dont notamment un client REST Java de haut niveau pour Elasticsearch. Kafka Kafka 0.11.0 == ♥ : petit tour des améliorations de la version 0.11 de Kafka apportant les headers dans les messages, le support du “exactly once” via des notions d’idempotence et de transactions. Exactly-once Support in Apache Kafka : le co-fondateur de Confluent revient sur la signification de “Exactly-once support” dans Kafka et sur son implémentation. Exactly-once Semantics are Possible: Here’s How Kafka Does it : la même expliquée par la CTO de Confluent. Introducing KSQL: Open Source Streaming SQL for Apache Kafka : Kafka se dote d’une interface SQL permettant de faire des requêtes de façon continue (continuous queries) et de requêter des topics kafka sous forme de stream et/ou de table et de mener quelques opérations dessus. Cela est basé sur l’API de Kafka Streams, il y aura un KSQL Server qui exécutera les requêtes KSQL à l’encontre d’un cluster Kafka. C’est encore en developer preview mais cela peut être intéressant à terme. Mais c’est quoi Kafka : une présentation synthétique de Kafka et son écosystème pour bien appréhender cette plateforme. BigData Hebdo - Ep 47 : Kafka, SQL, Beam & co : un excellent épisode du podcast BigData Hebdo faisant un point très clair sur les annonces Kafka (mais aussi sur Beam) It’s Okay To Store Data In Apache Kafka : la question abordée dans l’épisode de BigData Hebdo trouve du coup un peu sa réponse dans ce billet où le co-fondateur de Kafka indique qu’il est possible de stocker ses données dans Kafka. Après, faut-il le faire, c’est un autre débat :-) Kafka Wakes Up And Is Metamorphosed Into A Database : opinion sur la “métamorphone” de Kafka en base de données avec une opinion rigolote : “It would have been far funnier, of course, if Kafka woke up one morning and had been turned into CockroachDB”. Crossing the Streams – Joins in Apache Kafka : le billet explique les capacités de jointure qu’il est possible de réaliser dans un contexte Kafka Streams. En fonction de si vous manipulez des KStreams ou des KTables, vous pourrez faire différents types de jointure (inner join, left join ou outer join). Licences et Open Source On React and Wordpress : Suite aux histoires de licence autour de celle de ReactJS et de la fondation Apache interdisant aux projets qu’elle héberge d’utliser React, c’est au tour de Wordpress d’abandonner React. De l’importance de bien évaluer la licence dans le cadre de l’évaluation des produits que nous retenons pour des projets. 3 Points to Consider before Migrating Away from React Because of Facebook’s ‘BSD+ Patent’ License : l’article nuance les propos tenus ici ou là et sont rédigés par un juriste spécialisé dans les brevets. Par défaut, Facebook n’a pas prévu d’utiliser ses brevets à l’encontre des autres. Ensuite, le brevet porte sur un concept et non sur le code en lui-même donc toute autre librairie/framework implémentant le même concept peut tout autant être poursuivi par Facebook s’ils se retrouvaient dans une condition pour le faire. Il resqte quelques cas de si je traduis en justice Facebook et inversement mais je vous les laisse les consulter pour ne pas faire d’erreur d’interprétation. Relicensing React, Jest, Flow, and Immutable.js : Facebook au final va mettre sous licence MIT les nouvelles/prochaines versions de ces logiciels et se pose la question pour les autres (notamment GraphQL). A voir si cela résoud vraiment le problème ou pas ou si cela ne serait pas pire. Microservices Monolith First : Martin Fowler constate que les migrations réussies vers des micro-services se sont faites à partir de monolithes. A contrario, démarrer un projet en micro-services se solde souvent par des échecs. Il “recommande” donc de démarrer par un monolithe et de le modulariser puis de l’éclater en micro-services. NoSQL Redis 4.0.0 released : la version 4.x de la base Redis est sortie cet été et apporte son lot de nouvelles fonctionalités (réplication améliorée, appararition des modules, amélioration du cache, amélioration du monitoring, etc). BigData Hebdo - Ep 46: Elassandra : Vous vouliez le meilleur des mondes entre Cassandra et Elasticsearch - c’est désormais possible avec Elassandra. Durant cet épisode, le créateur d’Elassandra explique comment il s’y est pris pour créer ce projet et atteindre cette promesse de combiner le meilleur des deux mondes via une intégration la plus légère possible et sans réduire les fonctionnalités de chaque outil. SQL Geofile: Getting Started with pgRouting et Geofile: Getting Started with pgRouting using Esri Shapefiles: pgRouting est une extension Postgres s’appuyant sur l’extension géospatiale PostGIS permettant d’avoir une fonctionnalité de routage (plus court chemin entre 2 points, logique du voyageur, etc). L’article explique comment utiliser cette extension sur la base d’un tour des chateaux anglais. The MySQL High Availability Landscape in 2017 : the elders, the adults and the babies : panorama des solutions de haute disponibilités avec MySQLdepuis les solutions historiques jusqu’au plus récentes. Streaming The canonical new book about stream processing : une nouvelle ressource sur le streaming via les équipes de Google Cloud Platform. Pas encore lu mais semble intéressant. Vie du développeur Le demi-cercle (épisode 1), Le demi-cercle (épisode 2 : voir et avancer), Le demi-cercle (épisode 3 — Communication Breakdown) , Le demi-cercle (épisode 4 — Driver / Navigators) , Brown Bag Lunch, Conseils à emporter, Crise / Opportunité, Le 5ème étage, Que faire ?, Soit… soit…, Boites et flèches, Le prochain copil, la faille, Poussière, L’hypothèse et la règle Déplacements, Jouer et Ranger, Arrangements : moment de vie d’un développeur sur une application ayant vécu et qui corrige un nième bug ; et si c’était l’occasion de prendre une pause et de repenser la chose ? Je vous laisse lire… The Art of Pull Requests : des bonnes pratiques pour mener des pull requests de façon bienveillante. Web The State of the Web avec son transcript : Etat des lieux et bonnes pratiques sur les différentes sujets liés au plateformes web (webperf, optimisation, outils, etc). Chrome to force .dev domains to HTTPS via preloaded HSTS : pour ceux qui utilisent des urls en .dev pour accéder à leurs environnements locaux de développement, Chrome va bientôt forcer le passage en https pour cette extension. HTTP Immutable Responses : nouvel argument immutable pour l’entête Cache-Control de sorte que le navigateur ne vérifie plus si la ressource a été modifiée ou pas (fini les 304) durant la période de cache qui a été définie pour cette ressource. Fiabiliser les connexions sécurisées avec HSTS (HTTP Strict Transport Security) : petit topo sur HSTS, mécanisme qui permet d’indiquer que votre site ne doit être servi que via son url sécurisée et gérer la transition http > https.

docker elasticsearch bash kafka stream grafana postgres mysql architecture cli aws vpc multi-cloud serverless documentation ksql licence microservice redis cassandra elassandra hsts immutable
31/05/2017

Web, Ops & Data - Mai 2017

Conteneurs Docker dans un contexte hybride Windows et Linux : si vous l’avez raté, le retour d’expérience suite à une mission autour de docker dans un environnement Windows et Linux tant au niveau des VMs hôtes que les OS de conteneurs. Container isolation gone wrong : un exemple intéressant où des conteneurs a priori indépendant et isolés se marchent l’un sur l’autre au travers des appels au noyau linux. Même si chaque container est “relativement” isolé des autres, il ne faut pas oublier qu’ils reposent tous sur le même kernel parent. Containers, VMs… Comment ces technologies fonctionnent et comment les différencier? (Quentin Adam) : l’article précédent m’a rappeler cette vidéo de Quentin Adam à Devoxx expliquant les différences entre containers et VMs. Un conteneur est un process linux relativement isolé les uns des autres mais rien de plus. Les plus ciniques pourraient dire que cela ressemble à de l’hébergement mutualisé d’il y a quelques années avec Apache et mod_php ;-) Elasticsearch X-Pack alternatives : X-Pack est un ensemble de produits additionnels pour ElasticSearch couvrant les besoins de Sécurité, Monitoring, Alterting, Reporting, Graph et Machine Learning. Ce produit est soumis à licence et de mémoire, le prix est assez salé. Le billet liste différentes alternatives suivant les besoins (non testées). Construire un bon analyzer français pour Elasticsearch : un tutoriel assez progressif sur la mise en place d’un analyser français pour vos données dans Elasticsearch. Très pédagogique ! HTML5 It’s time for 2.0! : Polymer, le framework (?) initié par Google et permettant d’utiliser les Web Components sort en version 2.0. Une éternité que je n’avais plus entendu parler de Polymer. Le point intéressant étant de voir que les “polyfills” requis pour faire fonctionner Polymer réduisent significativement au fil du temps et de l’implémentation requis par les Web Components dans les différents navigateurs. JSON JSON Feed : Un Feed RSS/Atom au format JSON plutôt que XML. On a pu tous en rêver à un moment ou à un autre ou le réaliser à la volée via une conversion XML vers JSON. Voilà une première spécification. Micro-service Enough with the microservices : les micro-services, c’est tendance, tout le monde veut en faire à tort ou à raison. Pour autant, faire des microservices, ce n’est pas simple et ce n’est pas la panacée ou la “balle en argent” qui va résoudre tous vos problèmes. Le billet revient sur les défis d’une approche microservice pour conclure qu’avant d’envisager des micro-services, il vaudrait mieux déjà savoir gérer un monolythe modulaire. La modularité peut déjà répondre à beaucoup d’enjeux de scalabilité, découplage, etc sans avoir besoin de rentrer dans le monde des micro-services et des défis techniques et humains associés. Postgres Why Use Postgres (Updated for Last 5 Years) : ou la revue rapide de toutes les fonctionnalités qui vous feront aimer et utiliser Postgres comme base relationnelle. Postgres 10.0 beta1 : la fabuleuse base de données Postgres continue son bonhomme de chemin avec des avancées sur la réplication logique, du partitionning, de la recherche full text sur le stockage JSON & JSONB, un rôle dédié au monitoring, etc. Les branches if/else/endif dans psql (PostgreSQL 10) : Avec Postgres 10, le client pourra exécuter des boucles conditionnelles (if/else if/else/end) sur la base d’expressions SQL.

dokcer container vm elastic html5 json feed micro-service postgres
26/04/2017

Web, Ops & Data - Avril 2017

Container & Orchestration Kubernetes 1.6: Multi-user, Multi-workloads at Scale : à l’occasion de KubeCon à Berlin, sortie d’une nouvelle version de Kubernetes avec son lot de nouveautés, de nouvelles fonctionnalités et de fonctionnalités qui évolue de alpha > beta > stable en fonction de leurs maturités respectives. 4 grands axes d’amélioration : scaling avec le support jusqu’à 5.000 noeuds / 150.000 pods est supporté via la fédération de clusters, sécurité avec la mise en place de RBAC (Role Based Access Control) et amélioration de kubeadm pour initialiser votre cluster, scheduling amélioré pour mieux gérer la distribution des workloads sur votre cluster et enfin le provisionning dynamique du stockage pour simplifier la vie et la gestion du stockage par une allocation à la demande. DevOps Déployer son infrastructure Google Cloud Platform grâce à Terraform : Introduction à Terraform, l’outil de provisionning d’infrastructure développé par HashiCorp dans un contexte Google Cloud. D’ailleurs Terraform 0.9 vient de sortir. Terraform & Scaleway - Getting Started : un autre exemple d’utilisation de Terraform assez bien expliqué dans un contexte Scaleway IT Landscape for sysadmins : Panorama des solutions et outils opensource à usage des profils sysadmin/devops regroupés par catégories. Tutorial: How to test your docker image in half a second : Ce tutoriel montre comment tester le bon fonctionnement d’une image docker via l’outil goss. Goss, une alternative à serverspec, permet de tester et valider la configuration d’un serveur ou d’un container dans le cas présent. Announcing Longhorn: an open source project for microservices-based distributed block storage : Rancher sort le projet Longhorn, un système de stockage block distribué (et non pas un système de fichier distribué comme Ceph, GlusterFS ou Minio). Compatible uniquement avec Docker pour le moment, prochainement avec Kubernetes, reste à voir justement comment la partie système de fichiers sera traitée. Projet intéressant en tous cas. RancherOS Hits General Availability : la mini-distribution Linux optimisée pour lancer des containers Docker, Rancher OS, sort en version GA. HTML5 Practical CSS Grid: Adding Grid to an Existing Design : la dernière nouveauté CSS, c’est la grille. Une fois cette grille définie, on peut y positionner les éléments de son choix. L’article permet de voir un cas pratique de mise en place de cette grille dans le cadre de la refonte d’un blog. On y voit aussi les quelques limitations et soucis que l’on peut actuellement rencontrer avec ce nouveau système disponible dans tous les navigateurs ou presque depuis Mars 2017. Javascript What’s new in Angular 4? ou Angular 4.0: La version 4.0 vient de sortir, revue des nouveautés et des changements pour ceux qui s’intéressent (encore) à AngularJS. Kafka Kafka Streams 101 : un article simple et pédagogique sur Kafka Streams, la librairie Java qui permet de consommer ou de produire des messages dans un topic kafka. MySQL How we Upgraded a 22TB MySQL Cluster from 5.6 to 5.7 (in 9 months) : retour d’expérience sur la migration d’un cluster MySQL de 22 To de MySQL 5.6 vers 5.7 et les écueils rencontrés. Intéressant. Postgres https://github.com/begriffs/postgrest : Pour permettre de mettre une API Rest devant votre base Postgres. Un écosystème existe autour de cette solution pour facilement l’intégrer dans votre projet. Python Python’s Instance, Class, and Static Methods Demystified : Tout est dans le titre ! Je connaissais peu les “class methods” et “static methods”. Cela aurait pu m’être utile pour mon précédent projet ! Building microservices with Python (Part 1, Part 2, Part 3) : un récit assez complet pour batir un microservice s’appuyant sur Flask. Les autres outils intéressants sont connexions (API, oAuth, OpenAPI Specs), Flask-injector pour l’injection de dépendance et fastavro

kafka stream container kubernetes rest python terraform rancher mysql postgres microservice angularjs test css grid
22/02/2017

Web, Ops & Data - Février 2017

Admin Sys htop explained visually : htop expliqué. Si vous avez d’autres questions sur les commandes shell : Explain Shell HTML,JS,CSS Les sections HTML, CSS et JavaScript de MDN sont disponibles en français : " TL;DR : Les 1 749 pages de MDN pour les sections HTML/JS/CSS sont désormais disponibles, à jour, en français." ; MDN (ou plus longuement le « Mozilla Developer Network ») est un wiki, documentant les technologies web. Si la langue de Shakespeare vous rebutait, vous n’avez plus aucune raison maintenant. Impréssionnant travail en tous cas ! Machine learning Avec cette première série de 3 billets, Introduction au machine learning, Premiers tests avec le machine learning et Une affaire de logistique, Thibault Jouannic nous emmène dans le monde du machine learning de façon pédagogique et fun. Cela permet de dédramatiser tous ces termes barbares pour rendrer progressivement dans ce monde et commencer à l’appréhender. Un joli travail de vulgarisation ! (No)SQL RethinkDB joins The Linux Foundation : l’arrêt de la société (Octobre 2016) ne signifiera donc pas la fin du projet opensource associé. Il est peut être encore un peu tôt pour statuer sur la pérénité du projet, mais au moins, il y a une lueur au bout du tunnel. Pour rappel, RethinkDB est une base de données scalable, orientée temps réel et document (JSON). L’article permet de voir également les enjeux de licences/propriété intellectuelle. RethinkDB versus PostgreSQL: my personal experience : Un retour d’expérience sur RethinkDB vs Postgres avec Postgres qui gagne à la fin (comme toujours ! :-) ). Il semble néanmoins avoir un volume de données et un traffic que tout le nonde n’a pas. Is Postgresql good enough? : revue des différents cas d’utilisation des bases NoSQL et voir comment / dans quelle(s) mesure(s) on peut y répondre avec Postgres. L’idée est de se dire que plutôt d’avoir n outils (et la gestion de l’expertise qui va avec), autant en avoir moins, qui répondent au besoin même s’ils ne font pas aussi bien que l’outil de référence. PostgreSQL worst practices, version FOSDEM PGDay 2017 : revue des mauvaises pratiques Postgres pour vous faire prendre les bonnes. Zero Downtime Postgres Upgrades : Présentation d’une architecture Postgres multi-noeuds permettant la gestion du failover. Opinions Modern Software Over-Engineering Mistakes : pour alimenter la réflexion sur la tendance à l’overengineering que nous pratiquons plus ou moins. Le hacker, ce héros : comment être un bon growth hacker - Oussama Ammar, Co-Founder chez TheFamily ; au delà du titre, toujorus la réflexion entre le hacker qui fait peut être du code “sâle” à court terme mais qui répond à un besoin vs l’ingénieur qui fait des cathédrales mais qui arrivent bien trop tard et le projet est mort entre temps faute d’avoir produit quoi que ce soit. Sécurité Cross-Site Request Forgery is dead! : il est possible de sécuriser de plus en plus ses cookies pour tuer toute tentative de CSRF. Il est conseillé de lire préalablement Tough cookies pour avoir le petit rappel sur les cookies et leurs attributs. A new security header: Referrer Policy : un nouveau Header http, au state de recommandation du W3C, va faire son apparition et permet de définir des politiques sur la gestion du referer (le propager ou pas). UX Dois-je utiliser ? : Une revue des écueils des carrousels, pop-in, un défilement inifini, etc avec exemples, des solutions, des alternatives et des argumentaires.

machine learning sécurité header cookie nosql rethinkdb postgres csrf hacker ingénierie over-engineering ux
25/01/2017

Web, Ops & Data - Janvier 2017

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.

docker arm hypriot api rest raml python csp kubernetes spark kafka stream rancher json ansible devops elasticsearch postgres timezone pip virtualenv sql service worker react foundation
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
15/09/2016

Web, Ops & Data - Semaine 37

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

kafka postgres kubernetes cluster replication influxdb tick sécurité angularjs https hsts cors csp sri hpkp telegraf kapacitor cqrs event sourcing
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