Architecte de vos plateformes/produits et agitateur de séries temporelles

Conception, développement, déploiement et exploitation de vos plateformes, applications et données.

Contactez-nous !

Web, Ops & Data - Janvier 2017

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

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

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

Container & Orchrestration

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

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

Web, Ops & Data - Semaine 41

docker microsoft windows kubernetes kubeadm ansible postgres rethinkdb elasticsearch vue.js

Container & Orchestration

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.

Web, Ops & Data - Semaine 37

kafka postgres kubernetes cluster replication influxdb tick sécurité angularjs https hsts cors csp sri hpkp telegraf kapacitor cqrs event sourcing

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

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é

Postgres

Web, Ops & Data - Semaine 16

kafka monitoring ebs docker beat shipyard elasticsearch cassandra postgres

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.