Apache Libcloud : Qu’est-ce que c’est ? À quoi ça sert ?

-
3
 m de lecture
-

Le cloud computing est une évolution technologique exceptionnelle, mais non sans complexité pour les développeurs. Gérer les multiples ressources et les différences d’API et de fonctionnalités peut se transformer en casse-tête interminable et chronophage.

Apache Libcloud est une bibliothèque Python open-source utile aux développeurs pour cacher les différences entre les APIs des différents services cloud comme Amazon, Rackspace, GoGrid, IBM Cloud ou encore Linode. Une API simple et unifiée rend le déploiement sur le cloud plus intuitif.

En 2009, la bibliothèque Libcloud est intégrée à l’incubateur Apache. Le code avait été conçu par des développeurs de Cloudkick (aujourd’hui racheté par Rackspace). Ensuite, d’autres développeurs d’entreprises comme IBM ou Linode ont ajouté des améliorations à ce code.

Un comité de gestion de projet a été mis en place afin d’optimiser le développement du code : Apache en a fait un projet prioritaire de sa fondation. Mais alors, à quoi sert Apache Libcloud ? Comment cette bibliothèque Python fonctionne-t-elle ? Comment l’installer et l’utiliser ? Réponses à toutes vos questions dans cet article.

Qu’est-ce qu’Apache Libcloud ?

Apache Libcloud est une bibliothèque open-source Python conçue pour interagir avec différents services cloud comme Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP) et bien d’autres encore. N’apprenez plus les spécificités de chaque service et leurs APIs : Apache Libloud permet d’utiliser la même API pour gérer les différentes ressources de cloud. Vous utilisez donc une seule et même interface pour gérer plus de 30 services cloud.

Comment fonctionne Apache Libcloud ?

Le principal atout d’Apache Libcloud est son API unifiée. En effet, Libcloud offre une API unique pour communiquer avec les différents services cloud. Les développeurs peuvent donc utiliser les mêmes méthodes d’API, indépendamment du fournisseur cloud. Cela entraîne un gain de temps considérable et une simplification du processus de développement. 

Cette API unifiée fonctionne grâce à des éléments-clés de Libcloud nommés « drivers« . Ces drivers sont des adaptateurs entre l’API unifiée et les APIs de chaque service cloud. Libcloud ne propose pas toutes les fonctionnalités du fournisseur. Néanmoins, elle inclut les principaux outils : créer, rebooter, lister ou détruire des entités. Les utilisateurs peuvent donc éviter le verrouillage des fournisseurs (le fameux « vendor lock-in« ).

Les avantages d’Apache Libcloud

Apache Libcloud vient résoudre un problème commun à tous développeurs souhaitant déployer des applications dans le cloud : les différences dans les API de chaque fournisseur. En effaçant cet aspect complexe et chronophage, cette bibliothèque Python aide les développeurs à se concentrer sur d’autres aspects de leur métier plus important pour leur entreprise, plutôt que dédier du temps aux détails d’implémentation au sein de chaque service cloud. 

Un autre avantage majeur de Libcloud est sa flexibilité et sa portabilité. En effet, il est possible de modifier des entités sur le cloud à travers l’API unique, sans passer sur chaque service. À l’heure du DevOps et de l’automatisation du déploiement, cette fonctionnalité accélère le processus des opérations.

Enfin, le projet bénéficie d’une communauté active de développeurs contribuant à ajouter de nouvelles fonctionnalités et de nouveaux drivers. La bibliothèque reste donc constamment à jour et continue à répondre aux exigences du cloud computing.

Comment installer et utiliser Apache Libcloud ?

Libcloud est disponible sur PyPi. Vous pouvez installer la dernière version en utilisant la commande pip : 

pip install apache-libcloud

Vous pouvez aussi installer la dernière version en développement depuis le Git Repository d’Apache : 

pip install -e git+https://git.apache.org/repos/asf/libcloud.git@trunk#egg=apache-libcloud

Pour mettre à jour la bibliothèque : 

pip install --upgrade apache-libcloud

Pour utiliser la bibliothèque Apache Libcloud, voici un workflow standard à suivre pour travailler avec tous les drivers Libcloud.

Étape 1 : obtenir la référence du driver du fournisseur

from pprint import pprint

import libcloud

cls = libcloud.get_driver(libcloud.DriverType.COMPUTE, libcloud.DriverType.COMPUTE.RACKSPACE)

Étape 2 : initialiser le driver avec les identifiants de votre fournisseur

driver = cls('my username', 'my api key')

Gardez à l’esprit que certains drivers demandent des éléments supplémentaires comme « region » ou « api_version ». Pensez à jeter un œil à la documentation du fournisseur.

Étape 3 : utiliser le driver

pprint(driver.list_sizes())
pprint(driver.list_nodes())

Étape 4 : assembler le code

from pprint import pprint

import libcloud

cls = libcloud.get_driver(libcloud.DriverType.COMPUTE, libcloud.DriverType.COMPUTE.RACKSPACE)

driver = cls('my username', 'my api key')

pprint(driver.list_sizes())
pprint(driver.list_nodes())

Lorsque ce workflow est bien compris, vous pouvez lire les différentes documentations sur les APIs par lesquelles vous êtes intéressé.

Apache Libcloud en bref

Apache Libcloud est une bibliothèque Python permettant d’utiliser une API unique pour communiquer et déployer son code dans tous les services cloud. Grâce à des drivers et son API unique, les développeurs gagnent un temps considérable. Ils peuvent utiliser certaines fonctionnalités comme la modification du code ou la suppression d’entités et bénéficient d’une communauté active autour du projet. L’installation et l’utilisation simple de Libcloud sont des atouts pour les équipes tech des entreprises.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?