GitHub-backup est un outils développé en Haskell qui permet de sauvegarder les metadata d'un repos GitHub (issues, comments, watchers, ...)
Une applis pour consulter Wikipédia en offline, mais aussi les ressources de TED, StackOverflow out du projet Gutenberg par exemple.
L'application vest disponible sous Linux, Windows, MacOS, IOS & Android.
L'intégration avec un Raspberry Pi permet également de fournir toutes ses ressources offline dans une salle de classe ou dans les pays ne disposant pas d'accès internet fiable par exemple.
Comment utiliser AWS KMS pour chiffrer des données de plus de 4Ko avec la technique de l'envelope encryption
Quelques conseils pour écrire la documentation minimale d'un projet git (README, CHANGELOG, commentaires)
Graphviz permet de créer des graphes de dépendances avec du code versionnable. Il est possible de s'en servir pour de la gestion de projet en dessinant un graphe de dépendances des différentes tâches du projet. Le status des tâches peut également être indiqué par la couleur de la tâche sur le graphe.
EDIT: voire aussi Mermaid
Kubetail permet d'agréger et d'afficher en temps réel les logs d'un ou plusieurs pods
Kubediff compare l'état réel d'un cluster kubernetes avec son état attendu (configuration yaml files) et remonte une alerte en cas de divergences
Un outils de traduction en ligne de commande qui utilise Google Translate:
$ trans -brief 'Salut tout le monde!'
Hello everyone!
$ trans -brief :fr 'Hello everyone!'
Bonjour à tous!
Des scripts pour réaliser une sauvegarde consistente (FS + DB) de Nextcloud sur AWS S3 où Backblaze B2.
Pour récupérer des .torrents, voire également:
Script JS pour afficher la taille des collections d'une base MongoDB:
function getReadableFileSizeString(fileSizeInBytes) {
var i = -1;
var byteUnits = [' kB', ' MB', ' GB', ' TB', 'PB', 'EB', 'ZB', 'YB'];
do {
fileSizeInBytes = fileSizeInBytes / 1024;
i++;
} while (fileSizeInBytes > 1024);
return Math.max(fileSizeInBytes, 0.1).toFixed(1) + byteUnits[i];
};
var collectionNames = db.getCollectionNames(), stats = [];
collectionNames.forEach(function (n) { stats.push(db.getCollection(n).stats()); });
stats = stats.sort(function(a, b) { return b['size'] - a['size']; });
for (var c in stats) { print(stats[c]['ns'] + ": " + getReadableFileSizeString(stats[c]['size']) + " (" + getReadableFileSizeString(stats[c]['storageSize']) + ")"); }
Une console de management de clusters Kafka développée par Yahoo
Utilisation de Kafka comme buffer pour envoyer des logs dans ElasticSearch avec le connecteur Kafka Connect ElasticSearch. Il est alors possible de remplacer Logstash dans la stack ELK par Filebeat et Kafka et de profiter de la nature distribuée de Kafka pour l'ingestion de logs dans ES.
Méthode de monitoring particulièrement adaptée pour les architectures cloud qui définit 3 métriques clés à superviser pour chaque microservice:
- (Request) Rate - the number of requests, per second, you services are serving.
- (Request) Errors - the number of failed requests per second.
- (Request) Duration - distributions of the amount of time each request takes.
EDIT: voir aussi A Practical Guide: From Instrumenting Code to Specifying Alerts with the RED Method en complément
Une bonne introduction au concept d'Observability qui englobe Logging, Monitoring, Tracing et Visualization.
terraform-docs génère une doc au format markdown ou json à partir des templates terraform
Le New York Times utilise Kafka comme pièce central de leur architecture avec le concept de "monolog". La source de vérité n'est plus dans les différentes bases de données mais dans le log Kafka qui persiste et centralise tout les évènements depuis la création du journal de façon ordonnée dans un unique topic Kafka (100Go de volumétrie). De cette façon les différentes bases de données peuvent être considérés comme immutables et être recréé from scratch en rejouant tout les évènements du log Kafka depuis l'origine (par exemple les migrations de schémas de bases de données sont faites en recréant de nouvelles databases from scratch à partir du log Kafka plutôt que de migrer les bases existantes).
Synthèse des nouveaux services EKS et Fargate annoncés aux AWS Re-Invent Summit cette année.
EKS (AWS Kubernetes managed solution) permet de déployer un cluster Kubernetes sur AWS en ne gérant que les workers nodes (masters nodes managés par AWS).
Fargate va plus loin en fournissant une solution 100% managée (workers nodes managés) pour ECS dans un premier temps puis EKS en 2018. Cette solution permet de déployer des containers sans ce soucier des instances EC2 sur lesquels ils tourneront et de payer uniquement pour les containers déployés (facturation par container au lieu de la facturation par instances EC2 démarrées dans le cluster).
Pour extraire une valeur d'un XML avec grep
:
grep -oPm1 "(?<=<title>)[^<]+"
Example:
$ echo "$data"
<item>
<title>15:54:57 - George:</title>
<description>Diane DeConn? You saw Diane DeConn!</description>
</item>
<item>
<title>15:55:17 - Jerry:</title>
<description>Something huh?</description>
$ title=$(grep -oPm1 "(?<=<title>)[^<]+" <<< "$data")
$ echo "$title"
15:54:57 - George:
Amazon GuardDuty analyse plusieurs sources de données AWS (Logs Cloudtrail, VPC Flow & DNS) et détecte les comportements suspects (instances EC2 se connectant à un domaine lié aux bitcoins ou prenant part à une attaque brute force par ex...).