2024 - BUT2 APP - "Etsy"

Présentation de la boutique en ligne d'Etsy et de son architecture logicielle

Slides & Videos

Members

NameContribution
LAHMAR-CHERIF Yassine- Préparation des slides
- Recherches sur les inconvénients et les avantages de l'architecture monolithique
- Recherches sur l'état de l'art
- Recherches sur la globalité d'Etsy
CHAOUCH Zakaria- Rédaction du rapport
- Recherches sur les inconvénients et les avantages de l'architecture de micro services
- Recherche sur l'état de l'art
- Recherche sur la migration d'Etsy

State of the Art

Business Aspect
Technical Aspect

Project Description

Problem Definition
Challenges & Motivation
Real and Complete Usecases

Introduction

Etsy est une place de marché en ligne mondialement reconnue, spécialisée dans les produits faits main, vintage, et les fournitures créatives. Fondée en 2005 par Rob Kalin, Chris Maguire et Haim Schoppik, Etsy a transformé la façon dont les artisans et les créateurs indépendants vendent leurs produits en ligne.

La mission de Etsy est de « Garder le commerce humain ». La plateforme met en relation des millions de créateurs et d’acheteurs dans le monde entier, favorisant une économie où les petites entreprises prospèrent. Etsy se distingue par son accent sur l’authenticité et la créativité.

Chaque article sur Etsy est répertorié et vendu par un vendeur qui crée des articles faits à la main ou organise des achats de fournitures vintage ou artisanales. Il n’y a pas d’entrepôt Etsy. Lorsque vous réalisez des achats sur Etsy, vous soutenez directement des vendeurs indépendants qui gèrent leurs propres commandes et stocks.

La procédure d’achats sur Etsy fonctionne de la même manière que sur n’importe quel site sur Internet. Cependant, vous n’achetez pas vos articles auprès d’Etsy, la société. Au lieu de cela, vous achetez directement auprès de vendeurs indépendants.

Etat de l’art

1. L’état de l’art des boutiques en ligne

  • Boutiques en ligne spécialisées : Les plateformes comme Etsy doivent non seulement gérer un grand volume de transactions, mais aussi offrir une expérience utilisateur personnalisée, tout en assurant une haute disponibilité.
  • Importance de l’architecture logicielle : L’accent est mis sur la nécessité d’une architecture robuste pour soutenir ces exigences.

2. Architecture Monolithique : La Fondation Historique

  • Caractéristiques : Les premières plateformes de e-commerce utilisaient des architectures monolithiques où tous les composants (interface utilisateur, logique métier, gestion des données) étaient regroupés en une seule application.

  • Exemples : eBay et les premières versions de Magento.

  • Avantages et limitations : Simplicité de développement et déploiement, mais avec des limitations en termes de scalabilité et de résilience.

3. Transition vers les Microservices

  • Évolution nécessaire : Avec la croissance des utilisateurs, les microservices ont été adoptés pour permettre une meilleure scalabilité et flexibilité.
  • Cas d’utilisation : Etsy, Amazon, Zalando utilisent cette architecture pour gérer leurs services de manière autonome.
  • Avantages spécifiques : Optimisation des performances, meilleure résilience, facilité d’intégration de l’apprentissage automatique pour la personnalisation.

4. Défis des Microservices dans les Boutiques en Ligne

  • Complexité de gestion : Les microservices introduisent des défis en matière de gestion, surveillance et communication entre services, ce qui peut être compliqué pour les petites boutiques.
  • Coûts et infrastructure : Les microservices nécessitent une infrastructure sophistiquée (comme Docker et Kubernetes), ce qui peut être coûteux.

5. Architectures Hybrides et Nouvelles Tendances

  • Architectures hybrides : Pour combiner les avantages des monolithes et des microservices, certaines plateformes, comme Shopify, adoptent des architectures hybrides.
  • Innovations : Les architectures serverless deviennent populaires, permettant de se concentrer sur le développement sans se soucier de la gestion des serveurs.

6. Comparaison avec d’Autres Solutions

  • Plateformes SaaS : Les solutions SaaS, comme Shopify ou WooCommerce, sont des alternatives qui offrent des architectures prêtes à l’emploi, souvent monolithiques mais modulaires.

7. Conclusion

  • Évolution des architectures : Les architectures monolithiques ont été essentielles au début, mais les microservices sont devenus la norme pour les grandes plateformes, malgré leur complexité.
  • Solutions hybrides et innovations : Elles offrent des perspectives pour équilibrer flexibilité et simplicité, surtout pour des plateformes de niche comme Etsy.

Architecture logiciel d’Etsy :

Avant la migration, Etsy fonctionnait principalement sur une architecture monolithique. Dans ce modèle, l’application était construite comme un seul bloc (ou monolithe), où tous les composants de la plateforme (interface utilisateur, traitement des paiements, gestion des inventaires, etc.) étaient étroitement liés et déployés ensemble.

Avantages de l’architecture monolithique :

  • Simplicité de développement : Les développeurs peuvent facilement comprendre le flux de l’application et la logique métier, puisque tout était dans une base de code unique.
  • Déploiement simplifié : Le déploiement de l’application était relativement simple, car il s’agissait de déployer un seul paquet ou fichier exécutable.
  • Facilité de gestion : La gestion des dépendances, le suivi des versions, et le monitoring étaient plus simples avec un seul monolithe à surveiller.

Inconvénients de l’architecture monolithique :

  • Scalabilité limitée : La scalabilité de l’application était limitée (la faculté d’un produit, d’un logiciel ou d’une application à s’adapter aux fluctuations de la demande et du marché, tout en conservant ses fonctionnalités de base), car la mise à l’échelle nécessitait de dupliquer le monolithe entier, ce qui n’était ni efficace ni économique.
  • Développement et déploiement lent : À mesure que le code de base grandissait, il devenait de plus en plus difficile de gérer les nouvelles fonctionnalités et les corrections de bugs. Le cycle de déploiement devenait plus long, ralentissant l’innovation.
  • Résilience réduite : Une défaillance dans une partie du monolithe pouvait affecter l’ensemble du système, posant des risques de stabilité et de disponibilité.

Migration vers une architecture de microservices

Pourquoi Etsy a migré :

  • Face aux défis posés par son architecture monolithique, notamment la difficulté à innover rapidement et à gérer efficacement la scalabilité, Etsy a décidé de migrer vers une architecture de microservices.

La migration d’Etsy vers une architecture de microservices représente une tendance parmi de nombreuses entreprises du secteur du commerce électronique, mais chaque boutique en ligne a ses propres spécificités en termes d’architecture logicielle, en fonction de ses besoins, de son échelle et de sa stratégie de croissance. Voici quelques points clés qui peuvent distinguer l’architecture d’Etsy de celle d’autres boutiques en ligne :

Spécificité de l’approche de migration

Migration progressive : Etsy a entrepris une migration progressive vers les microservices, ce qui signifie que l’entreprise a déplacé fonctionnalité par fonctionnalité de son ancien monolithe vers de nouveaux microservices. Cette approche est contrastée avec une refonte totale, qui pourrait être adoptée par d’autres entreprises cherchant à moderniser leur infrastructure d’un seul coup.

Échelle et complexité

Échelle de l’opération : L’échelle à laquelle Etsy opère, avec des millions d’utilisateurs et de vendeurs actifs, nécessite une architecture qui peut gérer non seulement un grand volume de transactions, mais aussi une large gamme de produits et de services. D’autres boutiques en ligne, en particulier les petites et moyennes entreprises, pourraient ne pas avoir besoin d’une architecture aussi complexe et pourraient opter pour des solutions plus simples ou des plateformes e-commerce en tant que service (par exemple, Shopify ou WooCommerce).

Personnalisation et apprentissage automatique : Etsy utilise l’apprentissage automatique pour améliorer les recommandations de produits et l’expérience utilisateur. L’architecture de microservices facilite l’intégration de ces capacités avancées, car chaque service peut être mis à jour ou remplacé indépendamment sans perturber l’ensemble du système. D’autres plateformes pourraient ne pas mettre l’accent sur une telle personnalisation ou pourraient gérer ces fonctionnalités différemment.

Choix technologiques : L’architecture de microservices permet à Etsy de choisir les meilleures technologies pour chaque service spécifique, offrant une grande flexibilité. D’autres boutiques en ligne peuvent être contraintes par des choix technologiques plus uniformes à travers leur plateforme, en fonction de leur architecture initiale ou des limitations de leur plateforme e-commerce.

Complexité et coûts opérationnels : La gestion d’une architecture de microservices est intrinsèquement plus complexe et peut nécessiter des investissements significatifs en outils de surveillance, en dépannage, et en gestion de la performance. Pour certaines boutiques en ligne, surtout celles à un stade de croissance précoce ou de taille moyenne, les coûts et la complexité opérationnelle d’une telle architecture pourraient ne pas être justifiés.

En résumé, bien que l’architecture de microservices offre de nombreux avantages,que nous allons voir par la suite. Les décisions architecturales doivent être prises en tenant compte des besoins spécifiques de l’entreprise, de sa taille, de sa capacité à gérer la complexité opérationnelle et de sa stratégie à long terme. Etsy, avec son large éventail de produits uniques et sa grande base d’utilisateurs, a trouvé dans les microservices une solution répondant à ses besoins.

Avantages de l’architecture de microservices :

  • Scalabilité améliorée : Les microservices peuvent être mis à l’échelle indépendamment, permettant à Etsy de gérer plus efficacement les ressources selon les besoins de chaque service.
  • Déploiement rapide et innovation : La séparation en petits services permet des cycles de développement et de déploiement plus courts, accélérant le temps de mise sur le marché des nouvelles fonctionnalités.
  • Résilience accrue : Les défaillances sont isolées au sein de microservices spécifiques, réduisant l’impact sur l’ensemble du système et améliorant la disponibilité globale.
  • Flexibilité technologique : Les équipes peuvent choisir les technologies les mieux adaptées à leurs services spécifiques, favorisant l’innovation et l’efficacité.

Inconvénients de l’architecture de microservices :

  • Complexité accrue : La gestion de nombreux services interconnectés introduit une complexité opérationnelle, notamment en termes de surveillance, de communication entre services, et de gestion de la cohérence des données.
  • Coûts d’infrastructure : Chaque microservice peut nécessiter sa propre base de données et son environnement d’exécution, ce qui peut augmenter les coûts d’infrastructure.
  • Défis de déploiement : Bien que chaque micro service puisse être déployé indépendamment, orchestrer des déploiements cohérents à travers des services peut être complexe.

Conclusion : 

Bilan depuis la migration

La migration d’architecture d’Etsy a été un franc succès, l’entreprise a réussi à surmonter les enjeux auxquels elle faisait face, et a réussi à fructifier son commerce. Depuis sa migration, le site a explosé en popularité et a vu le trafic sur son site augmenté de 200%, ainsi que son chiffre d’affaires qui passe de 400 millions à 2 milliards de dollars. 

Le pari risqué de la migration a été fructueux car l’entreprise a réussi à scale très facilement à cette explosion des chiffres et n’a pas eu à revoir son architecture logiciel depuis.

Technical Description
  •  

Hardware

Materials
ImageNamePart NumberPriceCountLink
🛒
Schematic

Software

External Services