Développement de systèmes d'inventaire en temps réel pour le secteur du commerce

Cette solution fournit une analyse approfondie de l'architecture requise pour déployer une infrastructure d'inventaire en temps réel sur Google Cloud Platform. Les systèmes d'inventaire en temps réel sont conçus pour mettre à jour les systèmes de stockage de données dès qu'un changement se produit au niveau de l'inventaire. Par exemple, dans un magasin de détail, les données d'inventaire sont mises à jour automatiquement dès qu'un article est vendu ou même lorsque le stock est déplacé d'une partie du magasin à une autre.

Alors que les détaillants sont de plus en plus nombreux à adopter des stratégies diversifiées pour leurs ventes en ligne et en magasin, à l'instar des circuits de distribution multicanale, leurs besoins en solutions techniques capables de répondre aux exigences de ces mutations augmentent. La gestion des stocks en temps réel est à la croisée des améliorations apportées à l'expérience client, des gains d'efficacité opérationnelle et de la réduction des délais de commercialisation de solutions innovantes.

L'inventaire en temps réel offre aux commerçants les outils nécessaires pour améliorer l'expérience client : les vendeurs ont plus de temps à consacrer aux acheteurs et les clients trouvent plus rapidement les produits qu'ils recherchent. Par ailleurs, en connaissant à tout moment la situation exacte du produit dans l'inventaire et le stock disponible, les détaillants améliorent considérablement leur efficacité opérationnelle. Des insights exploitables en matière de visibilité et de variation des stocks leur fournissent également des informations essentielles pour optimiser leurs techniques de commercialisation et attirer les clients vers chaque canal de ventes.

Pour que l'inventaire puisse être véritablement géré en temps réel, une infrastructure adéquate doit être déployée sur le point de vente et disponible à tout moment. Une architecture cloud rassemblant une infrastructure informatique évolutive, des services logiciels gérés réduisant la complexité administrative, ainsi que des processus robustes de traitement et de stockage des données répond à ces problématiques.

Le diagramme suivant présente l'architecture d'un système d'inventaire en temps réel qui utilise Google Cloud Platform sur le backend. La suite de l'article décrit les composants et leurs interactions.

Le système d'inventaire en temps réel utilise plusieurs services de Google Cloud Platform.

Suivi de l'inventaire

Les systèmes de suivi d'inventaire des commerces utilisent généralement une combinaison de tags appliqués aux marchandises et aux lecteurs, ainsi qu'une passerelle chargée de transmettre les données d'inventaire. Ces systèmes emploient des étiquettes RFID pour leur légèreté et leur facilité d'attribution aux différents articles, de la même façon qu'une étiquette de prix. Dans le magasin, les lecteurs d'étiquettes RFID sont placés dans des endroits stratégiques afin de couvrir la totalité de l'espace de vente. Selon la taille et l'agencement du magasin, une ou plusieurs passerelles peuvent être déployées. Ces composants collectent les données d'analyse passive et active de chaque lecteur et les transmettent à une infrastructure centralisée.

En fonction des exigences techniques et commerciales, la collecte de données capture tous les événements ou les répartit par heure ou par métadonnées spécifiques. Par exemple, tous les événements d'entrée et de sortie de stock sont capturés et transmis immédiatement, tandis que l'état des stocks du magasin est actualisé et transmis quotidiennement. Une fois les données collectées, la passerelle assure l'authentification auprès du service d'ingestion des données d'inventaire permettant d'établir un lien sécurisé et de transmettre les données.

Selon l'agencement ou les limites de l'espace de vente et les exigences techniques, le déploiement de systèmes de suivi de l'inventaire peut s'avérer relativement complexe. Dans ce cas, demandez à vos partenaires d'écosystème de vous aider à déployer et à configurer votre infrastructure de suivi de l'inventaire. Pour en savoir plus sur la collaboration avec les partenaires, consultez la page Communauté de partenaires de Google Cloud Platform.

Ingestion de données

Dans les systèmes d'inventaire en temps réel et leur infrastructure associée, le service d'ingestion reçoit périodiquement les données d'inventaire de chaque magasin et les transmet aux services en aval. Ce service doit répondre à un certain nombre d'exigences fonctionnelles : disponibilité élevée, adaptabilité aux variations de stock dans les données d'inventaire, faible latence des réponses envoyées aux passerelles niveau magasin. Dans le cadre de l'ingestion des données d'inventaire, le service doit également authentifier et autoriser les passerelles niveau magasin pour garantir que seuls les périphériques répertoriés et correctement provisionnés sont habilités à envoyer des données.

Compte tenu de ces exigences, Google App Engine constitue une solution appropriée. En effet, la plate-forme App Engine permet de créer et de déployer rapidement des applications Web évolutives sans avoir à provisionner ni à configurer des serveurs individuels. App Engine évolue à la hausse comme à la baisse, de façon automatique ou en temps réel, en fonction des modèles de trafic entrant. Doté de fonctionnalités intégrées telles que l'équilibrage de charge, la répartition du trafic, la gestion des versions et l'analyse de sécurité, App Engine est une plate-forme parfaitement adaptée aux besoins d'ingestion de données d'inventaire en temps réel.

Services de messagerie

Pour les déploiements d'infrastructure cloud, la messagerie est un composant essentiel de la communication en temps réel entre les applications et les services.

Google Cloud Pub/Sub est un service de messagerie en temps réel entièrement géré qui permet aux applications et aux services d'envoyer et de recevoir des messages en mode de distribution push ou pull. Cloud Pub/Sub est compatible avec la sémantique de distribution de messages "un à un", "un à plusieurs" ou "plusieurs à plusieurs", permettant à plusieurs applications et services indépendants de communiquer en temps réel.

Avec cette solution, le composant de messagerie transmet les données de l'application d'ingestion d'inventaire à plusieurs composants en aval. Dans un premier temps, les flux de données d'inventaire sont diffusés dans Google Cloud Dataflow pour le traitement des données en cours de transfert, comme décrit dans la section suivante. Ensuite, un mécanisme de notification alerte plusieurs applications lorsque les données d'inventaire sont modifiées, comme décrit dans la section Intégrer les applications et services.

Traitement et persistance

Dans un système d'inventaire en temps réel, le traitement par flux constitue le service principal. Ce service reçoit les flux de données d'inventaire transmis via le composant de messagerie, examine chaque mise à jour des données entrantes et applique les règles et les actions de sortie en cours de transfert, telles que la persistance. Les règles en cours de transfert permettent de gérer des agrégations ou des valeurs cumulées basées sur des périodes, centrées sur des éléments individuels, des magasins ou des régions. Le service doit constituer un mécanisme de traitement par flux polyvalent, capable d'évoluer de façon flexible à la hausse comme à la baisse en fonction du débit de données entrant, de calculer les agrégations sur des fenêtres temporelles glissantes et de transférer les données brutes ou agrégées vers plusieurs services de persistance.

Cloud Dataflow gère ces types de charges de travail. Ce service comporte deux composants principaux : un ensemble de SDK permettant de définir un pipeline de tâches de traitement des données et un service géré qui en assure l'exécution. Le service géré Cloud Dataflow a la capacité de répartir les charges de travail de traitement des données entre plusieurs instances de VM Compute Engine. Il assure également la segmentation et le rééquilibrage de la charge en cours de transfert.

Dans les scénarios d'inventaire en temps réel, Cloud Dataflow extrait les données de flux de Cloud Pub/Sub et crée des vues glissantes et temporelles des données entrantes. Pour chaque fenêtre de données, le SDK Cloud Dataflow permet d'exécuter une série d'opérations ou de transformations. Celles-ci appliquent des fonctions telles que le comptage, le filtrage ou l'agrégation des données contenues dans chaque fenêtre.

Le diagramme suivant montre comment traiter des charges de travail d'inventaire en temps réel. Chaque phase du processus de traitement se termine par la persistance des données de sortie dans un système de stockage de données spécifique : Google Cloud Bigtable, Google Cloud BigQuery et Google Cloud SQL.

Les données transitent depuis Cloud Pub/Sub via le pipeline Cloud Dataflow jusqu'au stockage.

Séries temporelles d'événements

Comme illustré dans le diagramme, chaque élément du flux de données d'inventaire entrant est écrit sous forme de série temporelle d'événement spécifique dans Cloud Bigtable, un service de base de données big data NoSQL entièrement géré. Cloud Bigtable s'appuie sur l'infrastructure de base de données interne Bigtable de Google, qui alimente la Recherche Google, Google Analytics, Google Maps et Gmail. Le service fournit un stockage cohérent, à haut débit et faible latence, idéal pour le stockage de chaque événement d'inventaire. Le stockage individualisé des événements répond au double objectif d'analyse prédictive hors connexion et de l'analyse big data associée, par exemple pour optimiser la chaîne logistique, à l'aide d'outils comme le déploiement géré d'Apache Spark ou Apache Hadoop avec Google Cloud Dataproc ou Cloud Dataflow.

Les schémas Cloud Bigtable utilisent une clé à une seule ligne associée à une série de colonnes. Pour les charges de travail d'inventaire en temps réel, les flux de données d'événement sont stockés sous forme de séries temporelles, c'est-à-dire que les modèles de données destinés aux tables ont une forme allongée et étroite. Les cas d'utilisation en aval pour de tels ensembles de données jouent un rôle important dans la structure des données, qui doit supporter des requêtes rapides et un processus minimal de filtrage et de traitement en sortie. Une stratégie intégrant la dénormalisation des données s'avère utile dans ce cas, en écrivant plusieurs fois les mêmes éléments de données à l'aide de différents schémas clé-valeur.

Par exemple, un schéma axé sur les articles d'inventaire utilise le format de table suivant :

Clé de ligne
Colonnes
UPC + Timestamp
Store ID, Location, Reader, Style

Un autre schéma utilise une structure plus spécifique aux magasins :

Clé de ligne
Colonnes
Store ID + Timestamp
UPCs, Location, Reader

Enfin, un schéma combiné utilise une structure semblable à cet exemple :

Clé de ligne
Colonnes
UPC + Store ID + Timestamp
Location, Reader, Style

Afin d'optimiser les performances lors de l'utilisation de Cloud Bigtable, il est important de prendre en compte la localisation des données, ainsi que la distribution des lectures et des écritures. À ce titre, le dernier schéma dans notre exemple constitue le meilleur choix, car il permet une distribution plus large des écritures et évite les problèmes de hotspotting des données. Avec ce type de schéma, un seul produit ne peut pas nuire aux performances, car le Store ID est concaténé avec le code UPC.

En fin de compte, la structure correcte, ou les structures en cas de dénormalisation, dépendent de la manière dont vous envisagez d'utiliser les données. Pour en savoir plus sur les bonnes pratiques de conception de schéma, consultez la section Concevoir des schémas Cloud Bigtable pour des séries temporelles de données.

Événements agrégés

À des fins d'analyse ou de veille stratégique, vous pouvez charger les flux d'inventaire entrants dans BigQuery, une solution d'entreposage de données entièrement gérée pour les charges de travail SQL ad hoc sur l'ensemble des données d'inventaire. BigQuery sépare le stockage et les opérations de calcul, ce qui permet de dimensionner chaque fonction indépendamment. Les requêtes sur des Go ou des To de données s'exécutent ainsi en quelques secondes.

À partir du pipeline Cloud Dataflow décrit précédemment, la sortie vers BigQuery peut être dénormalisée sous la forme de plusieurs tables. Chaque table peut contenir une vue différente des flux d'inventaire entrants. Par exemple, les tables peuvent être organisées par niveaux d'agrégation (par heure, par jour et par semaine) et selon plusieurs dimensions, par exemple UPC et Store ID.

Semblables aux bases de données relationnelles, les schémas et modèles de données BigQuery acceptent les lignes et les colonnes, ainsi que l'utilisation de colonnes JSON avec des données imbriquées. Une ligne individuelle peut ainsi stocker des données imbriquées de paires clé-valeur. La disponibilité des données JSON incorporées dans des lignes individuelles permet de concevoir des schémas plus complexes adaptés aux cas d'utilisation classiques des entrepôts de données, tels que les schémas en étoile, en flocon de neige ou en constellation.

Au-delà du stockage des données d'inventaire, BigQuery est un système approprié pour les cas d'utilisation plus larges d'entrepôts de données dédiés au commerce. Par exemple, en important des données d'achat client ou de chaîne d'approvisionnement, vous pouvez créer des schémas et des représentations complexes de données qui exploitent tous les points de données disponibles.

Comptage transactionnel

Dans les charges de travail d'inventaire en temps réel, une source d'informations fiable est nécessaire pour stocker les comptages d'inventaire et en gérer l'exactitude à tout moment. À partir du pipeline Cloud Dataflow décrit précédemment, les flux de données d'inventaire sont examinés minutieusement et les événements particuliers sont extraits, tels que les entrées et les sorties de stock consécutives à un achat ou à une expédition. Ces informations sont ensuite utilisées pour mettre à jour l'inventaire par magasin. Pour ce type de charge de travail transactionnelle à faible latence, Google Cloud SQL est le meilleur choix de stockage de données.

Cloud SQL représente le déploiement cloud de MySQL entièrement géré et natif, avec assistance intégrée de la réplication. Basé sur MySQL, Cloud SQL accepte de nombreux frameworks et applications. Cloud SQL offre une sauvegarde et une restauration intégrées, des déploiements à haute disponibilité et une réplication en lecture. Ces fonctionnalités sont utiles lorsque plusieurs applications et services doivent interroger fréquemment les décomptes de l'inventaire.

Pour les charges de travail d'inventaire, le tableau suivant présente un exemple de schéma permettant de stocker ces données dans un format facile à interroger et à mettre à jour :

Type
VARCHAR
VARCHAR
INT
TIMESTAMP
Colonne
Store ID
UPC
Count
Last Updated

Selon les autres métadonnées nécessaires aux systèmes en aval, telles que les applications en magasin ou de back-office et les intégrations tierces, vous pouvez ajouter des colonnes au schéma. Pour des raisons de performances et d'intégrité des données, il peut également être utile de créer un index composé à l'aide des champs Store ID et UPC pour accélérer la recherche, et de définir l'horodatage Last Updated pour une mise à jour automatique à chaque modification d'une ligne donnée.

Intégrer les applications et services

L'objectif des systèmes d'inventaire en temps réel est de fournir des capacités de précision, de visibilité et d'analyse accrues pour les mouvements de stock tout au long de la chaîne d'approvisionnement. L'une des exigences clés de ces systèmes est de pouvoir intégrer facilement, de manière évolutive et sécurisée, les applications et services qui exploitent ces données. Or, les diverses contraintes opérationnelles déterminent les types d'applications et de services devant être intégrés.

Quelques exemples d'intégrations de services :

  • Publication de flux de données d'informations d'inventaire, telles que marque, style et quantité, pour piloter des campagnes d'affichage ou de publicité sur le réseau de recherche
  • Participation à des analyses d'achats en ligne et en magasin et du profil des acheteurs

Exemples d'intégrations d'application :

  • Applications locales de gestion des tâches d'inventaire destinées aux employés de magasin, pouvant être fournies via des tablettes ou autres dispositifs numériques sur le point de vente
  • Fourniture d'API normalisées à intégrer aux systèmes et applications de back-office, assurant en particulier la planification des ressources d'entreprise, la gestion des processus métier, la chaîne d'approvisionnement et les applications financières

De nombreux packages logiciels d'entreprise permettent l'intégration de systèmes externes au moyen d'API basées sur HTTP pour l'utilisation des données, ce qui simplifie le processus d'intégration.

App Engine convient parfaitement à ces types d'applications et services à travers un accès hautement disponible et à faible latence aux données d'inventaire critiques. Les applications App Engine exploitent les ressources de Google Cloud Endpoints permettant de créer et de déployer rapidement des API REST. Celles-ci sont facilement accessibles à partir d'applications Web ou mobiles grâce aux bibliothèques clientes générées. Cette approche permet de réduire le temps total de développement. Les applications App Engine sont également compatibles avec plusieurs méthodes d'authentification, facilitant ainsi le contrôle de l'accès et des activités de clients spécifiés.

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…