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.
Les tests d'architecture sont essentiels pour maintenir la cohérence et la maintenabilité d'un projet sur le long terme. Ils permettent de vérifier que le code respecte les règles architecturales définies, assurant ainsi une structure correcte et empêchant les dérives lors de l'ajout de nouvelles fonctionnalités ou de l'intégration de nouveaux développeurs. Ces tests servent également de documentation explicite des règles, facilitant l'intégration des nouveaux membres de l'équipe. Plusieurs outils, comme Deptrac, PHPArkitect, PHPat, et Pest, peuvent être utilisés pour mettre en place ces tests dans l'écosystème PHP, chacun ayant ses propres méthodes de configuration et d'utilisation.
L'auteur a nommé son article en référence à l'excuse improbable du "chien qui a mangé mon travail" :) L'architecture en micro-services n'est pas responsable de problèmes, mais les mauvaises décisions si ! L'auteur donne quelques pistes pour repérer les problèmes, et surtout comment s'en prémunir.
L'article explique ce qu'est un monolithe modulaire et quand il doit être préféré à une architecture de microservices.
L'article met en lumière les erreurs fréquentes commises lors de la création de diagrammes d'architecture technique. Parmi celles-ci, on trouve la réalisation de diagrammes théoriques plutôt que concrets, le mélange de niveaux d'abstraction, la surcharge d'informations, l'utilisation de flèches non étiquetées, des compositions trompeuses, l'absence de contexte, et le manque de texte explicatif accompagnant les diagrammes. Pour éviter ces écueils, il est recommandé de se concentrer sur des représentations spécifiques et claires, de séparer les niveaux d'abstraction, de réduire le nombre de préoccupations simultanées, d'étiqueter les relations, de fournir un contexte adéquat, et d'accompagner les diagrammes de descriptions détaillées.
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
Une proposition d'architecture intéressante
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Une excellente présentation / comparaison de 3 styles architecturaux : architecture hexagonale, clean architecture, et onion architecture.
Tout est dans le titre
Tout est dans le titre
Les résumés des conférences auxquelles a assisté l'auteur :
- Le cache HTTP (Hubert SABLONNIÈRE)
- De chroot à Docker, Podman, et maintenant les modules Wasm, 40 ans d’évolution de la containeurisation (Thomas SCHWENDER)
- Gestion de la dette d’architecture dans un contexte d’hypercroissance (Cyril BESLAY)
- Démystifions les composants internes de Kubernetes (Zwindler ^^)
- Dockerfile vs Jib vs Pack vs image native : quelle est la meilleure méthode de création d’image de conteneur (Christian NADER)
- Infra : Donnez de l’autonomie à vos développeurs avec OctoDNS (Julien BRIAULT)
Les notes d'une conférence sur la conception d'une architecture : le choix entre différents styles, les contraintes, etc.