CérénIT - cassandraLe blog tech de Nicolas Steinmetz (Time Series, IoT, Web, Ops, Data)Zola2020-08-26T09:30:00+02:00https://cerenit.fr/tags/cassandra/atom.xmlWeb, Ops & Data - Août 20202020-08-26T09:30:00+02:002020-08-26T09:30:00+02:00
Unknown
https://cerenit.fr/blog/web-ops-and-data-aout-2020/<h3 id="cloud">Cloud</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://www.hashicorp.com/blog/cdk-for-terraform-enabling-python-and-typescript-support/">CDK for Terraform: Enabling Python & TypeScript Support</a> : <a rel="noopener" target="_blank" href="https://aws.amazon.com/cdk/">cdk</a> est le Cloud Development Kit édité par AWS, Hashicorp annonce donc son support dans terraform. Si la démo semble fonctionner (faut aimer typescript...), à voir ce que cela peut donner sur des projets de plus grande ampleur et ce que donne l'empilement d'abstractions (Code > CDK > Terraform > Provider) lors des erreurs et bugs.</li>
</ul>
<h3 id="code">Code</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://devblogs.microsoft.com/python/announcing-pylance-fast-feature-rich-language-support-for-python-in-visual-studio-code/">Announcing Pylance: Fast, feature-rich language support for Python in Visual Studio Code</a> : Microsoft annonce une nouvelle extension pour python qui se veut plus performance et apporte des fonctionnalités comme les auto-imports, des informations sur les types et du type checking.</li>
<li><a rel="noopener" target="_blank" href="https://blog.engineering.publicissapient.fr/2020/06/04/packaging-python-setup-py-et-setuptools/">Packaging Python : setup.py et setuptools</a> : un petit retour aux bases sur le packaging python et la distribution des sources.</li>
<li><a rel="noopener" target="_blank" href="https://julien.danjou.info/properly-managing-your-gitignore/">Properly managing your .gitignore file</a> : Vous pouvez utiliser <code>~/.config/git/ignore</code> pour y mettre votre configuration personnelle (IDE, OS, etc) et limiter le <code>.gitignore</code> de vos projets aux éléments de build & co.</li>
</ul>
<h3 id="container-et-orchestration">Container et orchestration</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://thenewstack.io/the-road-to-kata-containers-2-0/">The Road to Kata Containers 2.0</a> : Retour et perspectives à venir sur le projet Kata Containers qui a pour objectif de proposer une meilleure isolation des containers en utilisant des VMs</li>
<li><a rel="noopener" target="_blank" href="https://www.grottedubarbu.fr/traefik-2-3-http-provider/">Traefik 2.3 : HTTP Provider</a> : Traefik dans la version 2.3 (actuellement en RC) se dote d'<a rel="noopener" target="_blank" href="https://docs.traefik.io/v2.3/providers/http/">un nouveau provider http</a>. On peut ainsi demander à Traefik de se connecter régulièrement à une url qui en retour lui donnera des configurations à appliquer de façon dynamique.</li>
<li><a rel="noopener" target="_blank" href="https://tferdinand.net/en/traefik-2-3-towards-plugins-and-beyond/">Traefik 2.3 : Towards plugins and beyond!</a> : petite introduction à l'utilisation des plugins dans Traefik 2.3.</li>
<li>Docker lance des initiatives intéressantes avec une meilleure intégration <a rel="noopener" target="_blank" href="https://www.docker.com/blog/from-docker-straight-to-aws/">AWS</a> (voir aussi le <a rel="noopener" target="_blank" href="https://aws.amazon.com/fr/blogs/containers/aws-docker-collaborate-simplify-developer-experience/">blog AWS</a>) et <a rel="noopener" target="_blank" href="https://www.docker.com/blog/how-to-deploy-containers-to-azure-aci-using-docker-cli-and-compose/">Azure</a>.</li>
<li><a rel="noopener" target="_blank" href="https://blog.rook.io/rook-v1-4-ceph-operator-enhancements-3ca45bfa40a6">Rook v1.4: Storage Enhancements and Ceph Features</a> : de nombreuses améliorations coté Ceph (Ceph-CSI 3.0, Object Store Multisite, Admission controller, Support du chiffrement au niveau des OSD, etc)</li>
</ul>
<h3 id="no-sql">(No)SQL</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://cassandra.apache.org/blog/2020/07/20/apache-cassandra-4-0-beta1.html">Introducing Apache Cassandra 4.0 Beta: Battle Tested From Day One</a> : Première beta pour la tant attendue Cassandra 4.0 - version GA espérée pour la fin d'année. On notera le passage à Java 11 et le nouveau ZGC, des gains de performance sur les tâches d'opération, un audit logging, et bien d'autres choses encore. A noter que l'écosystème semble prêt déjà à supporter la 4.0 comme avec Repair, Medusa, etc.</li>
<li><a rel="noopener" target="_blank" href="https://www.percona.com/blog/2020/07/17/mariadb-s3-engine-implementation-and-benchmarking/">MariaDB S3 Engine: Implementation and Benchmarking</a> : MariaDB dispose d'un plugin S3 en version alpha. Il permet de déporter des tables dans S3 et de les requêter. Pour des cas en lecture et suivant vos requêtes cela peut avoir du sens apparemment. D'autres billets sur le sujet devraient suivre prochainement.</li>
</ul>
<h3 id="os">OS</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://chrisdown.name/2018/01/02/in-defence-of-swap.html">In defence of swap: common misconceptions</a> (<a rel="noopener" target="_blank" href="https://www.clever-cloud.com/fr/podcast/episode11/">via</a>) : à l'heure des kernels 4+, des SSDs, de cgroup v2, il est temps de revoir notre compréhension et l'intérêt de la swap.</li>
</ul>
Web, Ops & Data - Avril 20202020-04-29T21:30:00+02:002020-04-29T21:30:00+02:00
Unknown
https://cerenit.fr/blog/web-ops-and-data-avril-2020/<h3 id="code-et-outillage">Code et Outillage</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://about.gitlab.com/blog/2020/03/30/new-features-to-core/">18 GitLab features are moving to open source</a> : Gitlab va rendre disponible dans sa version Open Source 18 fonctionnalités de sa version payante. C'est un peu la lutte avec Github et ses Github Actions ou <a rel="noopener" target="_blank" href="https://github.blog/2020-04-14-github-is-now-free-for-teams/">ses dernières évolutions tarifaires</a>.</li>
</ul>
<h3 id="container-orchestration">Container & orchestration</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://www.docker.com/blog/announcing-the-compose-specification/">Announcing the Compose Specification</a> : Docker Inc vient de lancer une spécificiation officielle autour de Compose (celle derrière les <code>docker-compose.yml</code>) pour la rendre plus "cloud native" et plus générique avec une extension au provider cloud d'une part et d'autre part à des solutions comme kubernetes ou Amazone ECS par ex.</li>
<li><a rel="noopener" target="_blank" href="https://containo.us/blog/traefik-2-2-ingress/">Announcing Traefik 2.2</a>, ainsi que la <a rel="noopener" target="_blank" href="https://containo.us/blog/traefik-enterprise-edition-2-1-now-available/">version Entreprise TraefikEE 2.1</a> basée dessus : on notera le retour du support des annotations pour gérer les Ingress, le support de l'UDP (en plus de HTTP et TCP), le support d'Elastic APM, le support des stores KV (Consul, Etcd, Redis, etc) et le Dark Mode.</li>
<li><a rel="noopener" target="_blank" href="https://www.scaleway.com/en/kubernetes-kapsule/">Scaleway Kubernetes Kapsule</a> : l'offre managée kubernetes de Scaleway est disponible. Dommage que les CPU des profils de machine <code>DEV*</code> soient surprovisionnés et qu'il faille envisager des profils <code>GP*</code> pour avoir des performances correctes. L'offre est du coup moins compétitive en termes de prix pour des petits clusters.</li>
<li><a rel="noopener" target="_blank" href="https://kubernetes.io/blog/2020/03/25/kubernetes-1-18-release-announcement/">Kubernetes 1.18 : Fit & Finish</a> : une version de consolidation</li>
<li><a rel="noopener" target="_blank" href="https://opensource.com/article/20/3/deprek8">How to detect outdated Kubernetes APIs</a> : présentation de <a rel="noopener" target="_blank" href="https://github.com/naquada/deprek8">Deprek8</a> et de <a rel="noopener" target="_blank" href="https://github.com/instrumenta/conftest">Conftest</a> pour vous permettre d'évaluer les ressources kubernetes pour lesquelles vous n'êtes pas à jour au niveau des API.</li>
<li><a rel="noopener" target="_blank" href="https://github.com/helm/helm/releases/tag/v3.2.0">Helm 3.2.0</a> avec un correctif de sécurité sur les versions 3.0.x et 3.1.x et d'autres améliorations (comme le retour de certaines fonctionnalités non encore migrées depuis la 2.x)</li>
<li><a rel="noopener" target="_blank" href="https://grafana.com/blog/2020/04/02/cortex-v1.0-released-the-highly-scalable-fast-prometheus-implementation-is-generally-available-for-production-use/">Cortex v1.0 released: The highly scalable, fast Prometheus implementation is generally available for production use</a> : la solution de monitoring distribuée et avec un stockage de long terme basée sur Prometheus arrive en version 1.0. C'est l'occasion de se repencher sur son <a rel="noopener" target="_blank" href="https://cortexmetrics.io/docs/architecture/">architecture</a> et son fonctionnement.</li>
<li><a rel="noopener" target="_blank" href="https://kauri.io/build-your-very-own-selfhosting-platform-with-rasp/5e1c3fdc1add0d0001dff534/c">Build your very own self-hosting platform with Raspberry Pi and Kubernetes</a> : une série d'articles pour déployer un cluster kubernetes sur vos raspberrypi avec la distributions k3s et y déployer différentes applications.</li>
<li><a rel="noopener" target="_blank" href="https://blog.rook.io/rook-v1-3-storage-operator-improvements-8c3f1c94592a">Rook v1.3: Storage Operator Improvements</a> : si vous n'êtes pas dans un environnement cloud, il y a de fortes chances pour que vous utilisiez Rook. La version 1.3 vient de sortir et apporte son lot d'améliorations.</li>
<li><a rel="noopener" target="_blank" href="https://banzaicloud.com/blog/k8s-sidecars/">Sidecar container lifecycle changes in Kubernetes 1.18</a> : dans la version 1.19, le cycle de vie des sidecars dans kubernetes sera améliorée. Ainsi, ils démarreront avant le conteneur principal et s'arrêteront après. Le billet revient sur les problèmes existant et comment ce nouveau cycle de vie va améliorer la situation.</li>
</ul>
<h3 id="big-data">(Big) Data</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://www.confluent.io/blog/series-e-round-metamorphosis/">Confluent Raises $250M and Kicks Off Project Metamorphosis</a> : Confluent, la soéciété éditrice de la Confluent Platform et d'Apache Kafka, vient de lever 250 millions de dollars et annonce le projet Metamorphosis et prévoit des annonces tous les mois sur Apache Kafka, Confluent Platform et ce projet à compter du mois de Mai. On en reparlera très certainement sur <a rel="noopener" target="_blank" href="https://www.bigdatahebdo.com/">BigData Hebdo</a>.</li>
<li><a rel="noopener" target="_blank" href="https://www.oreilly.com/library/view/cassandra-the-definitive/9781098115159/">Cassandra: The Definitive Guide, 3rd Edition</a> : nouvelle édition de l'ouvrage de référence sur Cassandra, mis à jour notamment pour Cassandra 4.0 (version à venir)</li>
<li><a rel="noopener" target="_blank" href="https://streamnative.io/blog/tech/2020-03-24-bring-native-kafka-protocol-support-to-apache-pulsar/">Announcing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pulsar</a> : On en parle dans le prochain épisode de <a rel="noopener" target="_blank" href="https://www.bigdatahebdo.com/">BigData Hebdo</a>, mais <a rel="noopener" target="_blank" href="http://pulsar.apache.org/">Pulsar</a> est une plateforme vraiment intéressante (Pulsar 101 en <a rel="noopener" target="_blank" href="https://www.youtube.com/watch?v=5fqhT82wghY">français</a> ou en <a rel="noopener" target="_blank" href="https://www.youtube.com/watch?v=De6avNyQUMw">anglais</a>) et les équipes d'OVHCloud viennent de publier un connecteur qui permet d'utliser l'API Kafka mais que les messages soient stockés dans Pulsar. Il existe aussi une vidéo sur <a rel="noopener" target="_blank" href="https://www.youtube.com/watch?v=gL6hzRtij8M">Kafka on Pulsar</a> et un article sur le <a rel="noopener" target="_blank" href="https://www.ovh.com/blog/announcing-kafka-on-pulsar-bring-native-kafka-protocol-support-to-apache-pulsar/">blog d'OVHCloud</a>.</li>
</ul>
<h3 id="time-series">Time Series</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://www.influxdata.com/blog/release-announcement-telegraf-1-14-0/">Release Announcement: Telegraf 1.14.0</a> : 9 nouveaux inputs, 3 nouveaux processors et 1 nouvel output <a rel="noopener" target="_blank" href="https://warp10.io">warp10</a> sont au programme de cette version. Les versions <a rel="noopener" target="_blank" href="https://www.influxdata.com/blog/release-announcement-telegraf-1-14-1/">1.14.1</a> et <a rel="noopener" target="_blank" href="https://www.influxdata.com/blog/release-announcement-telegraf-1-14-2/">1.14.2</a> sont sorties également avec quelques corrections.</li>
<li><a rel="noopener" target="_blank" href="https://www.influxdata.com/blog/release-announcement-influxdb-with-long-awaited-features/">Release Announcement: InfluxDB 1.8.0 with Long-Awaited Features</a> : la branche 1.x d'InfluxDB se voit donc dotée d'une version récente de flux qui se veut "production ready" et les endpoints d'InfluxDB 2.x sont aussi disponibles. Ce qui permet d'utiliser les nouveaux clients officiels InfluxDB prévus pour la 2.x d'une part et de faire des requêtes en Flux d'autre part.</li>
<li><a rel="noopener" target="_blank" href="https://www.influxdata.com/blog/release-announcement-influxdb-2-0-0-beta-9/">Release Announcement: InfluxDB 2.0.0 Beta 9</a> : mise à jour de Flux, autocomplétion flux dans l'éditeur de requêtes et amélioration de la CLI.</li>
<li><a rel="noopener" target="_blank" href="https://www.influxdata.com/blog/influxdb-templates-share-monitoring-expertise/">InfluxDB Templates: Easily Share Your Monitoring Expertise</a> : le billet a pour intérêt de présenter des bonnes pratiques sur la réalisation de <a rel="noopener" target="_blank" href="https://www.influxdata.com/products/influxdb-templates/">templates InfluxDB</a>. Pour rappel, les templates InfluxDB sont des "ressources" que l'on peut déclarer, exporter et importer dans une instance InfluxDB 2.x. Cela concerne des variables, labels, tasks, dashboards, alertes, etc.</li>
<li><a rel="noopener" target="_blank" href="https://blog.senx.io/warp-10-release-2-5-0/">April 2020: Warp 10 release 2.5.0</a> : La version 2.5 de <a rel="noopener" target="_blank" href="https://warp10.io/">Warp10</a> apporte notamment un <a rel="noopener" target="_blank" href="https://blog.senx.io/warp-10-accelerator/">Accelerator</a> c'est à dire un cache en mémoire pour les versions standalones. D'autres corrections et améliorations font également partie de cette release.</li>
<li><a rel="noopener" target="_blank" href="https://blog.senx.io/warpscript-loves-kafka-streams/">WarpScript ❤️ Kafka Streams</a> : si vous utiliser Kafka Streams et que vous voulez utiliser Warpscript pour consommer, processer et envoyer des données vers Kafka, c'est possible.</li>
<li><a rel="noopener" target="_blank" href="https://microsoft.github.io/forecasting/">Forecasting</a> : Microsoft publie des exemples et des bonnes pratiques autour de la prévision à base de séries temporelles. Il y a des exemples en Python / R et quelques exemples avec Azure-ML.</li>
<li><a rel="noopener" target="_blank" href="https://blog.timescale.com/blog/timescaledb-1-7-fast-continuous-aggregates-with-real-time-views-postgresql-12-support-and-more-community-features/">TimescaleDB 1.7: fast continuous aggregates with real-time views, PostgreSQL 12 support, and more Community features</a> : Nouvelle version de TimeScaleDB apportant la compatibilité avec Postgresql 12.x, des aggrégats en temps réel et des fonctionnalités de gestion de données (réordonnancement et rétention) de la version Entreprise sont maintenant disponibles dans la version Community.</li>
</ul>
<h3 id="web">Web</h3>
<ul>
<li><a rel="noopener" target="_blank" href="http://blog.jquery.com/2020/04/10/jquery-3-5-0-released/">jQuery 3.5.0 Released!</a> : une faille XSS a été identifiée sur <code>jQuery.htmlFilter</code> 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.</li>
</ul>
Web, Ops & Data - Décembre 20192019-12-18T09:30:00+01:002019-12-18T09:30:00+01:00
Unknown
https://cerenit.fr/blog/web-ops-and-data-decembre-2019/<p>Rendez-vous le 21 janvier prochain à la <a rel="noopener" target="_blank" href="https://www.meetup.com/fr-FR/Paris-Time-Series-Meetup/events/266610627/">troisième édition du Paris Time Series Meetup</a> consacré à <a rel="noopener" target="_blank" href="https://github.com/ovh/tsl">TSL</a> (billet introductif à TSL : <a rel="noopener" target="_blank" href="https://www.ovh.com/blog/tsl-a-developer-friendly-time-series-query-language-for-all-our-metrics/">TSL: a developer-friendly Time Series query language for all our metrics</a>) et
le module <a rel="noopener" target="_blank" href="https://oss.redislabs.com/redistimeseries/">RedisTimeSeries</a> qui apporte des fonctionnalités et des structures Time Seriies à Redis. Le meetup était prévu initialement le mardi 17 décembre mais a été reporté du fait des grèves.</p>
<h3 id="container-et-orchestration">Container et orchestration</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://github.com/docker-slim/docker-slim">DockerSlim</a> : le projet vise à réduire la taille de vos images et à améliorer leur sécurité en procédant à différentes optimisations. Cela peut être intéressant dans une stratégie d'améliorations de vos images docker mais à tester néanmoins. Les exemples données partent d'Ubuntu 14.04 dont l'image fait 60 / 65 Mo alors que l'image Ubuntu 16.04 fait moitié moins et Alpine fait 30 fois moins. Donc certains gains semblent faciles à obtenir, à creuser plus en détail.</li>
<li><a rel="noopener" target="_blank" href="https://kubernetes.io/blog/2019/12/09/kubernetes-1-17-release-announcement/">Kubernetes 1.17: Stability</a> : après une version 1.16 marquée notamment par la dépréciation de certaines APIs, cette version se veut plus une consolidation autour des "Cloud Provider Labels" qui passent en GA, le snapshot de volumes qui passe en beta, ainsi que la couche de stockage CSI avec la poursuite de la migration des plugins "in-tree" vs "out-of-tree". La fin de cette migration est prévue pour les versions 1.19 / 1.20 et le retrait complet des plugins "in-tree" pour les versions 1.21 / 1.22.</li>
<li><a rel="noopener" target="_blank" href="https://learnk8s.io/troubleshooting-deployments">A visual guide on troubleshooting Kubernetes deployments</a> : un guide du troublehooting des déploiements sous kubernetes avec un joli diagramme des cas possibles et les explications associées en repartant d'un exemple simple.</li>
<li><a rel="noopener" target="_blank" href="https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/">How to migrate from Helm v2 to Helm v3</a> : les opérations à mener pour migrer de Helm V2 à Helm V3.</li>
<li><a rel="noopener" target="_blank" href="https://containo.us/blog/traefik-2-1-in-the-wild/">Traefik 2.1</a> : le provider Consul Catalog fait son retour (il était absent en 2.0.x) et diverses améliorations sur la CRD Kubernetes ont été apportées pour mieux gérer le mirroring du traffic, les déploiements canary et la gestion des sessions. La migration ne consistant pas seulement à changer le numéro de version et <a rel="noopener" target="_blank" href="https://twitter.com/nsteinmetz/status/1205129582514491395">suite à une remarque de ma part</a>, une note a été ajoutée pour la <a rel="noopener" target="_blank" href="https://docs.traefik.io/migration/v2/">migration 2.0.x vers 2.1.x</a></li>
</ul>
<h3 id="dataviz">Dataviz</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://grafana.com/blog/2019/12/10/pro-tips-dashboard-navigation-using-links/">Pro Tips: Dashboard Navigation Using Links</a> : améliorer vos dashboards Grafana avec des liens à différents niveaux dans l'interface pour pointer vers des ressources utiles.</li>
</ul>
<h3 id="nosql">NoSQL</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://thelastpickle.com/blog/2019/12/10/cassandra-reaper-2-0-release.html">Cassandra Reaper 2.0 was released</a> : la solution de réparation de vos clusters Cassandra passe en 2.0 ; elle apporte un déploiement en mode sidecar (reaper est lancé dans la même jvm que Cassandra), le support d'Apache Cassandra 4.0 (pas encore officiellement disponible), de nouveaux thèmes, une amélioration du support de Postgresql comme backend de déploiement et pleins d'autres choses.</li>
</ul>
<h3 id="time-series">Time Series</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://www.influxdata.com/blog/release-announcement-influxdb-2-0-0-alpha-21/">Release Announcement: InfluxDB 2.0.0 Alpha 21</a> : Cette version alpha apporte notamment le début de la <em>transpilation</em> des requêtes InfluxQL en Flux. C'est peut être un des plus gros enjeux pour la migration entre la version 1.x et 2.x d'InfluxDB et la gestion de l'écosystème associé.</li>
<li><a rel="noopener" target="_blank" href="https://blog.senx.io/warp-10-release-2-3-0/">Warp 10™ release 2.3.0</a> : la plateforme <a rel="noopener" target="_blank" href="https://warp10.io/">Warp10</a> continue son chemin avec une fonctionnalité intéressante permettant de mieux définir les points que l'on veut récupérer pour une requête donnée (nombre de points, échantillonage, points du début et de fin, etc)</li>
<li><a rel="noopener" target="_blank" href="https://blog.senx.io/motion-split/">Motion Split</a> : Présentation d'une autre fonctionnalité intéressante de Warp10 2.3.0 si vous suivez des objets qui se déplacent et que vous voulez définir des groupes de points en fonction d'un délai, d'une distance, d'arrêts.</li>
<li><a rel="noopener" target="_blank" href="https://blog.timescale.com/blog/new-helm-charts-for-deploying-timescaledb-on-kubernetes/">New: Helm Charts for deploying TimescaleDB on Kubernetes</a> : pour ceux qui utilisent TimescaleDB, des charts helm sont à votre disposition pour déployer une instance, avec gestion de la réplication des données.</li>
<li><a rel="noopener" target="_blank" href="https://blog.octo.com/time-series-features-extraction-using-fourier-and-wavelet-transforms-on-ecg-data/">Time series features extraction using Fourier and Wavelet transforms on ECG data</a> : Application de la théorie des signaux sur des séries temporelles dans le cadre d'analyse d'électrocardiogramme. Cela complète <a href="/blog/web-ops-and-data-novembre-2019/">les articles du mois précédent</a>.</li>
</ul>
<p>Je n'ai plus qu'à vous souhaiter des bonnes fêtes de fin d'année ; nous nous retrouvons l'année prochaine !</p>
Web, Ops & Data - Septembre 20182018-09-26T09:30:00+02:002018-09-26T09:30:00+02:00
Unknown
https://cerenit.fr/blog/web-ops-and-data-septembre-2018/<p>Avant de commencer cette revue de presse, un peu d'auto-promo, vu que j'ai eu le plaisir et l'honneur de participer au <a rel="noopener" target="_blank" href="https://www.spreaker.com/user/vhe74/episode-59-we-are-back">numéro de rentrée (épisode 59)</a> du <a rel="noopener" target="_blank" href="http://bigdatahebdo.com/">BigData Hebdo</a>.</p>
<h3 id="cloud">Cloud</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://bravenewgeek.com/multi-cloud-is-a-trap/">Multi-Cloud Is a Trap</a> : sujet à la mode, le multi-cloud selon l'auteur du billet est inutile/idiot et ne serait qu'une distraction/perte de temps et d'argent dans la plupart des cas ; certaines exceptions sont acceptées en fin de billet). Un point intéressant étant de dire qu'en voulant éviter le "lock-in", on se prive de profiter au maximum de la plateforme cloud et que l'on se créée du coup un coût de "lock-out".</li>
</ul>
<h3 id="containers-et-orchestration">Containers et Orchestration</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://www.bretfisher.com/the-future-of-docker-swarm/">The Future of Docker Swarm</a> : Etat des lieux et perspectives sur Swarm par un Capitaine Docker. Le projet n'est pas mort et il peut suffire dans bon nombre de cas.</li>
<li><a rel="noopener" target="_blank" href="https://jmaitrehenry.ca/2018/04/16/docker-config-how-to-always-use-base-image-with-docker-swarm/">Docker Config, how to always use base image with Docker Swarm!</a> : Depuis Docker 17.06 et dans un contexte Swarm, il est possibile d'utiliser les <a rel="noopener" target="_blank" href="https://docs.docker.com/engine/swarm/configs/">configs</a>. Les configs permettent de stocker un fichier de configuration au sein du cluster swarm et de le mettre à disposition des containers. Ainsi, en cas des modifications de la configuration, plus besoin de rebuilder l'image, il suffit de mettre à jour le service pour qu'une nouvelle version du container la prenne en compte.</li>
<li><a rel="noopener" target="_blank" href="https://github.com/BretFisher/ama/issues/10">Pros and Cons of running all Docker Swarm nodes as Managers?</a> : Revue par le Docker Captain Bret Fisher des avantages/incovénients d'utiliser que des nodes de type "managers" au sein d'un cluster Swarm. Trop est déconseillé (> 5) et ensuite c'est un compromis entre la sécurité, la disponibilité et la résilience.</li>
<li><a rel="noopener" target="_blank" href="https://blog.containo.us/traefik-1-7-yet-another-slice-of-awesomeness-2a9c99737889">Traefik 1.7 — Yet Another Slice of Awesomeness</a> : dans les nouveautés principales : une image Docker pour windows, le support de l'authentification dans les frontends, le support d'AWS Fargate, HC2 Support et le support du challenge TLS pour Let's Encrypt (plus besoin d'avoir le port 80 ouvert). Apparemment pour la prochaine version, l'équipe de dév va prendre quelques libertés pour introduire des nouveautés - il faut donc s'attendre à quelques incompatibilités à l'avenir.</li>
</ul>
<h3 id="devops">DevOps</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://blog.wescale.fr/2018/06/14/ansible-tips-reboot-continue/">Ansible Tips : Reboot & Continue</a> : Astuce utile pour gérer un reboot d'un serveur via ansible et reprendre ensuite la connexion et l'exécution du reste d'un playbook.</li>
</ul>
<h3 id="ia">IA</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://code.fb.com/developer-tools/finding-and-fixing-software-bugs-automatically-with-sapfix-and-sapienz/">Finding and fixing software bugs automatically with SapFix and Sapienz</a> : Sapienz et SapFix ne sont pas des produits SAP mais des projets Facebook. Le premier est un agent de test automatique et SapFix est une IA qui est en mesure d'identifier des correctifs pour les bugs identifiés par le premier. Le fix peut être un retour partiel ou total au code précédent mais aussi de prospoer des correctifs sur la base de modèle de code. Une fois les correctifs testés et qu'aucune régression n'est identifiée, alors le fix est proposé pour validation aux développeurs.</li>
</ul>
<h3 id="ingenierie">Ingénierie</h3>
<ul>
<li><a rel="noopener" target="_blank" href="http://tonsky.me/blog/disenchantment/">Software disenchantment</a> : "<em>That is not engineering. That’s just lazy programming. Engineering is understanding performance, structure, limits of what you build, deeply. Combining poorly written stuff with more poorly written stuff goes strictly against that. To progress, we need to understand what and why are we doing.</em>" - un plaidoyer pour de meilleures pratiques d'ingénierie partant du constat que les applications développées sont de plus en plus grosses, de moins en moins performantes pour un niveau de fonctionnalité à peine meilleur. Heureusement que les machines ont progressé pour compenser cette "obésité logicielle".</li>
</ul>
<h3 id="no-sql">(No)SQL</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://blog.pythian.com/so-you-have-a-broken-cassandra-sstable-file/">So you have a broken Cassandra SSTable file?</a> : que faire lorsqu'une SSTable est corrmpue, c'est tout l'objet de cet article, de la plus simple et moins impactante à la plus complexe/impactante. Sans aller jusqu'à la corruption, nous avons eu un cas similaire et un <code>nodetool scrub <keysapce> <table></code> a été suffisant.</li>
<li><a rel="noopener" target="_blank" href="http://thelastpickle.com/blog/2018/09/10/incremental-repair-improvements-in-cassandra-4.html">Incremental Repair Improvements in Cassandra 4</a> : les réparations incrémentales, déconseillées jusqu'alors par les gens de The Last Pickle, semblent devenir la solution recommandée avec la sortie prochaine de Cassandra 4.0. Les réprations complètes (full) ne seraient alors utiles que dans certains cas, car moins efficientes.</li>
<li><a rel="noopener" target="_blank" href="https://labs.spotify.com/2018/09/04/introducing-cstar-the-spotify-cassandra-orchestration-tool-now-open-source/">Introducing cstar: The Spotify Cassandra orchestration tool, now open source</a> : Spotify ouvre le code de son shell distribué pour Cassandra, sous le nom de <a rel="noopener" target="_blank" href="https://github.com/spotify/cstar">cstar</a> Il a pour intérêt d'être conscient de la topology du cluster et donc de pouvoir faire les commandes de façon optimisées.</li>
<li><a rel="noopener" target="_blank" href="http://blog.ippon.fr/2018/06/26/architecture-lambda-cassandra-et-synchronisation-des-donnees/">Architecture Lambda, Cassandra et synchronisation des données</a> : après un petit rappel sur l'architecture lambda, l'article présente <em>les différents patterns permettant de garantir qu’une donnée stockée dans Cassandra et pouvant être mise à jour de façon concurrente par un flux batch et un flux temps réel ait toujours la valeur la plus fraîche</em>.</li>
<li><a rel="noopener" target="_blank" href="https://www.instaclustr.com/why-we-built-apache-cassandra-operator-to-run-on-kubernetes/">Why We Built an Open Source Cassandra-Operator to Run Apache Cassandra on Kubernetes</a> : Instaclustr propose un Operator Cassandra pour déployer plus faciment Cassandra sur Kubernetes.</li>
<li><a rel="noopener" target="_blank" href="https://registry.terraform.io/modules/influxdata/influxdb/aws/">Terraform InfluxDB Module</a> : InfluxData a annoncé un <a rel="noopener" target="_blank" href="https://www.influxdata.com/blog/hashicorp-and-influxdata-better-together/">partenariat avec Hashicorp</a> et le premier livrable est un module terraform permettant de déployer InfluxDB OSS ou Entreprise sur AWS.</li>
</ul>
<h3 id="open-web">(Open)Web</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://githubengineering.com/removing-jquery-from-github-frontend/">Removing jQuery from GitHub.com frontend</a> : Github raconte son adoption jusqu'au retrait de JQuery de sa base de code. Il est intéressant de voir que les standards ont permis de remplacer pas mal de fonctionnalités et il reste encore quelques polyfills.</li>
<li><a rel="noopener" target="_blank" href="https://medium.com/@addyosmani/the-cost-of-javascript-in-2018-7d8950fbb5d4">The Cost Of JavaScript In 2018</a> : l'utilisation de Javascript, en particulier sur mobile, n'est pas neutre. L'article revoit les bonnes et mauvaises pratiques.</li>
<li><a rel="noopener" target="_blank" href="https://github.com/dominictarr/your-web-app-is-bloated">your web app is bloated</a> : Etude sur la consommation de mémoire de différnts sites sous Firefox - cela va de 0.8Mo (Gmail Vintage) à 200 Mo (Google Inbox)</li>
</ul>
<h3 id="python">Python</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://julien.danjou.info/high-performance-in-python-with-zero-copy-and-the-buffer-protocol/">High-Performance in Python with Zero-Copy and the Buffer Protocol</a> : astuce utile d'utiliser <code>memoryview</code> pour accélerer les accès aux données et éviter de l'usage inutile de mémoire.</li>
</ul>
<h3 id="astuce-du-mois">Astuce du mois</h3>
<p>J'ai cru à un bug ansible sur les surcharges de variables mais en fait non - pour des variables de même niveau (ici <code>group_vars</code>), l'ordre de fusion des variables est :</p>
<ol>
<li>“all.yaml” est chargé en premier</li>
<li>Les autres fichiers yaml sont chargés par <em>ordre alphabétique</em> et s’écrase les uns les autres le cas échéant</li>
</ol>
<p>Donc si on a :</p>
<p><code>all.yaml</code>:</p>
<pre data-lang="yaml" style="background-color:#2b303b;color:#c0c5ce;" class="language-yaml "><code class="language-yaml" data-lang="yaml"><span style="color:#bf616a;">monitoring</span><span>:
</span><span> </span><span style="color:#bf616a;">datadog</span><span>: </span><span style="color:#d08770;">false
</span></code></pre>
<p><code>cassandra.yaml</code>:</p>
<pre data-lang="yaml" style="background-color:#2b303b;color:#c0c5ce;" class="language-yaml "><code class="language-yaml" data-lang="yaml"><span style="color:#bf616a;">monitoring</span><span>:
</span><span> </span><span style="color:#bf616a;">datadog</span><span>: </span><span style="color:#d08770;">true
</span></code></pre>
<p>et <code>infra.yaml</code>:</p>
<pre data-lang="yaml" style="background-color:#2b303b;color:#c0c5ce;" class="language-yaml "><code class="language-yaml" data-lang="yaml"><span style="color:#bf616a;">monitoring</span><span>:
</span><span> </span><span style="color:#bf616a;">datadog</span><span>: </span><span style="color:#d08770;">false
</span></code></pre>
<p>alors <code>datadog</code> est à <code>false</code> à la fin lorsqu’on exécute le playbook.</p>
<p>A l’inverse:</p>
<p><code>all.yaml</code></p>
<pre data-lang="yaml" style="background-color:#2b303b;color:#c0c5ce;" class="language-yaml "><code class="language-yaml" data-lang="yaml"><span style="color:#bf616a;">monitoring</span><span>:
</span><span> </span><span style="color:#bf616a;">datadog</span><span>: </span><span style="color:#d08770;">false
</span></code></pre>
<p><code>infra.yaml</code>:</p>
<pre data-lang="yaml" style="background-color:#2b303b;color:#c0c5ce;" class="language-yaml "><code class="language-yaml" data-lang="yaml"><span style="color:#bf616a;">monitoring</span><span>:
</span><span> </span><span style="color:#bf616a;">datadog</span><span>: </span><span style="color:#d08770;">false
</span></code></pre>
<p><code>swarm.yaml</code>:</p>
<pre data-lang="yaml" style="background-color:#2b303b;color:#c0c5ce;" class="language-yaml "><code class="language-yaml" data-lang="yaml"><span style="color:#bf616a;">monitoring</span><span>:
</span><span> </span><span style="color:#bf616a;">datadog</span><span>: </span><span style="color:#d08770;">true
</span></code></pre>
<p>alors <code>datadog</code> est à <code>true</code> à la fin lorsqu’on exécute le playbook.</p>
<p>Sources :</p>
<ul>
<li><a rel="noopener" target="_blank" href="https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable">Variables - Variable Precedence: Where Should I Put A Variable?</a></li>
<li><a rel="noopener" target="_blank" href="https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html?highlight=priority#how-variables-are-merged">Working with Inventory - How Variables Are Merged</a></li>
</ul>
Web, Ops & Data - Aout 20182018-08-29T09:30:00+02:002018-08-29T09:30:00+02:00
Unknown
https://cerenit.fr/blog/web-ops-and-data-aout-2018/<h3 id="cloud-open-source">Cloud & Open Source</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://redislabs.com/community/commons-clause/">Redis Labs - Commons Clause</a> - <a rel="noopener" target="_blank" href="http://antirez.com/news/120">Redis will remain BSD licensed</a> - <a rel="noopener" target="_blank" href="http://antirez.com/news/121">Redis is not "open core"</a>: ça chauffe entre l’OSS et les fournisseurs de cloud - pour que les fournisseurs de cloud évitent de se faire de l'argent sur le dos des solutions Open Source et sans contribuer en retour, Redis Labs va changer la licence de certains modules (et pas de tous le logiciel) pour limiter la revente via les fournisseurs de Cloud.</li>
<li><a rel="noopener" target="_blank" href="https://www.influxdata.com/blog/its-time-for-the-open-source-community-to-get-real/">It’s time for the open source community to get real</a> : réflexion intéressance de Paul Dix (CTO InfluxData) sur le sujet du financement de l'Open Source au regard de l'événement Redis Labs.</li>
</ul>
<h3 id="container-et-orchestration">Container et orchestration</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://blog.docker.com/2018/07/kubernetes-is-now-available-in-docker-desktop-stable-channel/">Kubernetes is Now Available In Docker Desktop Stable Channel</a></li>
<li><a rel="noopener" target="_blank" href="https://istio.io/blog/2018/announcing-1.0/">Announcing Istio 1.0</a> : la solution de service mesh à la mode vient de passer l'étape de la version 1.0 - Les <a rel="noopener" target="_blank" href="https://istio.io/about/notes/1.0/">release notes de la 1.0</a> vous donneront le détail. Reste à savoir <a rel="noopener" target="_blank" href="https://www.infoq.com/articles/service-mesh-promise-peril">si vous devez ou non utiliser une solution de Service Mesh...</a></li>
<li><a rel="noopener" target="_blank" href="https://blog.wescale.fr/2018/08/16/kubernetes-comment-ecrire-un-deployment/">Kubernetes : comment écrire un déploiemnt</a> : Billet faisant le tour des principales options de l'objet "Deployment" sous Kubernetes. Certaines options sont toutefois un peu trop résumées.</li>
</ul>
<h3 id="big-data-no-sql">(Big) Data & (No)SQL</h3>
<ul>
<li><a rel="noopener" target="_blank" href="http://thelastpickle.com/blog/2018/07/24/reaper-1_2-released.html">Reaper 1.2 Released</a> : 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 (<a rel="noopener" target="_blank" href="https://github.com/thelastpickle/cassandra-reaper/pull/472">#472</a>, <a rel="noopener" target="_blank" href="https://github.com/thelastpickle/cassandra-reaper/pull/473">#473</a>, <a rel="noopener" target="_blank" href="https://github.com/thelastpickle/cassandra-reaper/pull/474">#474</a>)</li>
<li><a rel="noopener" target="_blank" href="http://thelastpickle.com/blog/2018/08/02/Re-Bootstrapping-Without-Bootstrapping.html">Re-Bootstrapping Without Bootstrapping</a> : 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".</li>
<li><a rel="noopener" target="_blank" href="https://www.confluent.io/blog/introducing-confluent-platform-5-0/">Introducing Confluent Platform 5.0</a> : à l'occasion de la sortie d'<a rel="noopener" target="_blank" href="https://www.apache.org/dist/kafka/2.0.0/RELEASE_NOTES.html">Apache Kafka 2.0</a>, 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.</li>
<li><a rel="noopener" target="_blank" href="https://hackernoon.com/showdown-mysql-8-vs-postgresql-10-3fe23be5c19e">Showdown: MySQL 8 vs PostgreSQL 10 – Hacker Noon</a> : l'article confirme qu'avec MySQL 8.0, MySQL rattraperait Postgres au niveau des grandes fonctionnalités de base.</li>
</ul>
<h3 id="devops">DevOps</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://landing.google.com/sre/book.html">The Site Reliability Workbook</a> : 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.</li>
</ul>
<h3 id="timeseries">Timeseries</h3>
<ul>
<li>Querying Prometheus with Flux (<a rel="noopener" target="_blank" href="https://youtu.be/VvJx0WTiGcA?t=5h47m50s">video</a> - <a rel="noopener" target="_blank" href="https://speakerdeck.com/pauldix/querying-prometheus-with-flux">slides</a>) : 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.</li>
<li><a rel="noopener" target="_blank" href="https://www.cncf.io/blog/2018/08/10/cncf-to-host-openmetrics-in-the-sandbox/">CNCF to Host OpenMetrics in the Sandbox</a> : OpenMetrics est une initiative de standardisation des formats de métriques - le projet rentre donc dans l'initiative de la CNCF. </li>
<li><a rel="noopener" target="_blank" href="https://www.influxdata.com/blog/openmetrics-joins-cncf/">OpenMetrics to Join the CNCF</a> ; <a rel="noopener" target="_blank" href="https://twitter.com/pauldix/status/1027954527075532802">Paul Dix</a> 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.</li>
<li><a rel="noopener" target="_blank" href="https://prometheus.io/blog/2018/08/09/prometheus-graduates-within-cncf/">Prometheus Graduates Within CNCF</a> : toujours coté CNCF, Prometheus, la plateforme de métriques, est le second projet (après Kubernetes) à passer au niveau officiel.</li>
<li><a rel="noopener" target="_blank" href="https://blog.timescale.com/timescaledb-vs-influxdb-for-time-series-data-timescale-influx-sql-nosql-36489299877">TimescaleDB vs. InfluxDB: purpose built differently for time-series data</a> : 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.</li>
</ul>
Web, Ops & Data - Septembre 20172017-09-27T09:30:00+02:002017-09-27T09:30:00+02:00
Unknown
https://cerenit.fr/blog/web-ops-and-data-septembre-2017/<h3 id="architecture">Architecture</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://blog.octo.com/decouplage-decouplage-decouplage/">Découplage, découplage, découplage !</a> : revue de 3 méthodes de découplage (format, localisation, temporalité) pour vos programmes avec forces et faiblesses de chacun.</li>
</ul>
<h3 id="cli">CLI</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://medium.com/@waxzce/use-bashrc-d-directory-instead-of-bloated-bashrc-50204d5389ff">Use .bashrc.d directory instead of bloated .bashrc</a> : Une bonne astuce pour gérer tout ce que l'on veut mettre dans <code>.bashrc</code> 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 ;-)</li>
</ul>
<h3 id="cloud">Cloud</h3>
<ul>
<li><a rel="noopener" target="_blank" href="http://blog.xebia.fr/2017/05/03/aws-separer-la-production-du-developpement/">AWS – Séparer la production du développement</a> : article sur le séparation et la gestion des accès à une équipe de développement au sein d'AWS.</li>
<li><a rel="noopener" target="_blank" href="http://blog.xebia.fr/2017/08/29/aws-dois-je-creer-un-vpc/">AWS – Pourquoi devez-vous créer un VPC ? </a> : 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.</li>
<li><a rel="noopener" target="_blank" href="http://blog.wescale.fr/2017/08/21/saga-de-lete-e02-decouverte-de-service-et-repartition-de-charge-multi-cloud/">Saga de l'été : E01 Construction d’une infrastructure multi-cloud</a>, <a rel="noopener" target="_blank" href="http://blog.wescale.fr/2017/08/21/saga-de-lete-e02-decouverte-de-service-et-repartition-de-charge-multi-cloud/">Saga de l'été : E02 Découverte de service et répartition de charge multi-cloud</a> et <a rel="noopener" target="_blank" href="http://blog.wescale.fr/2017/09/06/saga-de-lete-e03-mon-orchestrateur-de-conteneurs-multi-cloud/">Saga de l'été : E03 Mon orchestrateur de conteneurs multi-cloud</a> : 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.</li>
<li><a rel="noopener" target="_blank" href="https://blog.ippon.fr/2017/06/09/les-architectures-serverless/">Les architectures Serverless</a> : 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.</li>
</ul>
<h3 id="dashboard">Dashboard</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://grafana.com/blog/2017/09/13/grafana-4.5-released/">Graphana 4.5 Released</a> : 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.</li>
</ul>
<h3 id="docker">Docker</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://blog.docker.com/2017/09/preview-linux-containers-on-windows/">Preview: Linux Containers on Windows</a> : 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.</li>
<li><a rel="noopener" target="_blank" href="https://blog.docker.com/2017/09/docker-official-images-now-multi-platform/">Docker Official Images are now Multi-platform</a> : 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 <code>Dockerfile</code> que l'on soit sur un serveur 64 bits ou un raspberry, cela va faciliter les chaines de développement et déploiement.</li>
<li><a rel="noopener" target="_blank" href="https://integratedcode.us/2017/09/13/dockerhub-official-images-go-multi-platform/">DockerHub Official Images Go Multi-platform!</a> : un retour plus complet sur la gestion du passage au multi-platform des images Docker.</li>
</ul>
<h3 id="documentation">Documentation</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://speakerdeck.com/hackebrot/hi-my-name-is-readme-writethedocs-2017">Hi, my name is README! - WriteTheDocs 2017</a> : bonnes (et mauvaises) pratiques sur la rédaction du fichier README qui est le point d'entrée sur votre projet.</li>
</ul>
<h3 id="elastiscearch">Elastiscearch</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://www.elastic.co/blog/a-full-stack-in-one-command">A Full Stack in One Command</a> : 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...</li>
<li><a rel="noopener" target="_blank" href="https://www.elastic.co/blog/elastic-stack-5-6-0-released">Elastic Stack 5.6.0 Released</a> : 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.</li>
</ul>
<h3 id="kafka">Kafka</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://blog.ippon.fr/2017/07/11/kafka-0-11-0-%e2%99%a5/">Kafka 0.11.0 == ♥</a> : 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.</li>
<li><a rel="noopener" target="_blank" href="https://medium.com/@jaykreps/exactly-once-support-in-apache-kafka-55e1fdd0a35f">Exactly-once Support in Apache Kafka</a> : le co-fondateur de Confluent revient sur la signification de "Exactly-once support" dans Kafka et sur son implémentation.</li>
<li><a rel="noopener" target="_blank" href="https://www.confluent.io/blog/exactly-once-semantics-are-possible-heres-how-apache-kafka-does-it/">Exactly-once Semantics are Possible: Here’s How Kafka Does it</a> : la même expliquée par la CTO de Confluent.</li>
<li><a rel="noopener" target="_blank" href="https://www.confluent.io/blog/ksql-open-source-streaming-sql-for-apache-kafka/">Introducing KSQL: Open Source Streaming SQL for Apache Kafka</a> : Kafka se dote d'une interface SQL permettant de faire des requêtes de façon continue (<em>continuous queries</em>) 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 <em>developer preview</em> mais cela peut être intéressant à terme.</li>
<li><a rel="noopener" target="_blank" href="https://blog.zenika.com/2017/09/14/mais-cest-quoi-apache-kafka/">Mais c'est quoi Kafka</a> : une présentation synthétique de Kafka et son écosystème pour bien appréhender cette plateforme.</li>
<li><a rel="noopener" target="_blank" href="https://www.spreaker.com/user/vhe74/episode-47-kafka-sql-beam-and-co">BigData Hebdo - Ep 47 : Kafka, SQL, Beam & co</a> : un excellent épisode du podcast <a rel="noopener" target="_blank" href="http://bigdatahebdo.com/">BigData Hebdo</a> faisant un point très clair sur les annonces Kafka (mais aussi sur Beam) </li>
<li><a rel="noopener" target="_blank" href="https://www.confluent.io/blog/okay-store-data-apache-kafka/">It’s Okay To Store Data In Apache Kafka</a> : 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 :-)</li>
<li><a rel="noopener" target="_blank" href="https://www.nextplatform.com/2017/08/30/kafka-wakes-metamorphosed-database/">Kafka Wakes Up And Is Metamorphosed Into A Database</a> : opinion sur la "métamorphone" de Kafka en base de données avec une opinion rigolote : "<em>It would have been far funnier, of course, if Kafka woke up one morning and had been turned into CockroachDB</em>". </li>
<li><a rel="noopener" target="_blank" href="https://www.confluent.io/blog/crossing-streams-joins-apache-kafka/">Crossing the Streams – Joins in Apache Kafka</a> : 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).</li>
</ul>
<h3 id="licences-et-open-source">Licences et Open Source</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://ma.tt/2017/09/on-react-and-wordpress/">On React and Wordpress</a> : Suite aux <a rel="noopener" target="_blank" href="https://code.facebook.com/posts/112130496157735/explaining-react-s-license/">histoires de licence autour de celle de ReactJS</a> et de la <a rel="noopener" target="_blank" href="https://issues.apache.org/jira/browse/LEGAL-303">fondation Apache interdisant aux projets qu'elle héberge d'utliser React</a>, 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.</li>
<li><a rel="noopener" target="_blank" href="https://blog.cloudboost.io/3-points-to-consider-before-migrating-away-from-react-because-of-facebooks-bsd-patent-license-b4a32562d268">3 Points to Consider before Migrating Away from React Because of Facebook’s ‘BSD+ Patent’ License</a> : 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.</li>
<li><a rel="noopener" target="_blank" href="https://code.facebook.com/posts/300798627056246/relicensing-react-jest-flow-and-immutable-js">Relicensing React, Jest, Flow, and Immutable.js</a> : 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 <a rel="noopener" target="_blank" href="https://twitter.com/kantrn/status/911358449677631488">si cela ne serait pas pire</a>.</li>
</ul>
<h3 id="microservices">Microservices</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://martinfowler.com/bliki/MonolithFirst.html">Monolith First</a> : 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.</li>
</ul>
<h3 id="nosql">NoSQL</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://redislabs.com/blog/redis-4-0-0-released/">Redis 4.0.0 released</a> : 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).</li>
<li><a rel="noopener" target="_blank" href="https://www.spreaker.com/user/vhe74/episode-46-elassandra">BigData Hebdo - Ep 46: Elassandra</a> : Vous vouliez le meilleur des mondes entre Cassandra et Elasticsearch - c'est désormais possible avec <a rel="noopener" target="_blank" href="http://www.elassandra.io/">Elassandra</a>. 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.</li>
</ul>
<h3 id="sql">SQL</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://www.compose.com/articles/geofile-getting-started-with-pgrouting/">Geofile: Getting Started with pgRouting</a> et <a rel="noopener" target="_blank" href="https://www.compose.com/articles/geofile-getting-started-with-pgrouting-using-esri-shapefiles/">Geofile: Getting Started with pgRouting using Esri Shapefiles</a>: <a rel="noopener" target="_blank" href="http://pgrouting.org/">pgRouting</a> est une extension Postgres s'appuyant sur l'extension géospatiale <a rel="noopener" target="_blank" href="http://www.postgis.net/">PostGIS</a> 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.</li>
<li>The MySQL High Availability Landscape in 2017 : <a rel="noopener" target="_blank" href="https://www.percona.com/blog/2017/06/20/the-mysql-high-availability-landscape-in-2017-the-elders/">the elders</a>, <a rel="noopener" target="_blank" href="https://www.percona.com/blog/2017/08/22/mysql-high-availability-landscape-2017-adults/">the adults</a> and <a rel="noopener" target="_blank" href="https://www.percona.com/blog/2017/09/15/the-mysql-high-availability-landscape-in-2017-the-babies/">the babies</a> : panorama des solutions de haute disponibilités avec MySQLdepuis les solutions historiques jusqu'au plus récentes.</li>
</ul>
<h3 id="streaming">Streaming</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://cloud.google.com/blog/big-data/2017/08/the-canonical-new-book-about-stream-processing">The canonical new book about stream processing</a> : une nouvelle ressource sur le streaming via les équipes de Google Cloud Platform. Pas encore lu mais semble intéressant.</li>
</ul>
<h3 id="vie-du-developpeur">Vie du développeur</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-1/">Le demi-cercle (épisode 1)</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-2-voir-avancer/">Le demi-cercle (épisode 2 : voir et avancer)</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-3-communication-breakdown/">Le demi-cercle (épisode 3 — Communication Breakdown) </a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-4-driver-navigators/">Le demi-cercle (épisode 4 — Driver / Navigators) </a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/mob-programming-episode-5-brown-bag-lunch/">Brown Bag Lunch</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-6-conseils-a-emporter/">Conseils à emporter</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-7-crise-opportunite/">Crise / Opportunité</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-8-le-cinquieme-etage/">Le 5ème étage</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-9-que-faire/">Que faire ?</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-10-soit-soit/">Soit… soit…</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-11-boites-et-fleches/">Boites et flèches</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-12-le-prochain-copil/">Le prochain copil</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-13-la-faille/">la faille</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-14-poussiere/">Poussière</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-15-lhypothese-et-la-regle/">L'hypothèse et la règle</a> <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-16-deplacements/">Déplacements</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-17-jouer-et-ranger/">Jouer et Ranger</a>, <a rel="noopener" target="_blank" href="https://blog.octo.com/le-demi-cercle-episode-18-arrangements/">Arrangements</a> : 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...</li>
<li><a rel="noopener" target="_blank" href="https://hackernoon.com/the-art-of-pull-requests-6f0f099850f9">The Art of Pull Requests</a> : des bonnes pratiques pour mener des pull requests de façon bienveillante.</li>
</ul>
<h3 id="web">Web</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://speakerdeck.com/fox/the-state-of-the-web">The State of the Web</a> avec son <a rel="noopener" target="_blank" href="https://medium.com/@fox/talk-the-state-of-the-web-3e12f8e413b3">transcript</a> : Etat des lieux et bonnes pratiques sur les différentes sujets liés au plateformes web (webperf, optimisation, outils, etc).</li>
<li><a rel="noopener" target="_blank" href="https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/">Chrome to force .dev domains to HTTPS via preloaded HSTS</a> : 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.</li>
<li><a rel="noopener" target="_blank" href="https://tools.ietf.org/html/rfc8246">HTTP Immutable Responses</a> : nouvel argument <code>immutable</code> pour l'entête <code>Cache-Control</code> 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.</li>
<li><a rel="noopener" target="_blank" href="https://blog.dareboost.com/fr/2017/09/hsts-fiabiliser-connexions-securisees/">Fiabiliser les connexions sécurisées avec HSTS (HTTP Strict Transport Security)</a> : 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.</li>
</ul>
Web, Ops & Data - Semaine 292016-07-18T00:00:00+00:002016-07-18T00:00:00+00:00
Unknown
https://cerenit.fr/blog/web-ops-and-data-semaine-29/<h3 id="elasticsearch">Elasticsearch</h3>
<ul>
<li><a rel="noopener" target="_blank" href="http://logz.io/blog/10-elasticsearch-concepts/">10 Elasticsearch Concepts You Need to Learn</a> : Retour aux bases, si vous voulez des explications sur les différents concepts d'Elasticsearch, c'est une bonne synthèse.</li>
<li><a rel="noopener" target="_blank" href="http://logz.io/blog/elk-stack-5-0/">Everything You Need to Know About ELK Stack 5.0</a> : une synthèse des apports & nouveautés de la prochaine version de la stack ELK.</li>
<li><a rel="noopener" target="_blank" href="https://thoughts.t37.net/how-we-reindexed-36-billions-documents-in-5-days-within-the-same-elasticsearch-cluster-cd9c054d1db8">How we reindexed 36 billion documents in 5 days within the same Elasticsearch cluster</a> : un très long billet mais avec plein d'enseignement sur la gestion d'un cluster Elasticsearch et la migration d'un index.</li>
<li><a rel="noopener" target="_blank" href="https://thoughts.t37.net/how-to-fix-your-elasticsearch-cluster-stuck-in-initializing-shards-mode-ce196e20ba95">How to fix your Elasticsearch cluster stuck in initializing shards mode?</a> : petit how-to utile sur la gestion d'un cluster lorsque les shards ont du mal à se redéployer suite à un redémarrage du cluster.</li>
<li><a rel="noopener" target="_blank" href="https://thoughts.t37.net/elasticsearch-cluster-rolling-restart-at-the-speed-of-light-with-rack-awareness-af650fca31e1">ElasticSearch cluster rolling restart at the speed of light with rack awareness</a> : un petit how to pour gérer le restart de son cluster de façon optimisée en tirant partie de la "rack awareness". Intéressant !</li>
</ul>
<h3 id="cassandra">Cassandra</h3>
<ul>
<li><a rel="noopener" target="_blank" href="http://www.datastax.com/2016/06/introducing-datastax-enterprise-5-0">Introducing Datastax Entreprise 5.0</a> : la nouvelle version de l'<a rel="noopener" target="_blank" href="http://www.datastax.com/products/datastax-enterprise">offre entreprise de Cassandra</a> vient de voir le jour. Elle apporte notamment un modèle Graph (<a rel="noopener" target="_blank" href="http://www.datastax.com/2016/04/introducing-datastax-enterprise-graph">Introduction to DSE Graph</a>). Ayant assisté au Cassandra Days à Paris, j'ai bien aimé l'idée d'avoir un worker Spark et un index Solr sur chaque noeud du cluster Cassandra pour pouvoir travailler au plus près des données et avoir différentes façons de travailler avec selon les besoins. Une combinaison assez intéressante pour manipuler les données tout en restant dans une architecture (relativement) simple ou plus simple qu'une architecture Hadoop.</li>
<li><a rel="noopener" target="_blank" href="http://tech.m6web.fr/rex-cassandra/">Retour d'expérience sur l'utilisation de Cassandra sur 6play en vidéo</a> ; Retour d'expérience de l'équipe M6Web sur leur utilisation de Cassandra lors des Cassadra Days à Paris en Juin.</li>
</ul>
<h3 id="wagtail">Wagtail</h3>
<ul>
<li><a rel="noopener" target="_blank" href="http://makina-corpus.com/blog/metier/2016/wagtail-creer-ses-modeles-de-type-de-contenu-partie-1">Wagtail, créer des modèles de type de contenu - partie 1</a> : <a rel="noopener" target="_blank" href="https://wagtail.io/">Wagtail</a> est un CMS développé en python et s'appuyant sur le framework <a rel="noopener" target="_blank" href="https://www.djangoproject.com/">Django</a>. Le billet de blog permet de revoir les étapes de création d'un contenu. </li>
<li><a rel="noopener" target="_blank" href="http://makina-corpus.com/blog/metier/2016/wagtail-utiliser-le-modele-page-ainsi-que-son-manager-partie-2">Wagtail : Utiliser le modèle Page ainsi que son Manager (partie 2)</a> : dans cette seconde partie, c'est la façon de requêter les objets de contenus qui est traité.</li>
<li><a rel="noopener" target="_blank" href="http://makina-corpus.com/blog/metier/2016/wagtail-comment-ecrire-les-templates-partie-3">Wagtail : Comment écrire les templates (partie 3)</a> : cette partie 3 permet de passer rapidement sur la logique de "template" et des apports de Wagtail sur les templates django traditionnels.</li>
</ul>
<p>Je suis avec intérêt <a rel="noopener" target="_blank" href="https://wagtail.io/">Wagtail</a> et <a href="ttps://getgrav.org">Grav</a> qui sont 2 CMS assez flexibles et avec des interfaces ergonomiques et ce sans rentrer dans des usines à gaz comme Drupal ou eZ Publish.</p>
<h3 id="kubernetes">Kubernetes</h3>
<ul>
<li><a rel="noopener" target="_blank" href="http://blog.kubernetes.io/2016/07/kubernetes-1.3-bridging-cloud-native-and-enterprise-workloads.html">Kubernetes 1.3: Bridging Cloud Native and Enterprise Workloads</a> : cette version apporte de nombreuses améliorations, dont le support du format de container rkt (issu du projet CoreOS, via <a rel="noopener" target="_blank" href="http://blog.kubernetes.io/2016/07/rktnetes-brings-rkt-container-engine-to-Kubernetes.html">rktnetes</a>), les premiers pas du support de cluster multi-datacenter via la fédération de clusters, une meilleure gestion des containers "statefull" (base de données, etc) et d'autres améliorations.</li>
<li><a rel="noopener" target="_blank" href="http://blog.kubernetes.io/2016/07/minikube-easily-run-kubernetes-locally.html">Minikube: easily run Kubernetes locally </a> : Dans le cadre de la sortie de Kubernetes 1.3, les équipes de Google cherchent à rendre Kubernetes plus accessible sur un poste de développeur. C'est le propos de Minikube de fournir un cluster kubernetes minimaliste en quelques clics tout en offrant l'ensemble des fonctionnalités de Kubernetes.</li>
</ul>
Web, Ops & Data - Semaine 162016-04-20T09:30:00+02:002016-04-20T09:30:00+02:00
Unknown
https://cerenit.fr/blog/web-ops-and-data-semaine-16/<h3 id="kafka">Kafka</h3>
<ul>
<li><a rel="noopener" target="_blank" href="http://www.confluent.io/blog/hello-world-kafka-connect-kafka-streams">Hello world, Kafka connect and Kafka Steams</a> : 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.</li>
<li>La supervision de Kafka est encore assez jeune et immature ; un <a rel="noopener" target="_blank" href="http://www.confluent.io/blog/how-we-monitor-and-run-kafka-at-scale-signalfx">retour d'expérience assez complet et intéressant de SignalFX</a> où ils présentent leur démarche et les développements qu'ils ont mené.</li>
<li>Si vous êtes clients AWS, ce retour d'expérience sur <a rel="noopener" target="_blank" href="http://www.confluent.io/blog/deploying-apache-kafka-on-aws-elastic-block-store-ebs">Kafka et EBS</a> et en quoi les nouvelles offres EBS sont intéressantes dans un contexte Kafka.</li>
</ul>
<h3 id="container">Container</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://shipyard-project.com/">Shipyard</a> : une surcouche à <a rel="noopener" target="_blank" href="https://www.docker.com/products/docker-swarm">Docker Swarm</a> 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.</li>
<li>Docker a annoncé <a rel="noopener" target="_blank" href="https://blog.docker.com/2016/04/docker-engine-1-11-runc/">la sortie de la version 1.11</a> avec son lot de nouveautés :
<ul>
<li>Une plus grande modularité de l'Engine avec <a rel="noopener" target="_blank" href="https://blog.docker.com/2016/04/docker-containerd-integration/">la sortie de containerd</a> ; couche intermédiaire entre l'API et les containeurs en eux même et dont le but est de les piloter.</li>
<li>Engine 1.11 : Support des VLAN, IPv6, encore plus de labels, DNS Round robin, etc.</li>
<li>Swarm 1.2 : le rescheduling est désormais stable</li>
<li>Compose 1.7 : arrivée de <code>docker-compose up --build</code> pour rebuilder et lancer votre stack et <code>docker-compose exec</code></li>
<li>...</li>
</ul>
</li>
<li><a rel="noopener" target="_blank" href="http://blog.xebia.fr/2016/04/08/docker-pattern-conteneur-de-build/">Docker, container de build</a> : 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.</li>
<li>Une expérience autour de <a rel="noopener" target="_blank" href="https://medium.com/on-docker/federated-clusters-with-docker-swarm-dce5516ecc8d">clusters fédérés avec Docker Swarm</a> ; l'idée, sous la forme d'un <em>proof of concept</em> est de voir s'il est possible et dans quelle mesure il est possible de faire un cluster de cluster swarm.</li>
<li><a rel="noopener" target="_blank" href="https://github.com/Ingensi/dockerbeat">Dockerbeat</a> ou quand <a rel="noopener" target="_blank" href="https://www.elastic.co/products/beats">beats</a> rencontre Docker. Il est dès lors possible de remonter les statistiques de votre/vos container(s) docker dans Elasticsearch afin de les indexer.</li>
<li>Pour conclure, <a rel="noopener" target="_blank" href="https://davidwalsh.name/docker-remove-all-images-containers">une petite astuce pour supprimer tous les conteneurs et images docker présentes sur votre poste/serveur</a>.</li>
</ul>
<h3 id="elasticsearch">Elasticsearch</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://speakerdeck.com/odolbeau/elasticsearch-chez-blablacar">Elasticsearch chez BlaBlaCar</a> : une vision sur l'utilisation (massive ?) d'Elasticsearch chez BlaBlaCar.</li>
<li><a rel="noopener" target="_blank" href="https://github.com/vroyer/elassandra">Elassandra</a> est un fork de Elasticsearch modifié pour tourner au-dessus d'un cluster <a rel="noopener" target="_blank" href="http://cassandra.apache.org/">Cassandra</a>. L'idée est apparamment de bénéficier des capacités de recherche d'Elasticsearch en profitant de la résilience de Cassandra.</li>
</ul>
<h3 id="postgres">Postgres</h3>
<ul>
<li><a rel="noopener" target="_blank" href="http://2ndquadrant.com/fr/resources/postgres-xl/">Postgres XL</a> est une version distribuée et optimisée de Postgres ; tout comme CitusDB, dont on a parlé précédemment, la <a rel="noopener" target="_blank" href="http://blog.2ndquadrant.com/postgres-xl-9-5r1-has-finally-arrived/">version 9.5r1</a> 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.</li>
<li><a rel="noopener" target="_blank" href="https://compose.io/articles/could-postgresql-9-5-be-your-next-json-database/">Est-ce que Postgres 9.5 peut être votre base JSON ?</a> ; 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.</li>
<li><a rel="noopener" target="_blank" href="http://blog.taadeem.net/french/2016/04/12/Superviser_PostgreSQL">Superviser Postgresql</a> ; un panorama des solutions existantes pour les différents besoins de monitoring.</li>
</ul>