Accueil
Le blog tech de Nicolas Steinmetz (Time Series, IoT, Web, Ops, Data)
Après presque 2 ans de silence et le remplacement de Hugo et Bootstrap par Zola et Tailwind/daisyUI l'été dernier pour générer le site, je vous souhaite une bonne année à tous et la résolution de publier plus régulièrement mes trouvailles...
TL;DR: DuckDB can attach MySQL, Postgres, and SQLite databases in addition to databases stored in its own format. This allows data to be read into DuckDB and moved between these systems in a convenient manner.
J'avoue que la concision de Caddy vs Traefik et le provider file
est bien appréciable:
# Caddyfile
xxx.cerenit.fr {
reverse_proxy 127.0.0.1:3000
}
# Traefik
http:
middlewares:
redirectToHttps:
redirectScheme:
permanent: true
scheme: https
routers:
grafana:
entryPoints:
- websecure
- web
middlewares:
- redirectToHttps
rule: Host(`xxx.cerenit.fr`)
service: grafana@file
tls:
certResolver: le
services:
grafana:
loadBalancer:
servers:
- url: http://127.0.0.1:3000/
Pour un serveur, la migration de Traefik vers Caddy fait passer le fichier de configuration de 172 lignes à 27 - soit presque 6 fois moins ! 😏
Exemple:
services:
whoami:
image: traefik/whoami
networks:
- caddy
labels:
caddy: whoami.example.com
caddy.reverse_proxy: "{{upstreams 80}}"
networks:
caddy:
external: true
Ce soir, il y a la 8ème édition du Paris Time Series Meetup sur AWS TimeStream.
scp file destination:/path/to/file
? La commande scp est victime de nombreuses failles. Du coup, elle va être dépréciée. Néanmoins une initiative vise à maintenir uen commande scp
mais se fondant sur sftp
et son modèle de sécurité.Pour ceux sous Fedora et utilisant podman en alternative au binaire docker, pour se connecter à la registry google (via):
gcloud auth print-access-token | podman login -u oauth2accesstoken --password-stdin gcr.io
Le mois prochain, dans le cadre d'InfluxDays London, j'aurai le plaisir de présenter un talk sur le passage d'un monitoring Bare Metal vers un monitoring dans un monde Kubernetes avec Telegraf et InfluxDB.
depends_on
, count
et for_each
. Cela devrait éviter des dépendances parfois cryptiques.Faîtes-vous plaisir et écouter le podcast Artisan Développeur - dans des formats de 10mn environ, un sujet autour de l'agilité, des tests, du TDD, de la responsabilité des développeurs, de SaFE, et de tout ce qui fait partie de notre quotidien de développeurs sont abordés. Depuis quelques épisodes, cela se fait en duo avec d'autres personnes (comme JP Lambert) ce qui rend les échanges encore plus intéressants. Vous retrouvez le podcast sur Soundcloud, Pocketcasts, etc.
runc
à terme, kaniko pourrait replacer docker build
. La registry docker étant aussi en passe de standardisation, on peut s'attendre à voir un nouveau produit arriver. Si Kubernetes (+ Google + CNCF + ...) ont encore besoin de la liaison avec Docker d'un point de vue marketing, on a l'impression que cela cherche à s'éloigner des outils Docker Inc et dans une moindre mesure du projet Moby (qui lui même semble aussi avoir quelques distances avec Docker Inc). Certes, le docker engine de Docker Inc est basé sur containerd et donc Docker ne disparait pas de la plateforme mais ça semble bien en prendre le chemin.mysql_secure_installation
, voici enfin la réponse. Sur les nouvelles installations, l'accès au compte root de mariadb est protégé. Il faut passer par sudo mysql -u root -p ...
par ex pour pouvoir se connecter en root.TLS-SNI
. 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. Let's Encrypt a finalement décidé de désactiver complètement les méthodes TLS-SNI-001
et TLS-SNI-002
et de travailler sur une nouvelle méthode TLS-SNI-003
qui corrigerait ce problème. En attendant, il faut utiliser les méthodes HTTP-01
ou DNS-01
.La commande docker history
(ou docker image history
) permet de voir le nombre de layers d'une image, la taille de ces layers et leur âge. Exemple avec l'image nginx:stable
:
docker image history nginx:stable
IMAGE CREATED CREATED BY SIZE COMMENT
dfe062ee1dc8 6 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
<missing> 6 weeks ago /bin/sh -c #(nop) STOPSIGNAL [SIGTERM] 0B
<missing> 6 weeks ago /bin/sh -c #(nop) EXPOSE 80/tcp 0B
<missing> 6 weeks ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx… 22B
<missing> 6 weeks ago /bin/sh -c set -x && apt-get update && apt… 53.1MB
<missing> 6 weeks ago /bin/sh -c #(nop) ENV NJS_VERSION=1.12.2.0.… 0B
<missing> 6 weeks ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.12.2-… 0B
<missing> 6 weeks ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B
<missing> 6 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 6 weeks ago /bin/sh -c #(nop) ADD file:f30a8b5b7cdc9ba33… 55.3MB
Pour avoir l'intégralité du contenu de la ligne "CREATED BY", il suffit de rajouter un --no-trunc
.
Source : Docker - history
C'est assez pratique lorsque l'on cherche notamment à comprendre et optimiser la taille de ses images Docker.
.bashrc
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 ;-)Dockerfile
que l'on soit sur un serveur 64 bits ou un raspberry, cela va faciliter les chaines de développement et déploiement.immutable
pour l'entête Cache-Control
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.