Créée en 2013, la startup FrontApp a développé un client de messagerie collaboratif, compatible avec les autres applications de l'entreprise. Sa solution permet à des équipes entières de partager la même messagerie, tout en intégrant les SMS et les flux de messages des principaux réseaux sociaux. FrontApp contourne ainsi les limites liées aux boîtes e-mail individuelles et apporte une visibilité et un suivi uniques du traitement des messages au sein d'une équipe. La startup française a lancé son offre en juin 2014 auprès d'utilisateurs sur le continent américain, elle l'étend aujourd'hui en Europe en maintenant les impératifs de service en temps-réel et de sécurité des données qui résident au cœur de la qualité de son offre.

En 2014, FrontApp finalisait le test de sa solution avec un groupe de beta testeurs. La startup hébergeait sa solution sur des serveurs loués chez OVH, société majeure d'hébergement en France. Son équipe, alors constituée de ses deux cofondateurs, anticipait le lancement prévu dans l'année en faisant face à deux principaux enjeux : la sécurité des données et un stockage adapté au volume de données des utilisateurs.

Laurent Perrin, CTO et cofondateur de FrontApp, relate : "Nous savions que la sécurité des données de messagerie serait la préoccupation première de nos clients. Nous devions trouver les moyens de leur garantir qu'il n'y avait aucun risque de perte de données, avec une continuité de service en temps-réel où que se trouvent les utilisateurs". Pour le stockage, la startup allait faire face à un volume accru de données utilisateurs avec l'ouverture du service. Elle recherchait une solution de stockage évolutive, à même d'apporter un support à un service en temps réel.

L'hébergement de la solution résidait au cœur de ces deux enjeux. Pour l'équipe de FrontApp, difficile de maintenir un hébergement sur serveurs classiques : cette option aurait impliqué de démultiplier les machines et aurait abouti à une tâche d'administration complexe. Impossible pour l'équipe de deux personnes de s'en charger et d'y dédier un plein temps, voire plus.

Autre problème avec les serveurs physiques utilisés jusque-là : un manque de clarté des différentes ressources hébergées sur chaque machine. En effet, l'équipe avait installé de plus en plus de solutions sur chaque serveur au gré des développements et le moment était venu de réorganiser l'allocation des ressources par serveur de façon plus rationnelle ainsi que de simplifier l'administration globale.

Pour contourner les limites d'un hébergement traditionnel identifiées par la startup, son équipe a décidé de migrer l'environnement de production de sa solution dans le Cloud. "Pour nous, AWS avait le plus d’expérience dans le domaine. Nous savions qu'en utilisant les services AWS, nous remettions les questions de sécurité et de stockage dans les mains d'un expert reconnu sur le marché, rassurant pour nos clients" indique Laurent Perrin. C'est donc sans hésitation, ni étude d'autres offres Cloud, que FrontApp a migré son environnement de production sur la plateforme d'AWS.

En deux jours seulement, l'équipe a migré 7 serveurs dans le Cloud AWS : 2 API (interfaces de programmations), 4 serveurs de micro-services à la base de l'architecture de FrontApp et 1 serveur de coordination. De quoi finaliser les tests avant le lancement dans un premier temps. Aujourd'hui lancée, FrontApp a recours à un espace privatisé dans le Cloud AWS pour héberger son architecture sur une quarantaine de serveurs :

architecture predicsis

La startup utilise des instances Amazon Elastic Compute Cloud (Amazon EC2), sécurisées à l’aide de groupes de sécurité, Amazon Relational Database Service (Amazon RDS) et AWS Elastic Load Balancing pour une distribution automatique du trafic applicatif entrant et une meilleure tolérance aux pannes. Grâce à Amazon S3, FrontApp dispose d'un espace de stockage sécurisé et évolutif et fait appel à Amazon ElastiCache Redis et Memcache afin de simplifier la gestion de caches mémoire dans le Cloud. La startup utilise de plus Amazon SQS, service de file d’attente de messagerie rapide, fiable, évolutif et totalement géré, ainsi que le service de gestion DNS Amazon Route 53. Grâce à Amazon CloudFront, FrontApp est équipée pour diffuser le contenu Web et multimédia de sa solution partout dans le monde. Enfin les alarmes du service de supervision Amazon CloudWatch permettent une surveillance renforcée des ressources utilisées dans le cloud d'AWS.

La solution de FrontApp peut compter sur des capacités de stockage illimitées et évolutives. L'importation des messages des utilisateurs et leur synchronisation en temps réel représentent les deux charges les plus importantes pour la startup. "En utilisant AWS, nous relevons le défi du temps réel grâce au stockage aisé de 50 To de données utilisateurs, de 500Go de données MySQL et au traitement quotidien de 50 millions de tâches dans nos files de messages. En dehors de la plateforme d'AWS, ce serait impossible" analyse Laurent Perrin.

L'administration de l'architecture de la solution ne présente aucune complexité avec un hébergement sur la plateforme d'AWS. A présent, l'allocation des ressources par serveur dans le Cloud d'AWS est rationalisée : à chaque serveur correspond un produit de FrontApp et un processus. "Avec AWS, administrer notre solution qui traite 50 millions de tâches sur 50 files de messages n'occupe qu'un mi-temps dans notre équipe. Avec une solution d'hébergement classique, nous devrions y consacrer le temps de travail de plusieurs personnes" note Laurent Perrin. Un gain de temps précieux pour se consacrer à optimiser la solution. Autre facteur simplifiant l'administration : la facilité à définir des groupes de sécurité en suivant la logique inhérente aux services d'AWS. La startup évite ainsi de consacrer du temps à concevoir elle-même les règles associées aux groupes de sécurité, un atout pour une petite équipe. Elle contourne de plus tout risque d'incident au niveau de son environnement de production en s'appuyant sur l'expertise d'AWS en termes de règles de sécurité.

Le service de messagerie collaborative de FrontApp est parfaitement sécurisé et fiable grâce à d'autres services d'AWS. Laurent Perrin apprécie en particulier la gestion simplifiée des bases de données SQL avec les services d'AWS, un élément majeur pour la continuité de service : "Avec AWS, nous savons que nous ne risquons aucune perte de donnée. Nous évitons ainsi des incidents qui interrompraient le service et demanderaient chacun plusieurs heures d'intervention pour restaurer des données perdues". Un avantage auquel contribuent également les alarmes issues du service de supervision Amazon CloudWatch : indépendantes de la solution de FrontApp, elles s'avèrent bien plus fiables qu'une solution développée et maintenue en interne pour éviter des interruptions de services.

La continuité de service tient aussi à la gestion des files de messages avec Amazon SQS (Simple Queue Service). Avant d'activer ce service AWS, l'équipe de FrontApp utilisait un système de files de messages géré en interne. Un incident dans l'une d'elles avait créé une accumulation des tâches en cours au point d'interrompre le service. "En utilisant Amazon SQS, chaque file de message est indépendante des autres : si un incident survient dans l'une d'elle, les autres ne sont pas affectées. Aujourd'hui, grâce à Amazon SQS, nous sommes en mesure de traiter plusieurs millions de tâches en une heure, sans aucun risque de blocage du service". Amazon Route 53 également aide la startup à offrir un service infaillible : sa capacité à reconfigurer les DNS en une minute évite toute interruption de service le temps qu'un DNS soit propagé sur un nouveau serveur en cas d'incident.

Une priorité réside dans le système de déploiement : alors que la startup étend son service en Europe, un déploiement automatisé depuis la plateforme AWS va lui permettre d'ouvrir une deuxième région au plus proche de ses utilisateurs afin d’obtenir des latences plus faibles et donc d’augmenter la qualité du service. FrontApp entend donc poursuivre l'automatisation de sa solution en utilisant d’avantage de services sur AWS.