CérénIT - elassandraLe blog tech de Nicolas Steinmetz (Time Series, IoT, Web, Ops, Data)Zola2017-09-27T09:30:00+02:00https://cerenit.fr/tags/elassandra/atom.xmlWeb, 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>