Tierney - stock.adobe.com
Talentsoft s’appuie sur Terraform pour déployer son offre SaaS sur de multiples infrastructures
En s’appuyant sur Terraform, Puppet et Packer, l’éditeur de solutions de gestion de talents français a largement automatisé la gestion de ses infrastructures. Ce qui lui permet aujourd’hui de déployer indifféremment le code de son application sur les multiples clouds qu’il utilise pour héberger ses services dans le monde.
Le Français Talentsoft a développé une offre innovante de gestion des talents en mode SaaS qui est aujourd’hui mise en œuvre par près de 2000 entreprises et près de neuf millions d’utilisateurs dans le monde. La firme emploie actuellement près de 600 salariés et s’appuie sur de multiples datacenters et fournisseurs de cloud tiers pour proposer ses offres partout dans le monde.
« Nous nous appuyons sur un mix d’hébergeurs de type Azure où l’on consomme de la ressource en mode élastique. Nous opérons aussi des datacenters plus traditionnels, en colocation et où nous exploitons nos propres baies avec des équipements physiques sur lesquels on pose une couche de virtualisation. Enfin, nous nous appuyons aussi sur un modèle hybride qui est celui d’OVH qui offre des ressources entre le “bare metal” et le “Dedicated Cloud”. Toutes ces ressources combinées permettent de faire fonctionner Talentsoft », explique Joël Bentolila, le cofondateur et CTO de Talentsoft.
Tout l’enjeu de l’éditeur est de trouver un équilibre entre ses impératifs économiques en matière d’infrastructure et sa volonté de préserver son indépendance vis-à-vis de ses multiples fournisseurs. Il lui faut aussi assurer que sa pile applicative pourra être déployée rapidement et de façon transparente sur des infrastructures de nature différente. Pour cela, l'éditeur à mis l'accent sur la partie « Ops » de sa pratique « DevOps » en mettant en place une approche « infrastructure as code ».
Une stratégie multidatacenters assumée
La stratégie de l’éditeur est de s’assurer qu’une large partie de son infrastructure est réservée de façon fixe à l’année. « On ne se pose pas la question de la rendre variable ». En complément, l’éditeur s’appuie sur un volant d’infrastructure élastique sur Azure ou dans ses propres datacenters pour compléter ses capacités.
Cette capacité variable représente environ 10 à 20 % de son infrastructure en rythme annuel. Au passage, le directeur technique de Talentsoft note qu’Azure et OVH ont un meilleur rapport qualité-prix que les datacenters que Talentsoft opère en propre.
Dans le choix des fournisseurs, « le côté économique de l’infrastructure reste important », note toutefois Joël Bentolila, tout en admettant qu’il n’est pas le seul critère qui entre en ligne de compte [la principale dépense de l’éditeur reste le coût de ses licences logicielles de bases de données, N.D.L.R].
Un autre challenge pour l’éditeur est que son infrastructure est loin d’être figée. « On change parfois de fournisseur de datacenter ou de cloud et l’on ouvre aussi régulièrement de nouveaux datacenters. Par exemple, lorsque l’on ouvre un nouveau pays, on commence petit, puis en fonction de la relation avec l’hébergeur on peut s’agrandir ou le quitter pour un autre ».
Traiter l’infrastructure « as code »
Cela a amené Talentsoft à développer une expertise très particulière, lui permettant d’ouvrir ou de transférer son infrastructure d’un fournisseur à un autre sans impact visible sur sa production. Pour cela, Talentsoft a parié sur la technologie Terraform d’Hashicorp, qui lui permet d’abstraire les ressources d’infrastructures sous-jacentes et de mettre en place un modèle de type « Infrastructure as code ».
Terraform est un outil logiciel qui permet de modéliser, de modifier et de versionner l’infrastructure de manière sûre et efficace et ce quelle que soit la nature de l’infrastructure sous-jacente ou le fournisseur de services cloud utilisé.
Dans Terraform, des fichiers de configuration permettent de décrire les composants d’infrastructures nécessaires au fonctionnement d’une application. L’infrastructure que Terraform peut gérer comprend des composants de bas niveau tels que les instances de calcul ou VM, le stockage et les services réseau, ainsi que des services de plus haut niveau comme les entrées DNS, les services de firewall ou d’équilibrage de charge, etc.
À partir de ces fichiers de configuration, Terraform génère un plan d’exécution décrivant ce qu’il fera pour atteindre l’état désiré, puis l’exécute pour construire l’infrastructure décrite sur la plate-forme désirée.
La modélisation et l’abstraction au service d’une infrastructure automatisée
« Aucune société ne veut une armée d’opérateurs, donc il faut faire de l’automatisation et de l’infrastructure as code car sinon on ne s’en sort plus » explique Joël Bentolila. « Nous nous sommes appuyés sur de bonnes pratiques communes à beaucoup d’éditeurs SaaS et nous avons modélisé nos Datacenters avec Terraform (Infrastructure as code), Puppet (gestion des configurations) et Packer (gestion des images logicielles) ».
Dans la pratique, Talentsoft a bâti un automate “Infrastructure as code” pour modéliser le déploiement de ses propres scripts indépendamment de l’infrastructure utilisée [Azure, OVH, datacenter colocalisés]. « On versionne ainsi nos datacenters comme on le ferait avec une application et on peut ainsi réaliser des tests unitaires. L’ensemble est chaîné avec nos environnements de CI/CD pour bâtir des environnements de test. On orchestre le tout avec Jenkins » affirme le CTO de Talentsoft.
L’une des contraintes imposées par cette approche est toutefois que l’éditeur doit s’assurer que tous les composants d’infrastructures qu’il utilise sont modélisables dans Terraform. « Si l’on veut tirer parti au mieux de l’outil, on doit restreindre notre choix de composants aux périmètres des fournisseurs offrant des environnements scriptables dans Terraform. Par exemple, on a des fournisseurs comme F5 qui ont fourni des connecteurs Terraform pour leurs offres afin que l’on puisse packager des images avec leurs offres et les déployer avec Terraform ».
Joel Bentolila admet que si l’essentiel de son infrastructure est désormais modélisé avec Terraform, l’éditeur n’est pas arrivé totalement à ses fins. « On a encore des éléments de legacy qui n’ont pas d’alternatives scriptables mais que l’on va éliminer avec le temps. Il nous reste aussi quelques opérations d’exploitation sur l’application qui sont en cours d’automatisation ».
Notons pour terminer que Talentsoft a largement chroniqué ses progrès sur un blog dédié, Techlife@Talentsoft, sur lequel l’éditeur partage son expérience en matière d’automatisation.