*

Web, Ops & Data - Avril 2020


29/04/2020 traefik scaleway kubernetes telegraf cassandra kafka confluent helm influxdb warp10 timescaledb docker-compose apache-pulsar pubsub deprek8 conftest opa raspberrypi gitlab sidecar

Code et Outillage

Container & orchestration

(Big) Data

Time Series

Web

  • jQuery 3.5.0 Released! : une faille XSS a été identifiée sur jQuery.htmlFilter pour toutes les versions inférieures à 3.5.0 ; il est vivement encouragé de mettre à jour vos sites. Pour le reste, je vous renvoie à la lecture de l’article.

Web, Ops & Data - Aout 2018


29/08/2018 docker kubernetes cassandra reaper istio service-mesh cloud opensource redis kafka mysql postgres confluent openmetrics prometheus fluxlang influxdb timescaledb

Cloud & Open Source

Container et orchestration

(Big) Data & (No)SQL

  • Reaper 1.2 Released : l’outil de gestion des “réparations” des données d’un keyspace Cassandra, initialement réalisé par Spotify et désormais maintenu par The Last Pickle, vient de sortir en version 1.2 avec son lot d’améliorations. Pour un client, il a été déployé, ce qui me permet de pouvoir contribuer modestement (#472, #473, #474)
  • Re-Bootstrapping Without Bootstrapping : que faire lorsqu’un noeud d’un cluster Cassandra est sorti depuis plus longtemps que le temps de grace défini ? Le billet répond à la question pour ne pas repartir de zéro et le faire de façon “marginale”.
  • Introducing Confluent Platform 5.0 : à l’occasion de la sortie d'Apache Kafka 2.0, une nouvelle version de la plateforme Confluent sort également avec les dernières nouveautés de KSQL, des améliorations coté stabilité/sécurité (Auth LDAP, Disaster Recovery, etc). Allez lire les notes pour en savoir plus et voir ce qui relève de la version 0SS et de la version Entreprise.
  • Showdown: MySQL 8 vs PostgreSQL 10 – Hacker Noon : l’article confirme qu’avec MySQL 8.0, MySQL rattraperait Postgres au niveau des grandes fonctionnalités de base.

DevOps

  • The Site Reliability Workbook : Google sort un complément à son livre “Site Reliability Engineering”. Le livre est sensé donner des conseils pratiques ou partager des eemples issus de la réalité dans le cadre de la mise en place d’une démarche SRE.

Timeseries

  • Querying Prometheus with Flux (video - slides) : Paul Dix, CTO d’InfluxData, montre comment il est possible de requêter des données issues de Prometheus via Flux, le nouveau langage qu’InfluxData est en train de créer et dont l’objectif est de pouvoir manipuler des données temporelles. Ce cas permet de montrer l’utilisation de Flux dans un contexte autre qu’InfluxDB.
  • CNCF to Host OpenMetrics in the Sandbox : OpenMetrics est une initiative de standardisation des formats de métriques - le projet rentre donc dans l’initiative de la CNCF.
  • OpenMetrics to Join the CNCF ; Paul Dix a annoncé le support de ce format comme “citoyen de première classe” pour une version ultérieure d’InfluxDB. Le billet fait l’état des lieux du support au niveau de Telegrad et de Kapacitor.
  • Prometheus Graduates Within CNCF : toujours coté CNCF, Prometheus, la plateforme de métriques, est le second projet (après Kubernetes) à passer au niveau officiel.
  • TimescaleDB vs. InfluxDB: purpose built differently for time-series data : Comparaison par les gens de TimescaleDB entre leur produit TimescaleDB et InfluxDB. Même s"il est forcément un peu biaisé, il reste intéressant.

Web, Ops & Data - Mai 2018


30/05/2018 docker kubernetes containerd github kafka grafana mysql password mot de passe portainer swarm python flask kafka confluent nginx chronograf kapacitor

Big Data, Machine Learning & co

  • Confluent Platform 4.1 with Production-Ready KSQL Now Available : Basé sur Apache Kafka 1.1, la nouvelle mouture de la platform de Confluent signe l’arrivée de KSQL comme “production ready” notamment - a voir si le “Replicator” est dans la version OSS ou bien EE seulement. Le seul souci que j’ai avec kafka, c’est que l’on ne peut pas monitorer finement la consommation des queues vu que l’intelligence est coté consommateur et pas coté broker… Même avec la version EE et le Control Center qui ne remonte que des métriques globaux mais ne donne pas de détail sur l’état du topic.
  • Tensorflow with Javascript Brings Deep Learning to the Browser : j’avais lu l’annonce il y a quelques temps mais sans bien comprendre l’intérêt de la chose. L’idée ici est de pouvoir faire tourner Tensorflox dans le navigateur au travers de Javascript et de WebGL (et donc de tirer parti des capacités de la carte graphique). En plus de rendre accessible le ML aux développeurs Web, cela permettrait aussi de soumettre des modèles ou d’entrainer des modèles dans le navigateur de l’utilisateur. Vers le Machine Learning au plus près de l’utilisateur ?
  • Introducing Confluent Platform Preview Releases : Confluent met à disposition des versions intermédiaires de sa distribution. Cette première version permet de jouer avec KSQL et il semble que l’interface Control Center soit disponible sans frais particuliers. On notera d’ailleurs qu’en plus de la partie KSQL, des efforts ont été faits sur la partie inspection de topic et consumer lag. Cela progresse donc enfin dans l’observabilité et le monitoring d’un cluster kafka.
  • Introducing the Confluent Operator: Apache Kafka® on Kubernetes Made Simple : Confluent va mettre à disposition un “Kubernetes Operator” permettant de déployer Kafka ou Confluent platform de façon (plus) aisée sur un cluster Kubernetes. Les templates Kubernetes et les images Docker vont être mis à disposition le mois prochain et le Kubernetes Operator d’ici le milieu d’année.

Container et Orchrestration

  • Announcing Docker Enterprise Edition 2.0 : Docker Inc annonce la version 2.0 de sa version Entreprise. Elle se veut indépendante de tout lock-in (Multi-Linux, Multi-OS, Multi-Cloud) et permettre d’utiliser soit Swarm ou Kubernetes comme orchestrateur. Cette version apporte également un routage avancé au niveau de Swarm (niveau L7).
  • feat(agent): add agent support : Portainer est une solution de gestion d’un environnement Docker ou Docker Swarm. L’inconvénient sous Docker Swarm est que l’instance Portainer ne voit que les containers présents sur le même noeud que le sien et pas l’ensemble des containers (cf [FEATURE REQUEST] Be able to use all the Portainer built-in functionalities in all the containers running in a swarm cluster). Via un mécanisme d’agent (code source fermé) à déployer sur chaque noeud, l’éditeur annonce pouvoir contourner les limitations de l’API Docker. La justification du code fermée est motivée par les efforts de R&D réalisés. Un gist indique comment installer l’agent. Il n’est pas stipulé si en plus d’un code fermé, il y aura une offre commerciale autour ou pas.
  • Traefik 1.6 — Get Our Latest tetedemoine! : la version 1.6 apporte le support des certificats Wildcard Let’s Encrypt, une nouvelle Web UI, le support des outils de tracing Zipkin et OpenTracing, le support du stockage des certficiats dans les secrets Kubernetes, une capacité d’altération des logs en vue du respect de la GDPR et une homogénéisation interne sur la gestion des labels.
  • Open-sourcing gVisor, a sandboxed container runtime : Google vient de rendre opensource gvisor, une mécanisme permettant d’accroitre l’isolation des containers via un mécanisme de Sandbox. C’est “transaprent” pour l’utilisateur au sens qu’il peut utiliser gvisor de la même façon qu’il interagissait avec Docker ou Kubernetes. C’est juste le runtime qui change. C’est codé en go, cela intercepte les appels SYSCALLS et l’équivalent d’un noyaux linux codé en Go répond en lieu et place du noyau linux de la mâchine hôte. Par ailleurs, cette sandbox a un impact sur les performances du containers comme leurs auteurs l’expliquent bien dans le 3ème épisode du Kubernetes Podcast by Google. InfoQ publie également un article sur ce sujet : Google Release “gVisor”, a Lightweight Container Runtime Sandbox Used to Provide Secure Isolation
  • Containers, Security, and Echo Chambers : Une ex employée de Docker ayant travaillé sur la sécurité et l’isolation des containers nuance le marketing autour de gvisor. Elle avait déjà nuancé l’arrivée de Kaniko (le builder d’images Docker make in Google).
  • Introducing Play with Kubernetes : l’équipe Docker Inc, après son Play with Docker qui permet de se former à Docker depuis son poste de travail, annonce officiellement l’existence de son pendant pour Kubernetes : Play with Kubernetes. Officiellement, car le billet indique qu’il existe depuis l’été dernier. Il se base sur le workshop de Jerome Petazzoni.
  • Kubernetes Containerd Integration Goes GA : Containerd est un runtime de containers, venant de chez Docker Inc et placé mainteant sous l’égide de la CNCF. Il semble en bonne voie de devenir le runtime par défaut de Kubernetes en lieu et place de docker. Même si Kubernetes se défend de s’affranchir de Docker, force est de constater qu’il y a des travaux pour s’affranchir des outils estampillés Docker Inc : gvisor pourrait remplacer runc à terme, kaniko pourrait replacer docker build. La registry docker étant aussi en passe de standardisation, on peut s’attendre à voir un nouveau produit arriver. Si Kubernetes (+ Google + CNCF + …) ont encore besoin de la liaison avec Docker d’un point de vue marketing, on a l’impression que cela cherche à s’éloigner des outils Docker Inc et dans une moindre mesure du projet Moby (qui lui même semble aussi avoir quelques distances avec Docker Inc). Certes, le docker engine de Docker Inc est basé sur containerd et donc Docker ne disparait pas de la plateforme mais ça semble bien en prendre le chemin.

Développement

  • Using Github CODEOWNERS file : Github, via un fichier CODEOWNERS, permet d’indiquer qui sont les responsables présumés d’une Pull Request. De quoi simplifier son workflow.

Dataviz

  • Grafana v5.1 Released : en plus de la consolidation de la version 5.x, les deux ajouts significatis sont une heatmap pour Prometheus et l’arrivée de SQL Server comme data source et donc faire des graphs sur vos données SQL Server.

Infrastructure as code

(No)SQL

  • What’s New in MySQL 8.0? (Generally Available) : même si je n’utilise plus trop MySQL (au mieux MariaDB pour quelques clients), il est intéressant de voir la progression significative de cette base avec cette nouvelle version : Window functions, Document Store, support du JSON, etc. Elle pourrait presque recommencer à concurrencer Postgres ;-)
  • Installing MySQL 8.0 on Ubuntu 16.04 LTS in Five Minutes : tout est dans le titre - cela permet de déclarer le dépot Oracle/MySQL et d’accéder à differentes versions de MySQL, dont la 8.0.

Python

Sécurité

  • Use A Good Password Generator : revue de différents outils de génération et gestion de mots de passe. La feuille de calcul contient plusieurs onglets et permet de faire le tour des solutions existantes.

TICK Platform (Telegaf, InfluxDB, Chronograf, Kapacitor)

  • Kapacitor and Continuous Queries: How To Decide Which Tool You Need : la question m’a été posée à Breizhcamp et je n’avais pas forcément de réponse à fournir. Elle est fournie par l’éditeur : Conitunous Queries pour l’échantillonage et Kapacitor pour les requêtes custom et éventuellement déporter des workloads consommatrice de ressources. Le mode streaming de kapacitor permet aussi de faire vos requêtes au fil de l’eau et consommer moins de ressources (mais plus régulièrement)
  • Intelligent Monitoring: Automating Dashboard Annotations in Chronograf : tutoriel intéressant qui montre comment l’on peut générer dynamiquement des annotations sur vos graphs dans Chronograf au travers de Kapacitor. Intéressant, car en général, les annotations sont souvent posées manuellement et a posteriori par des humains et pas de façon automatique/continue.
  • Chronograf 1.5 and Kapacitor 1.5 Released : Chronograf permet maintenant d’avoir une vue tabulaire des données (et pas uniquement un graph ou une donnée) et Kapacitor peut maintenant envoyer des alertes vers Kafka, vers plusieurs canaux Slack.

Web

Web, Ops & Data - Décembre 2017


20/12/2017 accessibilité ansible spinnaker aws reinvent lambda serverless kubernetes s3 glacier sql ec2 gdpr kafka elasticsearch confluent postgres telegraf

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

AWS:ReInvent 2017

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

Serverless

TICK

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.

Syndication

Restez informé(s) de notre actualité en vous abonnant au flux du blog (Atom)

Nuage de tags

kubernetes docker influxdb timeseries warp10 traefik grafana ansible kafka postgres elasticsearch python sécurité terraform aws mysql redis ovh tick cassandra cloud docker-compose git hashicorp helm telegraf timescaledb chronograf ptsm swarm dashboard rancher résilience test vector flux gcp gitlab log machine-learning monitoring podman prometheus spark architecture arm confluent devops gitlab-ci iac java kapacitor ksql microservice raspberrypi s3 serverless service-mesh sql timescale vscode angularjs api bilan cert-manager cncf comptabilité consul container cérénit dns gke graphql influxdata ingress javascript nomad opensource operator optimisation perspective pipeline rook scaleway ssh stream vault warpscript windows cli containerd csp documentation elastic flows forecast geospatial golang hpkp influxace iot jenkins kafka-streams kibana kubedb lambda lean licence maesh maintenance mariadb microsoft mobile nginx npm orientdb performance postgresql redhat registry rest rethinkdb reverse-proxy sauvegarde agile apm arima automatisation azure bash big-data bigdatahebdo ceph certificat challenge ci/cd cluster continous-delivery continous-integration cookie data dataviz deployment diff facebook fluxlang framework gdpr grav hsts http/3 https hypriot hébergement ia influxdays istio jq json k3s lets-encrypt linux load-balancer longhorn meetup molecule mongodb nosql nvidia openebs openssh ovhcloud percona php pip quasardb reaper replication rootless rpi rsyslog runc scale secrets société solr sre systemd tempo timezone tls virtualenv vitess vue.js wagtail warpfleet warpstudio yarn accessibilité acme agpl akka alerte alibaba amazon-emr amqp anomalie anonymisation anthos apache-pulsar ara arrow artefact audit banque bastion beam beat bme680 bootstrap bounded-context branche brigade browser buildah buildkit cahier-des-charges calico cassandra-reaper cd cdc cdk centos centralisation-de-logs certificats cgroups chart checklist chrome ci cilium cloud-init cloud-native cloud-storage clusterip cnab cni co2 cockroachdb code codeurs-en-seine commit confluence conftest consul-connect context continous-deployment conventional-commit coreos cors covid19 cqrs crash cri cron crontab csi csrf css curl d3.js daemonset data-engineer data-pipelining data.gouv.fr databricks datacenter datatask date date-scientist dbt ddd debezium debian delta deprek8 desktop devoxx dig discovery distributed-systems dive docker-app docker-hub docker-registry docker-swarm dockershim documentdb dog dokcer données-personnelles draft drop-in duration déploiement développement-du-site e-commerce ebs ec2 edge elassandra electron elk engineering entreprise ergonomie etcd euclidia event-sourcing faas faisabilité falco falcor feature-policy fec fedora feed filebeat firebase firefox fish flash flask fleet flink fluentd formation foundation frenchtech frontend fsync fullstack git-filter-repo github gitignore glacier glowroot go google google-cloud-next gpg gpu grid géospatial hacker hadoop haproxy harbor hdfs header holt-winters html html5 http hue iaac ibm immutable incident index indluxdata influxcloud infrastructure-as-code ingénierie inspec jquery jwt k3d k6 k8s k9s kaniko katz kotlin kubeadm kubecon kubectl label laravel leap-second lens letsencrypt libssh linky linter liste-de-diffusion lmap loadbalancer logstash logstatsh loi loki lstm mailing-list management maturité mesh mesos message metabase metallb micro-service minio mot-de-passe mqtt multi-cloud médecine métrique network newsletter nodeport notebook null object-storage observability observabilité opa opendata openhab openmetrics openshit openstack openweb opnsense over-engineering packaging pandas parquet partiql password persistent-volume-claim pico pipenv pod portainer portworx prediction prescience production promql prophet prévision psp ptyhon publicité pubsub pulsar push pyenv pérénnité qualité quay questdb queue quic ram rambleed raml react readme recaptcha recherche redistimeseries reindex reinvent reliability remote-execution repository responsive revocation revue-de-code rexec rgpd rhel rkt rolespec root rpo rto rust rwd safe-harbor sarima scalabilité scanner schema scp sdk search select serverless-architecture service service-account service-worker setuptools sftp sha1 sharding shell shipyard sidecar souveraineté-numérique spectre spinnaker spécifications sqlite sri ssh-agent ssl stabilité stash statistique storage sudo superset suse sympa sysdig syslog-ng sérénité template terracost terrascan test-unitaire tidb tiers time timer timestream training transformation travail trésorerie tsfr tsl ubuntu unikernel unit ux velero vendredi victoria-metrics vie-privée virtualbox virtualisation vm vnc volume voxxeddays vpc wasm web wireguard yaml yq yubikey