BricoPrivé est une entreprise e-commerce de produits de bricolage dont la présence s'étend sur plusieurs pays. La disponibilité de ses services est cruciale pour offrir une bonne expérience utilisateur et s'assurer qu'aucune commande n'est omise. Afin d'assurer un contrôle total de son infrastructure, BricoPrivé a besoin d'un outil complet qui lui permette d'obtenir des données techniques et commerciales afin d'exploiter sa plateforme en toute confiance.
Technofy accompagne BricoPrivé sur de multiples aspects liés au AWS et au DevOps, mais ce cas d'utilisation se concentre sur l'implémentation de DataDog sur leur infrastructure cloud. DataDog est une plateforme d'observabilité et de surveillance qui fournit des métriques, l'ingestion de logs et de puissantes analyses de données.
La solution vise à fournir un monitoring sur trois niveaux différents :
Tous ces différents moyens de livraison des logs et métriques sont configurés pour utiliser le cryptage en transit afin de respecter les exigences de sécurité.
CloudFront est le CDN de predilection de BricoPrivé car il permet de délivrer plusieurs centaines de téraoctets chaque année à leurs utilisateurs. La flexibilité du service permet de router les requêtes HTTP vers différents backends grâce à divers paramètres. CloudFront s'apparente ainsi à un reverse-proxy plus classique, ce qui s'avère très utile pour les entreprises qui souhaitent scinder progressivement leurs applications monolithiques en microservices plus petits et plus agiles.
CloudFront propose deux modes de livraison des logs d'accès, standard et en temps réel. Les logs standard sont livrés périodiquement à S3, ce qui permet à d'autres systèmes de les traiter. Le délai de livraison de ces logs peut varier de quelques minutes à 24 heures. Les logs en temps réel, quant à eux, sont livrés en quelques secondes à Kinesis Data Streams, ce qui permet à Kinesis Firehose de les distribuer à divers backends.
BricoPrivé a besoin de ce dernier car il lui permet de mieux comprendre l'échelle à laquelle il opère. Ces logs en temps réel fournissent des informations précieuses en termes de performance et d'expérience client qui peuvent être analysées et transformées en actions d'optimisation.
Comme mentionné ci-dessus, Technofy a déployé Kinesis Data Streams et Kinesis Firehose pour envoyer les logs dans DataDog. Cette procédure est bien décrite dans la documentation (Voir Envoyer les logs des services AWS avec la destination Kinesis Firehose de Datadog).
BricoPrivé utilise des instances de calcul EC2 pour son application et suit les meilleures pratiques en matière de mise à l'échelle automatique, d'équilibrage de charge et de disponibilité. Néanmoins, en raison de leur activité croissante, leurs dépenses cloud augmentent également. En gardant un œil sur l'utilisation des ressources de chaque instance, BricoPrivé peut ajuster ses directives en ce qui concerne la mise à l'échelle automatique. Cela leur permet de maximiser l'utilisation des ressources sans avoir d'impact sur l'expérience de l'utilisateur final et de contrôler correctement les coûts lors de la mise à l'échelle.
Ce monitoring se fait grâce à l'agent DataDog qui rapporte les métriques du système et les processus en cours d'exécution en temps réel. L'agent peut également diffuser des fichiers log, mais dans ce projet, les exigences applicatives ne prévoient pas l'utilisation de cette fonctionnalité.
La démarche visant à assurer l'observabilité dans les différentes couches ne serait pas complète sans disposer d’un regard sur la couche application.
Une technologie répandue telle que Syslog permet à plusieurs générateurs de logs d'utiliser un protocole standard, ce qui réduit la complexité opérationnelle. Dans ce cas, nous avons opté pour syslog-ng car la configuration est plus attrayante et compréhensible pour les équipes d'ingénieurs.
Une fois de plus, DataDog fournit un service d'ingestion Syslog. Deux endpoints sont disponibles, l'un avec TLS et l'autre sans. Étant donné que les logs applicatifs peuvent contenir des données sensibles, le choix naturel était de configurer syslog-ng pour que celui-ci utilise l'endpoint crypté.
Comme décrit dans la section "Monitoring des instances", l'agent DataDog fournit de nombreuses informations sur le système sur lequel il est exécuté. Nous avons également abordé le fait que nous devons également déployer syslog-ng sur les instances.
Chez Technofy, nous utilisons couramment Ansible pour la gestion de la configuration des systèmes de nos clients. Heureusement pour nous, DataDog fournit déjà un rôle sur Ansible Galaxy , ce qui rend la configuration encore plus facile. Tout ce que nous avons à faire est de remplir quelques détails de configuration et la clé API.
Dans de nombreux cas, les déploiements Ansible sont effectués à distance via SSH, mais BricoPrivé fait largement appel à AWS System Manager et l'utilise pour appliquer des correctifs et créer des sessions à distance sur sa flotte de machines. Le service fournit également un moyen d'exécuter des Playbooks Ansible via l'un de leurs documents SSM gérés, à savoir "AWS-ApplyAnsiblePlaybooks". Ce document nous permet de spécifier des variables ainsi qu'un seau S3 (ou un dépôt GitHub) où il cherchera le playbook. Une fois exécuté, le document se charge ensuite d'installer automatiquement Ansible sur les machines cibles s'il n'est pas déjà présent.