Un site très complet pour apprendre à mieux utiliser sa DB et comprendre les problèmes de performances pour les régler.
Retour d'expérience sur ce qui doit être le plus gros cluster Serverless du monde, celui de Meta (plus de 1 millions de d'exécutions/seconde en pic).
Ils ont développé une solution custom (XFaaS) et ils partagent les retours sur une utilisation massive du serverless.
La deuxième partie de l'article parle de la place de XFaaS dans l'architecture de Meta
Cloudflare déploie son nouveau produit anti bot qui annonce la fin tant attendue des CAPTCHA. (que les bots résolvaient déjà mieux que les humains)
Il se base sur de nombreux paramètres du browser pour déterminer si c'est un véritable navigateur.
Ce qui est innovant c'est l'utilisation d'une preuve de travail (calculer quelque chose) et d'une preuve d'espace (stocker quelque chose).
Les votes du dernier Eurovision ont été protégé par Turnstile et maintenant le produit est dispo pour tous.
Présentation de l'architecture Backend for Frontends telle qu'elle a été conceptualisé au départ chez Souncloud
Comparaison de la latence entre différents accès: CPU cache, RAM, SSD, Network
Un article très intéressant d'un big tech (Facebook) sur la manière dont ils ont scale leur cache basé sur Memcached à l'échelle de la planète.
Un outil open source avec tout ce qu'il faut pour analyse l'utilisation de son produit, l'améliorer et le déployer:
- analytics
- session replay
- feature flags
- A/B testing
Une alternative open source à Datadog et NewRelic pour l'observabilité et l'agrégation des logs.
Un article explicatif du besoin et du fonctionnement du load balancing.
Très bien expliqué et avec des schéma intéractifs!
Pour bien comprendre les besoins, il ne faut pas oublié que les requêtes ne sont pas égales, certaines sont plus longues ou plus consommatrices que d'autre à exécuter.
Au dela du "simple" round robin, d'autres stratégies existent:
- least connection: le load balancer envoie la requête au serveur en ayant le moins en cours
- peak exponentially weighted moving average: calcul de la latence moyenne des serveurs et tente d'utiliser uniquement les serveurs ayant la plus faible latence
Un style de licensing intéressant chez CockroachDB:
- licence Business Source License (type Server Side Public Licence) avec interdiction de faire un SaaS
- Apache 2 après 3 ans
Cela permet de rentabiliser leur business tout en offrant la totalité du produit en Apache 2 après une certaine période.
Un nouveau type de base de données qui émerge avec l'IA: la base de données vectorielle
En IA, on représente les données du monde réel sous la forme de vecteurs à N dimensions. Concrètement ce sont des tableaux de nombres à virgules.
Ce genre de base de donnée permet ensuite de rechercher plus efficacement des vecteurs qui sont proches par exemple.
Un exemple de recherche de contexte similaire lors d'une question posée à GPT3 https://docs.pinecone.io/docs/gen-qa-openai
Il est possible d'ajouter un logo officiel dans sa zone DNS pour que les fournisseurs d'emails puissent l'afficher.
Cela s'appelle BIMI (Brand Indicators for Message Identification) et c'est une spécification poussée par les plus gros fournisseurs d'emails de la planête (Google, Yahoo, Sendgrid, Mailchimp, etc)
Chez Malt ça a permi d'améliorer le taux d'ouverture en passant de 40% à 60% !
Une histoire d'optimisation d'un cluster Elasticsearch.
Le problème chez Netflix venait d'une mauvaise allocation des shards des indices, tous les indices avaient le même nombre de shards et donc certains noeuds se retrouvent à héberger des shards contenant des millions de documents.
Leur stratégie a été de distribuer les documents non pas par type mais par date de création (time buckets) en utilisant des index template pour la création automatique et des alias pour la recherche (comme pour l'ingestion des logs donc).
Un retour d'expérience sur l'utilisation de Cassandra à un très haut niveau chez Discord.
Des problèmes de maintenance majoritairement liés à la manière dont ils utilisaient Cassandra car des ralentissements en lecture sur un noeud impactaient tout le cluster car la lecture/écriture se fait en quorum.
La "compaction" (réindexation) des tables par Cassandra et le GC de la JVM causaient aussi des problèmes de latence.
Ils ont décidé de migrer toutes leurs DB vers ScyllaDB qui est compatible Cassandra mais en C++ donc plus rapide et pas de GC!
Il n'ont pas réglé leur problème qu'avec une nouvelle base de données mais aussi avec des middleware de cache écrit en Rust pour la performance C++ et la sureté mémoire.
La migration fut aussi très compliqué et les premières prévisions étaient extrèmement longues (3 mois) mais la encore un rewrite du connecteur en Rust sauve la mise (9 jours!)
Conclusions:
- plus de stabilité
- 177 noeuds Cassandra à 72 ScyllaDB
- latence p99 40-125ms avec Cassandra et 15ms avec ScyllaDB
Un retour d'expérience sur un passage au JT de TF1 et les préparations de scaling associées.
Ce qu'ils ont fait:
- landing page dédiée, complètement statique pour la conversion vers installation de l'application
- scaling vertical des DB (plus simple je suppose)
- scaling horizontal applicatif 7
- préparation d'une page d'erreur avec Google Form au cas ou
Leur infra a fait x10 lors de la diffusion du reportage avec 250K requêtes /minutes!
Un autre article clean-archi / archi hexagonale.
Celui la met l'accent sur les problèmes des architectures classiques ou le métier est "mélangé" avec les couches d'API et de persistence et sur la solution de cloisonnement qu'apporte l'architecture hexagonale.*
Les principes les plus importants:
- le domaine ne dépend que de lui même
- pas de framework dans le domaine
- inversion de contrôle via notamment l'injection de dépendances
- commencer par le domaine (et les tests associés!)
Un article intéressant d'un ingénieur de chez Google Big Query sur la hype autour du Big Data qui a tendance à s'essoufler un peu.
Sans surprise, la majorité des entreprises ne font pas de "big data" et n'en ont pas besoin.
Une explication de l'architecture hexagonale avec un exemple simple de catalogue de produit en Typescript.
Scaleway lance son service cloud de Message Queue!
C'est basé sur NATS.io qui est un message broker moderne et cloud native.
Des présentation sur des concepts avancés de Postgres:
- Performance Tuning
- Explaining the Query Optimizer
- Joins and Indexes
- Database hardware
- Scaling opportunities
- Future of Sharding
(Merci Ocav pour le partage)