Observabilité & monitoring sans effort de vos infrastructures Cloud avec SquareScale

par Korben -

– Article en partenariat avec SquareScale –

Je vous avais promis 2 belles surprises de la part de SquareScale d’ici la fin de l’année. Et bien aujourd’hui, je vous dévoile la première, qui enlève une belle épine du pied de tous les développeurs et sysadmins sur leurs projets Cloud Native.

Je reviens en vitesse sur SquareScale pour ceux qui découvrent : SquareScale est un outil qui permet de déployer / piloter des infrastructures Cloud Native chez n’importe quel IaaS provider, avec un focus sur la sécurité, qui est aussi capable de générer des infrastructures certifiables (PCI DSS, HDS, SecNumCloud). SquareScale automatise tout, et met à disposition une infrastructure prête pour la prod avec tous les outils dont rêvent les DevOps.

Si vous avez loupé les précédents articles qui présentent SquareScale, le rattrapage, c’est par ici.

Aujourd’hui, SquareScale annonce une nouvelle fonctionnalité: le déploiement en 1 clic d’un environnement d’observabilité et de monitoring de votre infrastructure.

Un des écueils que l’on entend le plus souvent de la part de développeurs qui adoptent une architecture en microservices, c’est la grande difficulté à déboguer l’application, comprendre les interactions entre les services.

La mise en place d’une stack d’observabilité s’avère donc indispensable pour tout projet, aussi bien pendant la phase de dev que celle de production.

Avant d’approfondir le sujet d’observabilité, quelques mots qui rappellent les grandes lignes de SquareScale:

SquareScale va utiliser l’API de l’IaaS provider choisi pour provisionner des VMs, réparties dans plusieurs zones géographiques, configurer l’OS de chaque machine virtuelle, configurer les réseaux, bootstrapper un cluster Nomad, un cluster Consul, un cluster Vault (selon les options sélectionnées), mettre en place le chiffrement TLS sur tous les échanges, configurer un load balancer (IaaS + Traefik), activer les règles de sécurité selon le profil choisi.

Éventuellement, on peut demander à SquareScale de provisionner un service managé spécifique à l’IaaS provider utilisé (Postgresql sur AWS RDS par exemple, éventuellement en HA).

En seulement quelques minutes, on a accès à son infrastructure dédiée complètement prête pour la production, dont toutes les bonnes pratiques de sécurité sont mises en place, complètement reproductible et réplicable à souhait. Et, cerise sur le gâteau, on peut automatiser l’automatisation réalisée par SquareScale via un provider Terraform ou la CLI. Idéal pour du déploiement continu, avec la possibilité de générer un environnement de staging complètement identique à la production de façon automatisée, en quelques minutes seulement.

Pour le monitoring et l’observabilité, ce que propose SquareScale est une option qui va déployer une “time series database”, Prometheus, pour enregistrer toutes les valeurs numériques. Pour les logs, SquareScale met en place Loki, un système d’agrégation de logs multi-tenants. Et pour la visualisation des données, c’est naturellement Grafana qui est déployé.

Il est à souligner que cet environnement va servir à monitorer non seulement tous les composants de l’infrastructure, mais aussi l’application. Les API sont exposées aux développeurs qui peuvent alors bénéficier immédiatement de l’outil pour debugger leur application.

Voyons maintenant comment, le plus simplement du monde, nous pouvons demander à SquareScale de nous offrir toute une stack de monitoring / observabilité.

Dans l’onglet “Summary”, nous allons pour l’exemple créer une nouvelle infrastructure AWS :

Pour prendre un exemple simple, nous créons un cluster de dev (single node), on sélectionne le monitoring Netdata. Cette fonctionnalité existe depuis longtemps, mais on va voir que les données Netdata sont envoyées vers Prometheus.

Image par défaut pour l'article

On sélectionne alors “Prometheus, Loki & Grafana for nodes monitoring” :

Image par défaut pour l'article

Dans la synthèse de l’infrastructure ainsi créée, on voit que les liens pour accéder à Prometheus et Grafana sont ajoutés une fois déployés :

Image par défaut pour l'article

Comme on peut le voir, un ensemble de targets est déjà configuré, et l’on peut observer tout ce qui se passe dans l’infrastructure déployée par SquareScale.

Ici, on voit les applications qui envoient des données à Prometheus: Promtail, Grafana, Prometheus lui-même, Netdata, mais aussi Cadvisor qui est présent pour exposer les métriques des containers, ou encore Node-exporter qui scanne une machine et fournit ses données systèmes :

Image par défaut pour l'article

On peut filtrer très simplement les métriques tracées de façon très précise :

Image par défaut pour l'article

Passons maintenant à Grafana: plusieurs Dashboards sont déjà présents, notamment celui pour le monitoring des containers :

Image par défaut pour l'article

Un autre dashboard permet de visualiser les données issues de cAdvisor :

Image par défaut pour l'article

L’idée n’est pas de faire ici un tutoriel sur Grafana, mais il est utile de rappeler les puissantes fonctionnalités d’exploration de l’outil, permettant de formuler des requêtes avec un langage très puissant :

Image par défaut pour l'article

Exemple ici avec un filtre sur les logs de Nomad :

Image par défaut pour l'article

La puissante interface permet aussi bien de filtrer les logs système que ceux des microservices applicatifs, et dispose d’une visualisation avec zoom chronologique des types de logs :

Image par défaut pour l'article

Vous l’aurez compris, SquareScale apporte ici un degré d’automatisation qu’aucun outil n’a jusque là réussi à atteindre, et ceci sur une infrastructure dédiée.

Pour toute équipe qui veut avancer rapidement, mais ne pas s’enliser dans la mise en place de ces composants très complexes, et surtout qui veut s’assurer d’avoir une infrastructure toujours à jour, avec tous les outils et bonnes pratiques d’ingénierie et de sécurité mises en place, c’est certainement la meilleure réponse du marché aujourd’hui.

Enfin, si vous êtes DevOps, et que vous souhaitez vous éclater dans une équipe très expérimentée, pour relever des challenges passionnants en automatisation d’infrastructures, sachez que SquareScale recrute !

Si vous connaissez Go, avez une solide expérience DevOps, maîtrisez Terraform, ou que les outils de Service Mesh n’ont aucun secret pour vous, vous risquez d’être fortement tenté de rejoindre l’équipe SquareScale. Ils sont ici: https://squarescale.com

Pour finir, SquareScale nous réserve une deuxième surprise pour la fin de l’année. Je n’en dis pas plus, mais vous verrez, c’est du gros !