L'article détaille la stack technique de Shopify, révélant comment la plateforme gère une échelle massive avec une architecture qui semble simple en surface, mais qui est en réalité le résultat de décisions architecturales astucieuses et de nombreuses années de refactoring. Shopify utilise principalement Ruby on Rails pour son backend, avec des investissements significatifs dans des outils comme YJIT et Sorbet pour améliorer les performances et la sécurité du typage. Le frontend est principalement construit avec React et TypeScript, tandis que React Native est utilisé pour le développement mobile. Shopify s'appuie sur MySQL pour sa base de données principale, avec des stratégies de sharding et de pods pour assurer l'isolation et la scalabilité. Kafka est utilisé pour la messagerie et la distribution d'événements, tandis que des outils comme Memcached et Redis sont utilisés pour le caching et la gestion des files d'attente. L'infrastructure ML de Shopify utilise des embeddings pour la recherche en temps réel et des pipelines de données basés sur Apache Beam. La plateforme est déployée sur Kubernetes, avec des processus CI/CD robustes et des outils d'observabilité pour assurer la fiabilité et la sécurité. Shopify traite des milliards de requêtes par jour, démontrant l'efficacité de sa pile technologique à grande échelle.
Discord a partagé les détails de l'évolution de son infrastructure de recherche, lui permettant d'indexer des trillions de messages et d'introduire des fonctionnalités comme la recherche multi-serveurs. Initialement, l'architecture reposait sur Elasticsearch avec une indexation paresseuse utilisant Redis, mais la croissance rapide a révélé des limites, notamment des pertes de messages et des surcharges des nœuds. Pour y remédier, Discord a migré vers Google Cloud PubSub pour une livraison garantie des messages et a optimisé l'indexation en masse avec un routeur intelligent. Ils ont également introduit des cellules Elasticsearch pour mieux répartir la charge et isoler les grands serveurs, tout en adoptant Kubernetes pour une orchestration plus efficace. Ces améliorations ont permis une indexation fiable, une meilleure gestion des grands serveurs, une scalabilité accrue et de nouvelles fonctionnalités comme la recherche multi-serveurs, améliorant ainsi l'expérience utilisateur.
En 2024, Redis a changé de licence, incitant l'auteur à explorer PostgreSQL comme alternative pour gérer des données volatiles, offrant une meilleure organisation des données et simplifiant la stack technique. PostgreSQL permet de structurer les données de manière plus élégante grâce à l'héritage de tables et gère l'expiration des données via des requêtes planifiées, bien que cela nécessite une gestion manuelle. Bien que Redis soit plus performant, PostgreSQL, avec des tables UNLOGGED, offre des performances suffisantes pour la plupart des applications, tout en simplifiant l'infrastructure et en évitant les problèmes de licence.
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Framaspace est un nextcloud adapté par Framasoft... Pour le reste tout est dans le titre
Tout est dans le titre
L'auteur montre comment se créer son petit système d'intégration continue, à partir d'une machine compatible unix. L'idée est d'héberger des dépôts git "bare" et d'utiliser des hooks "post-receive" (après exécution d'un git push) pour lancer des tâches. Ces hooks passent en paramètre les "git ref" nécessaires pour connaître le contexte d'exécution (branche pushée) L'auteur propose d'utiliser redis pour stocker les messages (statut, ref, etc.)
L'auteur utilise Redis et la création d'un attribut PHP (décorateur) pour marquer certains points d'entrée comme "lockables" pendant un certain temps (sémaphore).
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre... sauf qu'il s'agit d'une application Symfony
Tout est dans le titre