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 ?
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.