CérénIT - mariadbLe blog tech de Nicolas Steinmetz (Time Series, IoT, Web, Ops, Data)Zola2020-10-28T09:30:00+01:00https://cerenit.fr/tags/mariadb/atom.xmlWeb, Ops & Data - Octobre 20202020-10-28T09:30:00+01:002020-10-28T09:30:00+01:00
Unknown
https://cerenit.fr/blog/web-ops-and-data-octobre-2020/<p>Des nouvelles du Paris Time Series Meetup : <a rel="noopener" target="_blank" href="https://www.ptsm.io/#ptsm-6">l'éditions 6 sur TimescaleDB</a> et <a rel="noopener" target="_blank" href="https://www.ptsm.io/#ptsm-7">l'édition 7 sur QuestDB</a></p>
<h3 id="ci-cd">CI/CD</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://about.gitlab.com/blog/2020/10/01/three-yaml-tips-better-pipelines/">3 YAML tips for better pipelines</a> : la troisième est certainement la plus intéressante - il est possible d'avoir des mécanismes de "composabilité" / "héritage" avec YAML et Gitlab. Si les <code>include</code> et <code>extends</code> sont déjà sympathiques, les <a rel="noopener" target="_blank" href="https://docs.gitlab.com/ee/ci/yaml/README.html#anchors"><code>anchors</code></a> ont l'air de faire des choses intéressantes aussi !</li>
</ul>
<h3 id="code">Code</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://docs.python.org/3.9/whatsnew/3.9.html">What’s New In Python 3.9</a> et <a rel="noopener" target="_blank" href="https://twitter.com/svpino/status/1313202874487312387">un thread twitter</a> qui donne des exemples des principales nouveautés : au programme nouvelle syntaxe pour la fuston des dictionnaires, des méthides pour supprimer des suffixes/préfixes sur les strings, du typage et plein d'autres améliorations et corrections.</li>
<li><a rel="noopener" target="_blank" href="https://blog.ploeh.dk/2020/10/05/fortunately-i-dont-squash-my-commits/">Fortunately, I don't squash my commits</a> : s'il peut être tentant sur une MR/PR de faire un squash des commits, l'article vous confortera dans l'idée que ce n'est pas une bonne idée. En écrasant l'historique des commits, on y perd sur nos capacités de debug. Par ailleurs, il est conseillé de faire des petits commits pour capturer un ensemble de changements traduisant un moment précis du développement.</li>
</ul>
<h3 id="container-et-orchestration">Container et orchestration</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://opensource.googleblog.com/2020/09/kubernetes-ingress-goes-ga.html">Kubernetes Ingress Goes GA</a> : l'apparition de IngressClassName dans k8s 1.19 va plus loin qu'un simple renommage de champ comme je l'avais compris initialement. C'est une vraie ressource et cela ouvre aussi des possibilités. Avant de l'utiliser, vérifiez aussi que vos ingress controller le supporte (en plus d'attendre d'être en 1.19)</li>
<li><a rel="noopener" target="_blank" href="https://traefik.io/blog/houston-we-have-plugins-traefik-2-3-announcement/">Houston, we have Plugins! Traefik 2.3 Announcement</a> : la version 2.3 dont on a déjà parlé ici, est arrivé en version stable avec son support des plugins, son intégration avec Traefik Pilot, le support d'Amazone ECS et le support de la ressource IngressClassName. Au passage, Containous, la société éditrice de Traefik s'appelle maintenant Traefik Labs.</li>
<li><a rel="noopener" target="_blank" href="https://traefik.io/blog/introducing-traefik-pilot-1-0-one-place-to-manage-all-your-traefik-instances/">Introducing Traefik Pilot 1.0: the Traefik Control Center</a> : Version 1.0 de ce nouveau "Control Plane" de Traefik qui permet d'avoir une vision globale sur ses instances traefik, d'utiliser les plugins et d'avoir un monitoring et des alertes autour de la disponibilité, des performances et de la sécurité.</li>
<li><a rel="noopener" target="_blank" href="https://github.com/kubernetes/enhancements/issues/2033">Rootless mode</a> : A voir si cela pourra être inclus dans la version 1.20 mais le rootless mode est clairement une tendance de fond dans kubernetes et les conteneurs en général. Si vous ne vous y êtes pas déjà mis, ne tardez pas !</li>
<li><a rel="noopener" target="_blank" href="https://traefik.io/blog/announcing-traefik-mesh-1-4-new-name-new-features/">Announcing Traefik Mesh 1.4 - New Name, New Features</a> : nouvelle version du service mesh par Traefik Labs et qui s'appelle maintenant Traefik Mesh (et non uniquement Maesh). Le reste des améliorations semble porter sur le filtrage des headers et des paths.</li>
<li><a rel="noopener" target="_blank" href="https://dev.to/vikcodes/yq-a-command-line-tool-that-will-help-you-handle-your-yaml-resources-better-8j9">yq : A command line tool that will help you handle your YAML resources better </a> : vous voulez faire des opératoins sur des fichiers YAML sans faire un chart helm ou sortir <a rel="noopener" target="_blank" href="https://kustomize.io/">kustomize</a>, vous pouvez faire des choses minimalistes avec <a rel="noopener" target="_blank" href="https://github.com/mikefarah/yq">yq</a> (le pendant yaml de <a rel="noopener" target="_blank" href="https://stedolan.github.io/jq/">jq</a>).</li>
<li><a rel="noopener" target="_blank" href="https://devblogs.microsoft.com/visualstudio/bridge-to-kubernetes-ga/">Bridge to Kubernetes GA</a>, "bridge to kubernetes" est une extension pour vscode permettant de connecter une application tournant en local avec d'autres applications situées dans un ckuster kubernetes et faciliter ainsi l'expérience des développeurs.</li>
</ul>
<h3 id="culture-devops">Culture DevOps</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://medium.com/@polomarcus/la-culture-de-la-r%C3%A9silience-%C3%A0-travers-le-devops-devpo-et-devqa-5792168380a9">La culture de la résilience à travers le DevOps, DevPO, et DevQA</a> : article intéressant de Paul Leclerq sur la résilience et la collaboration au sein d'une équipe.</li>
</ul>
<h3 id="data">Data</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://towardsdatascience.com/how-to-measure-your-organizations-data-maturity-2352cbaf1896">How to Measure Your Organization’s Data Maturity</a> : les différents stade de maturité de votre organisation concernant la gestion et l'exploitation des données.</li>
<li><a rel="noopener" target="_blank" href="https://streamnative.io/blog/tech/2020-09-28-announcing-mqtt-on-pulsar">Announcing MQTT-on-Pulsar: Bringing Native MQTT Protocol Support to Apache Pulsar</a>: <a rel="noopener" target="_blank" href="http://pulsar.apache.org/">Apache Pulsar</a>, la plateforme de message distribué et de streaming, se dote d'un plugin "MQTT On Pulsar" (MoP) permettant ainsi de migrer vos applications MQTT sur Apache Pulsar. Après le <a rel="noopener" target="_blank" href="https://streamnative.io/blog/tech/2020-03-24-bring-native-kafka-protocol-support-to-apache-pulsar/">plugin Kafka</a> (KoP) il y a quelques mois en partenariat avec OVHCloud, Pulsar ajoute une corde à son arc pour devenir la plateforme universelle. Le <a rel="noopener" target="_blank" href="https://streamnative.io/blog/tech/2020-06-15-announcing-aop-on-pulsar">protocole AMQP</a> est déjà aussi supporté depuis plusieurs mois.</li>
<li><a rel="noopener" target="_blank" href="https://medium.com/@gillesbarbier/building-an-event-driven-orchestration-engine-bf62d45aef5d">Building An Event-Driven Orchestration Engine</a> : retour d'expérience sur les raisons de la migration à Apache Pulsar e la simplificaiton apportée en ayant une platforme riche et complète (streaming + queue + fonctions + data tiering sur S3 + ...)</li>
</ul>
<h3 id="hardware">Hardware</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://thenewstack.io/nvidias-planned-acquisition-of-arm-portends-radical-data-center-changes/">NVidia’s Planned Acquisition of Arm Portends Radical Data Center Changes</a> : une analyse assez en profondeur sur le rachat d'arm par nvidia et les autres acteurs du marché comme AMD.</li>
</ul>
<h3 id="iac">IaC</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://www.hashicorp.com/blog/announcing-hashicorp-terraform-0-14-beta">Announcing HashiCorp Terraform 0.14 Beta</a>: la capacité à marquer des variables comme sensibles pour éviter que leur valeur soit visible dans les logs/diff/..., un diff plus concis, un lock sur les providers et des binaires disponibles pour arm64.</li>
</ul>
<h3 id="monitoring">Monitoring</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://blog.timescale.com/blog/promscale-analytical-platform-long-term-store-for-prometheus-combined-sql-promql-postgresql/">Long-term store for Prometheus, with the combined power of SQL and PromQL</a> : Timescale s'ajoute à la liste des solutions permettant un stockage long terme à vos données Prometheus. En plus de ce stockage long terme, elle fournit une couche d'analytics. Un connecteur récupère les données dans Prometheus et les injecte dans TimescaleDB. On en parle dans <a rel="noopener" target="_blank" href="https://www.ptsm.io/#ptsm-6">l'édition 6 du PTSM</a>.</li>
</ul>
<h3 id="pratique">Pratique</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://endoflife.date/">endoflife.date</a> : recense les dates de fin de support de vos langages et technologies préférées. Tout n'est pas complètement à jour mais cela permet de récupérer rapidement les informations.</li>
</ul>
<h3 id="sql">SQL</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://www.percona.com/blog/2020/10/02/exciting-and-new-features-in-mariadb-10-5/">Exciting and New Features in MariaDB 10.5</a> : évoqué <a href="/blog/web-ops-and-data-aout-2020/">au mois d'aout</a>, le support de S3 dans MariaDB est disponible en version GA dans la version 10.5. D'autres améliorations existent comme le support du type INET6, des améliorations sur ColumnStore, la gestion des privilèges, le cluster Galera supporte complètement le GTID, du refactoring au niveau d'InnoDB et enfin les binaires mariadb vont enfin s'appeler mariadb et non plus mysql (avec une couche de compatibilité via des liens symboliques)</li>
</ul>
<h3 id="time-series">Time Series</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://blog.senx.io/introducing-flows/">Introducing FLoWS, a functional language for Time Series Analytics</a> : <a rel="noopener" target="_blank" href="https://warpfleet.senx.io/browse/io.warp10/warp10-ext-flows">FLoWS</a> est arrivé - il vous faudra utiliser une version 2.7.1+ de Warp10 pour profiter de cette approche fonctionnelle en alternative à Warpscript.</li>
<li><a rel="noopener" target="_blank" href="https://blog.senx.io/which-time-series-database-suited-to-your-needs">How can you tell which Time Series Database is suited to your needs?</a> : un petit rappel sur les critères à prendre en compte pour choisir une base de données séries temporelles ; j'avais déjà parlé du guide de Senx sur le sujet - il est disponible en fin de billet.</li>
<li><a rel="noopener" target="_blank" href="https://www.influxdata.com/blog/influxdb-2-0-release-candidate-now-available/">InfluxDB 2.0 Release Candidate Now Available</a> : la première Relese Candidate (RC0) pour InfluxDB 2.0 OSS avec le retour du moteur de stockage de la V1 - qui contrairement à ce que j'ai pu dire le mois dernier ne concernerait que la façon dont les données sont stockées sur disque et pas le reste d'une part et sera maintenu et amélioré par Influxdata d'autre part. Quelques changements sur le port (retour au port 8086). Pour ceux qui étaient en version alpha/beta, il faudra suivre une procédure de migration. La migration depuis une version 1.x n'est pas encore disponible, cela devrait être dans une prochaine RC. Vous pourrez tester néanmoins les API 1.x, les templates, une version récente de Flux ou encore les améliorations de la CLI.</li>
<li><a rel="noopener" target="_blank" href="https://www.influxdata.com/blog/release-announcement-influxdb-2-0-0-rc-1/">Release Announcement: InfluxDB 2.0.0 RC 1</a> : cette version apporte essentiellement l'upgrade des données 1.x vers 2.x et une mise à jour de Flux.</li>
<li><a rel="noopener" target="_blank" href="https://aws.amazon.com/fr/blogs/aws/store-and-access-time-series-data-at-any-scale-with-amazon-timestream-now-generally-available/">Store and Access Time Series Data at Any Scale with Amazon Timestream – Now Generally Available</a> - <a rel="noopener" target="_blank" href="https://www.youtube.com/watch?v=8RHFPNReylI">Getting Started with Amazon Timestream</a> - <a rel="noopener" target="_blank" href="https://www.infoq.com/news/2020/10/aws-amazon-timestream-ga/">AWS Releases Amazon Timestream into General Availability </a> : AWS sort enfin son produit orienté time series après l'avoir annoncé il y a deux ans.</li>
</ul>
<p>Sur la base des informations disponibles pour le moment :</p>
<ul>
<li>vous définissez une période de rétention en mémoire (entre 1h et 1 an) et une période de rétention sur stockage magnétique (1 jour à 200 ans),</li>
<li>le requêtage des données se fait en SQL (via Presto ?),</li>
<li>les données à requêter communément sont à mettre dans la même table,</li>
<li>le join est limité à la même table,</li>
<li>des mesures simples (pas de multi mesures pour un même enregistrement),</li>
<li>une intégration avec l'écosystème comme <a rel="noopener" target="_blank" href="https://github.com/aws/telegraf">telegraf</a>, <a rel="noopener" target="_blank" href="https://grafana.com/blog/2020/09/30/now-you-can-add-amazon-timestream-to-your-grafana-observability-dashboard/">grafana</a>, etc en plus de l'intégration avec différents composants AWS</li>
</ul>
<p>Pour les moins bons côtés :</p>
<ul>
<li>pas d'UPDATE/DELETE sur vos données ; en cas de doublons, c'est le premier arrivé qui gagne</li>
<li>pas de bulk import de vos données, donc pas de reprise de vos données existantes. En effet, il n'est pas possible d'ingérer des données plus vieille que la période en mémoire,</li>
<li>dans la même veine, si un incident de production dépasse votre période de rétention, vous ne pourrez pas réinjecter vos données</li>
<li>il ne semble pas possible de mettre à jour ses durées de rétention - donc pas de ménage possible ou d'ajustements en cours de route</li>
</ul>
<p>Une solution a priori très orienté pour du monitoring et qui semble souffir des mêmes travers qu'InfluxDB avec InfluxQL et pourtant en passe d'être résolus avec Flux.</p>
<p>On devrait en parler plus en détail dans une <a rel="noopener" target="_blank" href="https://www.ptsm.io/">prochaine édition du Paris Time Series Meetup</a> avec <a rel="noopener" target="_blank" href="https://twitter.com/ParisTimeSeries/status/1312719321458712576">des personnes de chez AWS</a> ;-)</p>
<h1 id="work">Work</h1>
<ul>
<li><a rel="noopener" target="_blank" href="https://blog.dropbox.com/topics/company/dropbox-goes-virtual-first">Virtual First Toolkit</a> : toolkit proposé par Dropbox dans le cadre de leur passage non pas à Remote first mais à <a rel="noopener" target="_blank" href="https://blog.dropbox.com/topics/company/dropbox-goes-virtual-first">virtual first</a>.</li>
</ul>
Web, 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 - Janvier 20182018-01-31T09:30:00+01:002018-01-31T09:30:00+01:00
Unknown
https://cerenit.fr/blog/web-ops-and-data-janvier-2018/<h3 id="container-orchestration">Container & Orchestration</h3>
<ul>
<li><a rel="noopener" target="_blank" href="http://blog.kubernetes.io/2018/01/core-workloads-api-ga.html">Core Workloads API GA</a> : la version 1.9 de Kubernetes sortie tout début janvier marque un tourant intéressant avec le passage en stable des "Core Workload API" (Pod, ReplicationController, ReplicaSet, Deployment, DaemonSet, and StatefulSet). Avec cette stabilisation des termes, des concepts et des API, c'est le socle de Kubernetes qui se stabilise sérieusement. Une bonne raison de plus de creuser cette solution au fur et à mesure que l'écosystème va se stabiliser et se simplifier.</li>
<li><a rel="noopener" target="_blank" href="https://blog.octo.com/the-twelve-factors-kubernetes/">The Twelve-Factors Kubernetes</a> : Revue de la terminilogie et des concepts de Kubernetes au travers de 12 points et énonciation de quelques bonnes pratiques générales associées.</li>
<li><a rel="noopener" target="_blank" href="https://blog.containo.us/traefik-1-5-cancoillotte-is-here-7bd6713ae135">Traefik 1.5 - Cancoilote Is Here</a> : cette version corrige notamment le problème de méthode de génération de certificat de Let's Encrypt (voir plus bas). En plus de celà, cette version apporte notamment une gestion dynamique des certificats par frontend/backend et de la qualité de service avec la possibilité de définir des limites de consommation de ressources.</li>
<li><a rel="noopener" target="_blank" href="https://opensource.googleblog.com/2018/01/container-structure-tests-unit-tests.html">Container Structure Tests: Unit Tests for Docker Images</a> : Google vient de sortir son <a rel="noopener" target="_blank" href="https://github.com/GoogleCloudPlatform/container-structure-test">framework de tests unitaires pour les containers Docker</a>. A creuser pour voir s'il n'est possible de faire que de tests de "surface" ou bien si on peut aller plus en profondeur (mais est-ce souhaitable ?)</li>
<li><a rel="noopener" target="_blank" href="https://coreos.com/blog/coreos-agrees-to-join-red-hat/">CoreOS to join Red Hat to deliver automated operations to all</a> : CoreOS rejoint la galaxie RedHat qui fait son retour dans le monde des conteneurs... après Openshift (qui s'appuie sur Docker + Kubernetes), voilà qu'ils mettent la main sur CoreOS + Tectonic (la version de Kubernetes packagée par CoreOS), ainsi que les autres projets CoreOS (etcd, etc). Ils vont pouvoir proposer un sacré vertical et revenir dans la cour des acteurs majeurs du conteneur ; sans parler du fait qu'ils ont aussi Ansible pour la partie automatisation...</li>
</ul>
<h3 id="infrastructure">Infrastructure</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://blog.octo.com/le-bastion-ssh/">Le Bastion SSH</a> : Petite revue théorique et pratique d'un bastion SSH, la passerelle SSH qui vous permet d'accéder depuis un réseau X à des machines d'un réseau Y en SSH dans exposer tout le réseau Y en libre accès ou parce que le réseau Y n'a pas d'IP publique ou ... Si vous prévoyer de déployer un bastion, prévoyez d'en avoir deux pour éviter le SPOF (ou qu'il soit redéployable très rapidement).</li>
<li><a rel="noopener" target="_blank" href="https://jolicode.com/blog/php-et-les-resolveurs-dns">PHP et les résolveurs DNS</a> : à l'heure des micro-services et des API, une mauvaise couche réseau et votre application peut très mal se comporter. L'article porte ici sur la résolution DNS et les solutions de cache possible pour que votre application soit plus résiliente.</li>
</ul>
<h3 id="no-sql">(No)SQL</h3>
<ul>
<li><a rel="noopener" target="_blank" href="https://mariadb.com/kb/en/library/moving-from-mysql-to-mariadb-in-debian-9/#secure-passwordless-root-accounts-only-on-new-installs">Moving from MySQL to MariaDB in Debian 9</a> : je me demandais pourquoi je perdais mon accès au compte root d'une instance MariaDB suite à un <code>mysql_secure_installation</code>, voici enfin la réponse. Sur les nouvelles installations, l'accès au compte root de mariadb est protégé. Il faut passer par <code>sudo mysql -u root -p ...</code> par ex pour pouvoir se connecter en root.</li>
<li><a rel="noopener" target="_blank" href="https://www.itzgeek.com/how-tos/linux/debian/how-to-install-mariadb-on-debian-9.html">How to Install MariaDB on Debian 9 Stretch</a> : l'article qui m'a mis sur la piste et qui donne éventuellement une solution de contournement pour reproduire l'ancien mécanisme (à vos risques et périls).</li>
<li><a rel="noopener" target="_blank" href="http://antirez.com/news/116">An update on Redis Streams development</a> : les <a rel="noopener" target="_blank" href="http://antirez.com/news/114">Streams</a> dans Redis, ce sera pour la version 5.0 prévue pour dans 2 mois. Pour rappel, les Streams, ce sont des listes Redis + PubSub + historique. C'est une réponse de Redis sur la partie Topic/Message de Kafka.</li>
</ul>
<h3 id="certificats">Certificats</h3>
<ul>
<li>Let's Encrypt a annoncé le 10 janvier avoir identifié une <a rel="noopener" target="_blank" href="https://community.letsencrypt.org/t/2018-01-09-issue-with-tls-sni-01-and-shared-hosting-infrastructure/49996">"faille" lors de la génération du certificat</a> lié à l'utilisation de Let's Encrypt dans un environnement mutualisé via la méthode <code>TLS-SNI</code>. Avec le partage d'une même IP, il serait possible pour une personne malveillante de récupérer un certificat pour votre domaine à votre insu. <a rel="noopener" target="_blank" href="https://community.letsencrypt.org/t/important-what-you-need-to-know-about-tls-sni-validation-issues/50811">Let's Encrypt a finalement décidé</a> de désactiver complètement les méthodes <code>TLS-SNI-001</code> et <code>TLS-SNI-002</code> et de travailler sur une nouvelle méthode <code>TLS-SNI-003</code> qui corrigerait ce problème. En attendant, il faut utiliser les méthodes <code>HTTP-01</code> ou <code>DNS-01</code>.</li>
</ul>
<h3 id="astuce-s-du-mois">Astuce(s) du mois</h3>
<p>La commande <code>docker history</code> (ou <code>docker image history</code>) permet de voir le nombre de layers d'une image, la taille de ces layers et leur âge. Exemple avec l'image <code>nginx:stable</code> :</p>
<pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>docker image history nginx:stable
</span><span>IMAGE CREATED CREATED BY SIZE COMMENT
</span><span>dfe062ee1dc8 6 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
</span><span><missing> 6 weeks ago /bin/sh -c #(nop) STOPSIGNAL [SIGTERM] 0B
</span><span><missing> 6 weeks ago /bin/sh -c #(nop) EXPOSE 80/tcp 0B
</span><span><missing> 6 weeks ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx… 22B
</span><span><missing> 6 weeks ago /bin/sh -c set -x && apt-get update && apt… 53.1MB
</span><span><missing> 6 weeks ago /bin/sh -c #(nop) ENV NJS_VERSION=1.12.2.0.… 0B
</span><span><missing> 6 weeks ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.12.2-… 0B
</span><span><missing> 6 weeks ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B
</span><span><missing> 6 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B
</span><span><missing> 6 weeks ago /bin/sh -c #(nop) ADD file:f30a8b5b7cdc9ba33… 55.3MB
</span></code></pre>
<p>Pour avoir l'intégralité du contenu de la ligne "CREATED BY", il suffit de rajouter un <code>--no-trunc</code>.</p>
<p>Source : <a rel="noopener" target="_blank" href="https://docs.docker.com/engine/reference/commandline/history/">Docker - history</a></p>
<p>C'est assez pratique lorsque l'on cherche notamment à comprendre et optimiser la taille de ses images Docker.</p>