L’agence Web Exponent a choisi le Public Cloud d’Infomaniak pour implémenter l’infrastructure du Web builder SaaS de son client, Web Agility. Le résultat : un service Kubernetes managé rend la plateforme SaaS hautement disponible, modulaire et compatible avec tous les outils populaires utilisés en entreprise (Figma, Jira, Monday, etc.). Un exemple concret qui substitue les services AWS, GCP ou Azure par des solutions d’infrastructure 100% souveraines.

L’agence Exponent : le pont technique entre le fournisseur d’infrastructure et les entreprises

Spécialisée dans la transition numérique, Exponent accompagne les entreprises pour utiliser Public Cloud d’Infomaniak avec la même simplicité que les solutions d’Amazon (AWS), de Microsoft (Azure) ou de Google (GCP).

Fondée par des anciens de l’EPFL et d’HEC, l’équipe d’Exponent compte aujourd’hui près de 50 personnes en Suisse et à l’international et apporte l’expertise technique qu’il manque aux agences digitales ou aux entreprises pour réaliser des projets complexes avec trois champs d’expertise :

  • le développement d’applications et de sites sur mesure
  • l’IA et les automatisations de processus complexes
  • la création et la maintenance d’infrastructures (DevOps)

Le besoin du client : une infrastructure interopérable et haute disponibilité basée en Suisse

Web Agility est une plateforme tout-en-un conçue pour permettre aux agences web de créer et gérer des sites complexes grâce à une approche collaborative et automatisée.

Pour proposer Web Agility sous forme de plateforme SaaS à d’autres agences, les développeurs d’Exponent devaient concevoir une infrastructure horizontale, modulaire et évolutive, capable de mobiliser efficacement l’ensemble des ressources d’une agence (designers, développeurs, chefs de projet, spécialistes SEO, gestionnaires de contenu, clients, etc.), sans rupture ni latence dans les échanges.

Présentation : exemple de workflow pris en charge dans Web Agility.
Exemple d’un workflow pris en charge par Web Agility, qui offre une grande interopérabilité avec les services les plus répandus en entreprise.

Les challenges

Les principales contraintes du projet en matière d’infrastructure :

  • Créer une architecture scalable et modulaire : la plateforme SaaS de Web Agility doit pouvoir héberger des milliers de sites et assurer leur disponibilité quelles que soient les sollicitations. L’interopérabilité est une priorité car la plateforme est horizontale et compatible avec une grande variété d’outils et de services tiers.
  • Assurer la compétitivité de la plateforme : maîtriser le coût des ressources et de maintenance de l’infrastructure au maximum.
  • Garder la maîtrise du code en Suisse : garantir l’ancrage de la plateforme SaaS en Suisse pour tous les aspects (développement du code, hébergement de la plateforme, sites produits par les clients, bureaux virtuels, etc.).

Le choix du public cloud d’Infomaniak

Pour Teo Stocco, CTO de Exponent, le choix d’Infomaniak comme fournisseur unique pour l’infrastructure cloud détermine la faisabilité du projet :

  • La facilité. Infomaniak coche toutes les cases pour être le fournisseur unique du projet pour l’infrastructure de la plateforme SaaS : la haute disponibilité et la maîtrise des données, des technologies et des data centers en Suisse
  • Un prix imbattable sans lequel ce projet ne pourrait pas bénéficier d’une architecture aussi aboutie.
  • Le Public Cloud marche ! Dans le platform engineering, les infrastructures deviennent très abstraites et il y a toujours des problèmes à régler. Avec le Public Cloud d’Infomaniak, ça marche, tout simplement. C’est le gros avantage d’utiliser une technologie open source qui est interopérable, fiable et robuste.
  • La gestion des noms de domaine est simplifiée grâce à l’offre de services annexes d’Infomaniak.

Mise en oeuvre du Public Cloud comme service Kubernetes managé

L’équipe d’Exponent s’appuie sur les techniques infrastructure as code (IaC) pour développer un service Kubernetes managé sur mesure qui utilise les ressources fournies par Infomaniak.

Les ingénieurs d’Exponent ont fait le choix de l’infrastructure la plus simple possible avec 3 clusters Kubernetes :

  1. Un cluster dédié aux outils de la plateforme
  2. Un cluster de production
  3. Un cluster de tests

Le cluster dédié aux outils de Web Agility

Ce cluster propulse une solution de monitoring pour les 3 clusters. L’équipe a mis en place une suite composée de Grafana, Mimir et Loki pour remonter les logs et les métriques des serveurs (CPU, requêtes, quantité de travail, etc.). Elle permet de savoir si les sites déployés avec Web Agility sont en bonne santé, s’ils se comportent bien et ont la taille adaptée.

Les machines qui composent le cluster d’outils sont divisées en deux sous-réseaux. Le premier relie les VM qui gèrent le cluster (le cerveau). Le deuxième réseau agrège les VM (agents) qui font tourner les applications et les containers des clients.

Ce schéma montre l’architecture du cluster avec les deux sous réseaux de machines virtuelles
Ce schéma montre l’architecture du cluster avec les deux sous réseaux de machines virtuelles.

Les ingénieurs ont utilisé Terraform/OpenTofu pour provisionner et déployer l’infrastructure de manière déclarative via des fichiers de configuration (HCL).

4 principaux services du Public Cloud d’Infomaniak ont été utilisés pour réaliser ce cluster :

  1. Des instances de serveurs (VMs)
  2. Un routeur qui relie les VM en réseau
  3. Un load balancer par IP pour répartir la charge de manière uniforme entre les nœuds
  4. De l’object storage pour effectuer des backups et stocker des données

Grâce à l’approche infrastructure as code, la commande terraform apply de Terraform lit les fichiers de configuration (HCL), génère un plan d’exécution, et l’injecte dans l’API du Public Cloud d’Infomaniak pour créer, modifier ou supprimer les ressources. Cela permet à l’équipe d’automatiser et de gérer l’infrastructure de manière cohérente et reproductible.

Exponent peut ainsi se charger d’effectuer les checks de sécurité et la maintenance des clusters de l’infrastructure à la place de son client, à moindre coût.

Le cluster de production

Ce cluster doit répondre à une double contrainte :

1. La sécurité : dans le projet Web agility, de nombreuses briques doivent communiquer ensemble. En cas de problème, de bug ou même d’extinction d’un serveur, cela ne doit pas affecter les autres. Dans Kubernetes, tous les containers sont autorisés à communiquer les uns avec les autres par défaut. Une base de données doit pouvoir communiquer avec une application et avec les autres containers. Mais dans le projet Web Agility spécifiquement, chaque site doit être parfaitement indépendant des autres.

Pour s’assurer d’isoler chacun des nœuds, Exponent agit à deux niveaux (principe de l’oignon) :

  • Au niveau du Public Cloud : 78 règles sécurisent et contrôlent ce qui entre et sort des machines virtuelles.
  • Au niveau des containers : une double politique d’isolement et de contrôle réseau restreint les communications aux seules autorisées.

2. La haute disponibilité : les sites Web des clients construits doivent être disponibles en toutes circonstances. Mais par essence, une plateforme comme Web Agility peut héberger une multitude de sites avec d’importantes différences de trafic.

L’infrastructure haute disponibilité conçue par Exponent maintient toujours deux instances d’un site, au minimum deux containers, pour parer à tout problème sur l’un des serveurs.

Pour absorber les pics de trafic, Exponent à mis en place un auto-scaling à deux niveaux :

  1. Dans le cluster Kubernetes, pour adapter automatiquement le nombre de containers lorsque c’est nécessaire.
  2. Dans le Public Cloud, pour adapter la puissance (scaling vertical) ou le nombre de machines virtuelles lorsque davantage de place est nécessaire dans le cluster de production (scaling horizontal).

Résultats

  • Le client fait des économies substantielles dans la durée avec une infrastructure entièrement managée : dans le budget d’une infrastructure, 50% correspond à la mise en place et 50% est lié à sa maintenance. Ces économies de maintenance conjuguées aux tarifs très compétitifs du Public Cloud d’Infomaniak font de cette solution d’infrastructure modulaire la plus avantageuse du marché.
  • La maîtrise des données en Suisse est assurée à deux niveaux. Du côté hardware, par la transparence de la technologie de Public Cloud et les garanties de souveraineté de Infomaniak (de l’API aux data centers). Du côté développement, les technologies utilisées et le code sont uniquement en Suisse.

En savoir plus