Algolia : les secrets de fabrication du Google des apps

Algolia : les secrets de fabrication du Google des apps Medium, Periscope, Twitch.tv… De nombreux sites et applications ont recours à la plateforme française pour mettre en musique leur moteur de recherche interne.

Commercialisé en mode cloud, le moteur de recherche d'Algolia a été conçu pour venir se nicher dans des sites web et applications. Medium, Periscope, Twitch.tv… Des services digitaux parmi les plus populaires au monde l'intègrent comme brique de search interne. Fondé en 2012 par deux Français, Nicolas Dessaigne (CEO) et Julien Lemoine (CTO), Algolia a rejoint en 2014 le célèbre incubateur californien Y Combinator. La start-up a depuis levé pas moins de 73 millions dollars, et compte désormais près de 150 salariés. Basée à Paris, sa R&D regroupe une cinquantaine d'ingénieurs.

33 milliards de requêtes et 141 milliards d'appels d'API encaissés en juillet

Fort de telles références, la plateforme d'Algolia enregistre une audience massive. "En juillet, nous avons encaissé 33 milliards de requêtes, et 141 milliards appels d'API réalisés par nos clients pour mettre à jour leur index", confie Julien Lemoine. "Notre environnement a été conçu pour tendre vers un temps de réponse de l'ordre de quelques millisecondes au niveau serveur", explique-t-il

1 078 serveurs répartis dans plus de 50 data centers

Pour répondre à ce défi, Algolia a conçu sa propre infrastructure cloud. Du matériel au logiciel en passant par le réseau, elle a été optimisée à tous les étages. L'architecture se compose de serveurs dédiés haut de gamme (de 128 Go de Ram), dotés de niveaux de ressource finement définis (CPU, SSD...). Quant à la couche logicielle du service de search, elle est développée en C et C++ pour tirer au mieux parti des performances hardware. Exit les containers et machines virtuelles, l'objectif étant d'éviter toute surcharge matérielle.

Basée sur la distribution Linux Ubuntu, la plateforme est exécutée via Nginx, un serveur web réputé pour sa réactivité et sa faible consommation de mémoire. Quant à la technologie d'indexation du moteur, elle s'articule autour d'une structure de données elle-aussi personnalisée, sous forme de fichiers binaires. "Nous n'utilisons que 10% de nos capacités dans l'optique de garder un maximum de ressources informatiques pour amortir les pics de trafic et continuer à faire croître notre activité", ajoute Julien Lemoine.

Algolia n'hésite pas à garantir à ses clients un taux de disponibilité de 99,999%. A chaque minute de panne, la société s'engage à offrir 1 000 minutes de crédit d'utilisation en réparation du préjudice subi.

Un moteur d'orchestration maison

Pour répondre à cet objectif de haute disponibilité, Algolia a déployé ses serveurs sur 15 régions à travers le monde (voir la carte ci-dessous). Au sein de chaque région, les machines sont entièrement répliquées sur au moins trois centres de données (opérés par des fournisseurs différents), chacun étant doté d'une redondance de l'alimentation électrique et de la connexion réseau. Des data centers espacés de 50 kilomètres pour réduire le risque d'un crash complet d'une région suite à une catastrophe naturelle. Au total, Algolia compte 1078 serveurs physiques distribués dans une cinquantaine de centres de données à travers la planète. "Grâce à cette logique de duplication, les pannes sont transparentes pour nos clients", se félicite Julien Lemoine.

Algolia a déployé ses serveurs sur 15 régions à travers le monde. © JDN : Capture

Pour automatiser ses processus de production informatique (déploiement des index, équilibrage de charge, tolérance de panne...), Algolia a aussi développé ses propres moteurs d'auto-dimensionnement des ressources et d'orchestration des traitements. En aval, ses clients ont la possibilité, via un portail d'administration, de dupliquer en un clic leur index sur une ou plusieurs régions, optimisant ainsi les performances d'accès à leur brique de recherche en fonction de la localisation des utilisateurs.

Un configurateur d'algorithmes de recherche

Comme Google, Algolia classe les résultats de recherche en fonction de critères (mots clés, degré de popularité des contenus…). Mais la start-up va plus loin. Elle a conçu un configurateur d'algorithmes. Il permet à ses clients d'ajouter des critères propres à leur contexte de marché (nombre de ventes, de likes, de followers, lieu depuis lequel les requêtes de recherche sont réalisées...), chacun pouvant faire l'objet d'un niveau de pondération différent. Algolia livre à ses clients une boîte à outils d'analytics pour suivre les changements opérés dans leur algorithme, et l'impact de ces changements sur le trafic et les taux de conversion. Sous le capot, l'analyse des logs est réalisée en faisant appel aux API et machines virtuelles du cloud de Google (Google Cloud Platform).

Pour s'intégrer aux sites et applications de ses clients, Algolia propose deux approches : une gestion à 100% par API d'une part, une bibliothèque de composants graphiques (React.JS, iOS, Android…) sous licence open source d'autre part.

Des index totalisant 110 Tb

A ce jour, l'ensemble des index de recherche opérés par Algolia représente 110 Tb de données. Un volume qui est intégralement stocké en mémoire (RAM) pour plus de performance. Côté stockage SSD, ces index et leurs données de production associées représentent 930 Tb.

Pour contrôler en permanence la bonne santé de sa plateforme, Algolia a développé sa propre console de monitoring en se basant sur l'outil d'IT analytics Wavefront (acquis par VMware en avril dernier). Les indicateurs de performance mesurés par Wavefront sont corrélés avec des mesures en provenance de sondes maison disséminées sur toute l'infrastructure. En cas d'échec d'une requête, la console permet de remonter à la cause du dysfonctionnement du plus bas au plus haut niveau de l'environnement.

A l'instar des géants du cloud, Algolia publie sur son site web un tableau de bord public détaillant la disponibilité de son service à un instant T, région par région.