photo de Dominic

Dominic Burkart est ingénieur logiciel chez Datadog. Centres d'intérêt : backend, full-stack, ingénierie des données.

Projets

Turbolift 🚡

(code source)



Turbolift est un package qui gère la distribution des programmes Rust. Il fournit une macro qui est capable de transformer une fonction normale en microservice, sans verbosité. Ces microservices sont distribués et gerés par Turbolift, ouvrant une nouvelle façon de distribuer des programmes en Rust.


Turbolift est conçu pour minimiser le travail nécessaire pour faire les premiers pas de distribution d'un programme Rust. À la place d'obliger un·e développeu·r·se à réorganiser son code en plusieurs petits projets, Turbolift est capable d'extraire le code essentiel pour chaque microservice qu'il génère pendant la compilation et de lier chaque microservice à l'application pendant l'exécution. Cette méthode minimise le travail architectural et la charge cognitive associée au développement et à l'orchestration des microservices, au prix d'une augmentation de temps nécessaire pour compiler l'application.


Actuellement, Turbolift fonctionne que sur Kubernetes. Mais, il était conçu de s'appliquer aux plateformes variées sans changements importants de l'API : Swarm, AWS Lambda, et SLURM sont tous cibles viables pour l'évolution de Turbolift. Lire plus (en anglais).


Keywords: Rust, Async Rust, Métaprogrammation, Orchestration, Informatique Distribuée, API Design, DevOps, Infrastructure comme Code, Kubernetes, K8s, Docker, Open Source, Abus Flagrant des Macros.

Wikipedia Revisions Server 🗃

(code source)



Télécharger, stocker concisement, et servir vite toutes les modifications de Wikipédia. Avec la compression Brotli et des méthodes de stockage manuel, ce projet réduit le stockage nécessaire de ~60 TB avec une base des données postgres à moins que 6 TB.

Les révisions pourraient être commandées par périodes de temps, ou par identifiant. Avec Actix, un serveur performant écrit en Rust, l'application peut produire plusieurs flux des données compressés à la fois.

Si l'application est lancée avec Docker, elle accepte des locations différentes pour stocker des petits fichiers, qui doivent être vite accessibles et les grands, qui nécessitent moins la vitesse, pour une meilleure utilisation de matériel.

L'amoindrissement des besoins matériels est important : le serveur peut tourner sur un raspberry pi 4 avec 4 GB RAM et un disque externe.


Keywords: Pipeline des Données, Ingénierie des Données, Docker, Rust, Actix, Python, PyPy, Wikipédia, Données Ouvertes, Open Source, Optimisation, Hymne au Système de Fichiers.

Birdie 🐦



Le conseil de New York City gère le budget de la ville ($77 milliard en 2017). Responsables de la ville la plus peuplée des États-Unis, les 51 Membres du Conseil de New York ont un pouvoir législatif important.

Birdie est un outil de ligne de commande qui génère des rapports en page web statique, en utilisant les archives ouvertes de la ville pour trouver des propositions analogues. Par cette méthode, Birde donne des partisans un point de départ pour trouver facilement des membres et organisations sympathiques, des anciennes stratégies efficaces, et des échecs passés.

Birdie essaie aussi d'estimer la probabilité qu'un projet de loi va réussir. Il utilise plusieurs algorithmes prévisionnels pour prédire quels membres le soutiendront. Ces prédictions, même imparfaits, sont utiles pour fixer des objectifs et des attentes des organismes, et appliquent des analyses de validation croisée pour aider des partisans de comprendre la fiabilité de chaque prédiction, vu les données accessibles.

Keywords: Pipeline des Données, Ingénierie des Données, Apprentissage Machine, Modélisation de Contagion, Prédiction des Sequences, CLI, Interface de Ligne de Commande, Docker, Python, Données Ouvertes, Civique.

english version