OpenStack : comment réussir les déploiements IaaS

Grâce aux contributions actives de plus de 100 sociétés de technologie, OpenStack est désormais incontournable. Le projet est désormais soutenu par les investissements de grands noms du marché IT et de grandes marques d’équipements et de logiciels.

Il s’est écoulé près de 20 ans avant que le marché IT n’accepte Linux. L’histoire des technologies de virtualisation est aussi plus longue qu’on ne le pense, même si l’importance accordée au sujet est relativement récente. C’est avec l’adoption du cloud qu’OpenStack entre en scène. Ce projet Open Source, sous la direction de l’OpenStack Foundation, a pour ambition de créer un standard pour les projets Infrastructure as a Service (IaaS), sous l’impulsion de la communauté.

Grâce aux contributions actives de plus de 100 sociétés de technologie, OpenStack est désormais incontournable. Ce n’est en aucun cas un projet universitaire, ni même social, développé par des passionnés sur leur temps libre. Au contraire, OpenStack est soutenu par les investissements de grands noms du marché IT et de grandes marques d’équipements et de logiciels, des sociétés qui croient dans la valeur ajoutée que cette technologie peut apporter à leur entreprise. Chacun fait de son mieux pour développer OpenStack à sa façon et pour apporter sa pierre à l’édifice. C’est pourquoi le projet évolue à un rythme soutenu.

OpenStack permet de développer des solutions IaaS d’une façon plus économique. L’un des principaux avantages de cette solution est que l’accès aux services de calcul, de mise en réseau et de stockage peut se faire via une base logicielle et non matérielle. Cependant, même si la technologie se développe rapidement et que l’on attend la même chose des applications qui tourneront sur la plateforme, les workloads préexistantes ne sont pas encore adaptées à cette architecture. Dans ce contexte, il est intéressant de surveiller les types de modèles économiques qui émergent autour d’OpenStack, et de voir comment certaines marques sont liées au projet de cloud ouvert.

Quelles sont les applications idéales d’OpenStack ?

OpenStack est une plateforme vouée à faire tourner des applications cloud horizontales flexibles et évolutivité. Au lieu de développer des solutions de haute disponibilité (High Availability) coûteuses pour garantir la fiabilité des services IT, les organisations IT lancent une application avec cette technologie intégrée nativement et qui est tolérante aux pannes des machines virtuelles qui l’exécutent. L’application tourne sur une infrastructure plus économique, à base de serveurs x86 unifiés, et dans ce cas les mécanismes de SLA (service-level agreement) sont basés intégralement sur la disponibilité de l’application et non sur une machine virtuelle unique. L’évolutivité horizontale des applications modernes s’opère d’une façon très dynamique et OpenStack est la source utilisée pour l’administration des ressources de calcul.

OpenStack permet de créer des infrastructures de cloud privé et public. Au sein d’une organisation donnée, les équipes IT peuvent déployer l’infrastructure nécessaire pour de nouveaux projets, leurs systèmes de développement et de test et leurs environnements de production. Cela permet de réaffecter facilement les ressources de calcul en les regroupant en un pool utilisable quels que soient les besoins.

Autre exemple d’utilisation, ayant un fort impact sur le développement du projet lui-même : la virtualisation des fonctions réseau ou NFV (Network Function Virtualization). L’unification du matériel et les tentatives pour tout définir au niveau logiciel ne sont pas des problématiques réservées au datacenter, notamment pour les aspects de stockage ou de réseau software-defined. Cette tendance progresse en effet de façon très dynamique dans le domaine des équipements de télécommunication spécialisés et dédiés. De nombreux fournisseurs, qui peinent à survivre sur le marché en proposant des versions virtuelles de leur matériel, l’ont compris. Par sa flexibilité, OpenStack est la plateforme privilégiée pour les initiatives NFV (Network Function Virtualization). Les exemples précités des utilisations possibles d’OpenStack ne sont pas exhaustifs. Le développement du projet se poursuit et contribuera assurément à la création de nombreuses autres solutions innovantes.

Comment installer et assurer la maintenance d’OpenStack en environnement de production ?

Avant d’envisager de déployer OpenStack dans une organisation, il est vital de faire un état des lieux détaillé de l’environnement IT avec un classement de tous les workloads. Puis d’inclure dans ce descriptif les aspects centraux de la sécurité du cloud (réglementations, lois de protection des données et de la vie privée), la connectivité et la dépendance vis-à-vis d’autres applications, et enfin les considérations spécifiques aux applications, l’évolutivité et la haute disponibilité de l’architecture. Est-ce que l’évolutivité horizontale de l’application garantie la haute disponibilité sur des nœuds sans état pour toutes les couches ?

Tels est le genre de questions auxquelles chaque responsable de projet IT doit répondre avant de commencer à déployer OpenStack. Et elles seront plus nombreuses selon le type de société, l’infrastructure IT en place, le budget et la culture. Les professionnels avaient coutume de dire que l’échec de la planification équivaut à la planification de l'échec. C’est tout à fait vrai pour le déploiement d’OpenStack.

L’architecture modulaire d’OpenStack nécessite, pour le processus d’implémentation, que de multiples composants, indépendants mais étroitement intégrés entre eux, soient assemblés. Naturellement, chaque module est directement connecté à Linux dès son lancement. OpenStack Juno compte 650 dépendances et conditions : librairies, composants de pile et leurs versions dont il faut vérifier qu’ils assurent la stabilité de fonctionnement de la plateforme. S’il est relativement simple d’installer et de lancer l’actuelle version logicielle, c’est moins vrai, généralement, pour les opérations futures de maintenance, le déploiement des mises à jour et les modifications. Il est donc très important de choisir une plateforme d’exploitation qui garantira la stabilité durable et la fluidité de maintenance future. Il est également crucial de sélectionner un fournisseur expérimenté qui apportera un niveau de support et des outils appropriés.

Les méthodes d’installation d’OpenStack relèvent généralement de trois grandes catégories : test, passage en production, et installation manuelle.

Le premier type d’installation vaut pour les projets pilotes et les petits tests fonctionnels. Une telle installation peut être réalisée facilement avec PackStack ou des outils similaires qui, en fonction du fichier de réponse pré-arrangé, installent automatiquement le logiciel sur tous les nœuds. Avec cette méthode, OpenStack peut être déployé en quelques heures.

Le second type est celui de l’installation de production qui garantit la haute disponibilité des services et des API. Cette installation peut être pilotée à partir de solutions proposant des capacités d’orchestration live des futures mises à jour et mises à niveau de l’installation, ce qui a toujours été compliqué avec les précédentes versions d’OpenStack.

La troisième méthode, celle du déploiement en ligne de commande, peut être utile à des fins éducatives. C’est l’option la plus difficile qui permet d’avoir un point de vue détaillé de la technologie et d’implémenter des configurations sur-mesure à plus grande échelle. Chaque module délivre un fichier de commandes, utilisable comme on l’entend du moment que l’on comprend les principes de fonctionnement des composants spécifiques de l’environnement.

Bien entendu, ce ne sont que quelques exemples, étant donné le très grand nombre des méthodes d’installation envisageables. Vous pouvez décider d’utiliser TripleO (OpenStack On OpenStack) ou les solutions d’autres fournisseurs. Il peut être également intéressant de lancer le nœud du contrôleur sur une machine virtuelle traditionnelle en cluster. Ainsi, il n’est pas nécessaire de configurer les services spécifiques de l’application en mode de haute disponibilité. La solution devient à la fois simple et tolérante aux pannes.

Enfin, au moment de planifier l’installation d’OpenStack, il ne faut pas oublier les sous-systèmes de stockage et l’environnement réseau. Ces technologies doivent normalement s’aligner sur la dynamique et l’évolutivité globale de la plateforme. Ceph, le sous-système de stockage software-defined, est une solution idéale dans ce contexte. Il délivre deux API basiques dont OpenStack a besoin : mémoire d’objet (Swift ou S3) et mémoire binaire (RBD) qui est utilisée par d’autres modules comme Cinder et Nova.

Pour finir... Il ne faut pas oublier qu’OpenStack dépend de la distribution Linux sur laquelle il est installé pour le bon fonctionnement de tous les services, les performances globales du système et la sécurité des données. Les entreprises ne doivent donc pas uniquement choisir la distribution OpenStack mais aussi la plateforme Linux sur laquelle opérer le déploiement. Plutôt que de faire une sélection des versions de la communauté, il est recommandé de privilégier des solutions stables, comme pour la distribution Linux d’entreprise. Choisissez un fournisseur dont vous pourrez compter sur le support à long terme pour l’implémentation, la maintenance et le développement futurs de votre cloud. Ce fournisseur devra pouvoir vous accompagner dans l’élaboration de votre stratégie de transformation IT sur le long terme en mettant à votre disposition des technologies intégrées au niveau des couches IaaS, PaaS et de sécurité, avec une plateforme d’administration cohérente pour tout l’environnement.