Comment Swisscom a doté son Paas d’une infrastructure multi-Iaas
L’opérateur suisse s’appuie sur les possibilités de connexions plurielles de BOSH afin de relier dynamiquement son Paas aux principaux fournisseurs de Cloud du marché. Google Cloud, AWS, Azure, Sphere, OpenStack sont notamment supportés.
Dans le cadre de sa transition vers un fournisseur de services Cloud, l’opérateur suisse Swisscom a décidé d’apporter aux entreprises un Paas reposant sur Cloud Foundry. Mais la particularité de cette plateforme : s’appuyer sur BOSH pour distribuer sa solution sur plusieurs Iaas, et permettre aux entreprise de repartir leurs applications et leurs ressources en fonction de leurs besoins.
Pour mémoire, BOSH est l’un des projets cadre de la fondation Cloud Foundry. Ce projet Open Source, initialement conçu pour déployer le Paas Open Source sur de grands clusters, peut également être utilisé pour distribuer d’autres applications, qui nécessitent une répartition minutieuse des workloads sur des clouds publics et privés, multi-fournisseurs (OpenStack, AWS, Google, VMware, par exemple). BOSH a par exemple été adapté pour déployer l’orchestrateur de containers Kubernetes, dont les déploiements, en dépit d’une popularité grandissante, demeurent encore compliqués à effectués et – surtout – difficiles à maintenir et opérer. Cette solution est aujourd’hui disponible au sein de la Cloud Foundry Foundation sous le nom Container Runtime – il vient concrétiser le projet Kubo.
Mais l’autre point fort de BOSH, outre ses capacités de distribution d’applications multi-cloud, est de représenter une tour de contrôle opérationnelle en fournissant des capacités de monitoring, de workloads et de remédiation, et de gestion de release, par exemple.
Un point qui n’aura pas échappé à Swisscom, qui a choisi de s’impliquer dans la fondation en tant que membre Gold. La société y a apposé ses offres de Paas, Swisscom Application Cloud, pour la partie public, et Enterprise Application Cloud, le même code mais sous la forme de services managés par l’opérateur pour les entreprises. Ce Paas est également associé à des services de bases de données (MongoDB et MariaDB), de services de stockage objet avec AWS S3. Il comprend également différents framework dont Node.JS, et d’autres composants Open Source dont RabbitMQ.
Pour Fabio Berchtold, ingénieur Cloud chez Swisscom, le choix de Cloud Foundry a notamment été motivé par l’approche standard – induite par l’Open Source – que propose ce Paas, d’un fournisseur à l’autre. C’est d’ailleurs la promesse faite depuis son origine par les concepteurs du projet, Pivotal et VMware (avant d’être transmis à une fondation indépendante, aujourd’hui un projet collaboratif de la Linux Foundation). La motivation première était cette capacité de proposer une plateforme capable d’exploiter des capacités de différents Iaas et de permettre aux entreprises clientes le choix d’y poser leur workloads.
Si logiquement, le placement des données et des applications est une motivation première, il apparait que pour Swisscom, le multi-Cloud est aussi une façon de garantir la haute-disponibilité à la plateforme, résume Fabio Berchtold, ingénieur Cloud chez Swisscom. « Cela permet de ne pas avoir d’interruption de services pendant les périodes de maintenance, d’avoir un niveau de résilience adéquat, de la tolérance aux pannes et enfin de proposer des infrastructures physiques distinctes. » Et d’ajouter : « nous voulons aussi nous doter de suffisamment de flexibilité pour l’avenir. »
Trois zones de disponibilité, multi-Iaas
Le Paas Cloud Foundry crée donc une couche d’abstraction qui vient dissimuler une infrastructure composée de 3 zones de disponibilités, chacune positionnée sur différents Iaas, que l’entreprise peut choisir dans sa configuration. Sont cités Azure, AWS, VMware vSphere et OpenStack.
BOSH fait office de cerveau de la distribution. Un unique BOSH Director (le cerveau de BOSH – il orchestre l’ensemble des composants) est mis en place dans un datacenter, et permet de gérer les 2 autres zones. « Ce qui est déployé dans l’une est répliqué dans les 2 autres », explique le responsable, ajoutant que plusieurs Paas Cloud Foundry ont été déployés pour répondre à ce dispositif. « Un seul BOSH Director dialogue avec les 3 datacenters. Cela a été possible grâce au support du multi-CPI, ajouté à BOSH ». En gros, un CPI (Cloud Provider Interface) est un connecteur qui permet de relier BOSH à une infrastructure dédiée et ses API. Avec des fonctions de multi-CPI, « on dispose de plusieurs configuration en même temps », analyse Fabio Berchtold.
Chaque zone dispose d’une segmentation d’éléments, d’abord déployés sur la première zone, puis répliqué aux autres : un bloc « Core » qui contient la gestion des DNS, des workers ConCourse pour l’intégration continue, un Docker Registry, un cluster Galera ; un bloc « BI » avec notamment le billing du Paas et un portail de consommation, puis l’élément Cloud Foundry avec ses API et plusieurs zones d’isolations. Cela permet aux entreprises de gérer différentes versions de composants et d’effectuer des tests, résume le responsable de Swisscom. Les 2 autres blocs portent sur des services de containers bâtis sur Kubernetes et enfin les services (dont MongoDB et Redis).