L accès aux Clouds (Académiques) C. Loomis, CTO, Co-founder, SixSq Ecole Cumulo NumBio 2015 (Aussois, France) 1-5 juin 2015
Le cloud : pourquoi et comment? 2
Les raisons variées pour utiliser un cloud Faire des tests avec un OS différent Windows, CentOS, Ubuntu, Utilisation d une application Galaxy, R-Studio, Obtenir des ressources pour un plate-forme Hadoop, Torque, Jenkins, Déploiement et gestion des services (multi-)cloud Pipeline applicative, 3
Les façons d accéder une infrastructure cloud Portail web Ligne de command (CLI) API $ stratus-describe-instance 4
Types des clouds 5
Infrastructure as a Service Presque toutes les clouds académiques (et les cloud commerciaux) utilisent les logiciels cloud Open Source. Ces logiciels permettent la création d une infrastructure cloud du type Infrastructure as a Service (IaaS). Machines virtuelles, stockage simple, pare-feu, 6
Les Actions : SCRUD Les portails web, commandes et APIs des clouds sont assez différentes Mais les modèles et sémantiques sont très similaires! search GET trouver les ressources cloud create POST créer un nouvelle ressource read GET afficher les informations update PUT mettre à jour les informations delete DELETE supprimer une ressources cloud 7
PaaS et SaaS PaaS : Platform as a Service Commerciaux : Ces plate-formes n ont pas eu un grand succès et ils ont muté vers un service du type IaaS. Académiques : Les plate-formes spécialisés pour faire l analyses des expériences SaaS : Software as a Service Commerciaux : Services comme Gmail, Doodle, DropBox et Facebook sont très populaires et très utilisés. Academiques : Les base de données scientifiques 8
Docker Les sémantiques et l utilisations sont presque identiques d un cloud du type IaaS. Le Hub est très similaire du StratusLab Marketplace. Docker utilise une technologie de virtualisation différente. Container : Plus léger, démarrage plus rapide, réseau partagé, moins sécurisé, Windows exclu Virtual Machines : Plus lourd, démarrage complète d un OS, réseau normal, plus sécurisé, Windows inclu 9
vcloud vcloud suite est une collection des outils commerciaux du VMware ESXi : hypervisor qui peut être utiliser gratuitement, comme KVM ou Xen vcloud : les logiciels pour créer un cloud complète, comme OpenStack ou CloudStack Bémols Très coûteux pour une infrastructure consequent L API est très complexe 10
Consoles Web 11
Consoles Web Presque toutes les logiciels clouds et les services clouds fournissent un console web qui permet controller la cycle de vie des ressources clouds (machine virtuelles, stockage, réseau, etc.). Avantages Aucune logiciel d installer (sauf un browser web) Très adapter aux utilisations simples Inconvénients Les utilisations fréquents ou habituelles sont pénibles Une interface différente pour chaque cloud 12
Console AWS (EC2) 13
Console Exoscale 14
Console Ultimum 15
Console StratusLab 16
Portails Personnalisées : IFB 17
Portails Personnalisées : IFB 18
Ligne de Commande 19
Ligne de Command Une interface de ligne de commande (CLI) est mieux adaptée aux utilisation fréquentes ou depuis les autres outils. Avantages Permet le scripting et l automatisation depuis un shell Souvent plus complet que un console web Inconvénients Peut être lent pour un service de production Doit traiter le sortie pour avoir les résultats 20
Actions SCRUD au Ligne de Commande OpenStack StratusLab search nova list stratus-describe-instance create nova boot stratus-run-instance read nova show stratus-describe-instance VMID update nova suspend delete nova delete stratus-kill-instance 21
APIs 22
APIs Une API est bien adaptée pour l intégration des ressources clouds dans une application ou un service. Avantages Peut être intégré dans les autres services L API expose toutes les fonctionnalités d un cloud Inconvénients Les APIs sont différentes pour chaque cloud (Compilation, réponse moins rapide, ) 23
Web Services Un standard pour définir les APIs qui permet les implémentations différentes (très souvent dans les langages différents) de marcher correctement ensemble WSDL (XML) code source Très RPC : focalisé sur les actions Inconvénients Extrêmement lourd L interoperabilité ne jamais marcher à 100% Nombre de langages de programmation très limité 24
REST Une API REST associe les ressources dans une service avec les URIs uniques. Les actions de base sont SCRUD. Focalisé sur les objects dans une modèle applicatif Utilisation d HTTP: POST, GET, PUT, DELETE Advantages Extrêmement léger L interoperabilité est garantie par l utilisation HTTP Les techniques pour la sécurité web sont réutilisées Toutes les langages inclus (même curl et browsers!) 25
REST L utilisation des APIs REST est une raison forte pour la succès du cloud. Permet le testing rapid des services Permet la programmation dans toutes les langages Encourage des bibliothèque spécialisé Facilite les interfaces graphique web Parce que toutes ces avantages presque toutes les services clouds fournissent une API REST de base. Mais toutes les APIs sont différentes! 26
APIs Standardisées 27
OCCI : Open Cloud Computing Interface Open Cloud Computing Interface OGF : Open Grid Forum http://occi-wg.org Ça vient principalement depuis la communauté académique en utilisant toutes les expériences avec les déploiements des infrastructures grilles. La principal implémentation est ROCCI : qui traduit les appels OCCI vers les APIs natives des clouds. 28
CIMI Cloud Infrastructure Management Interface (CIMI) DMTF : Distributed Management Task Force http://dmtf.org/standards/cloud Ça vient principalement depuis l industrie. Presque toutes les grandes boîtes informatique sont impliquées. Lié aux autres standards DMTF : OVF et CDMI. L implémentation principale est DeltaCloud du RedHat. 29
APIs Universelles 30
Libcloud Une bibliothèque en Python qui permet l utilisation des cloud différents avec un API uniforme. from libcloud.compute.types import Provider from libcloud.compute.providers import get_driver cls = get_driver(provider.rackspace) driver = cls( username, api key, region= iad ) sizes = driver.list_sizes() images = driver.list_images() size = [s for s in sizes if s.id == performance1-1 ][0] node = driver.create_node(name= libcloud, size=size, image=image) print(node) 31
jclouds Une bibliothèque en Java qui permet l utilisation des cloud différents avec un API uniforme. ComputeService compute = ContextBuilder.newBuilder( aws-ec2 ).credentials( identity, credential ).buildview(computeservicecontext.class).getcomputeservice(); Template template = compute.templatebuilder().osfamily(osfamily.ubuntu).minram(2048).options(inboundports(22, 80)).build(); compute.createnodesingroup( jclouds, 1, template); 32
Les Brokers Clouds 33
Qu est ce que un broker cloud? C est un service qui permet un utilisateur de Trouver un infrastructure cloud approprié pour son application Gérer la cycle de vie complète de l application Pouvoir fournir les informations sur l utilisation et les coûts 34
Compatible One Fonctionnalités Description des applications Sélection des infrastructures clouds API standardisée : OCCI Site web http://www.compatibleone.com/community Code source (Apache 2) https://github.com/compatibleone/accords-platform 35
SlipStream Fonctionnalités Description des applications Coordination de déploiement Gestion des applications (scaling, etc.) Site web http://sixsq.com/products/slipstream Code source (Apache 2) https://github.com/slipstream 36
Et beaucoup des autres Cloud Formation Ansible 37
38
Supported IaaS (Open Source) Physical 39
Supported IaaS (Proprietary) 40
In a Nutshell Open Source: Released under the Apache 2.0 license, giving you openness and transparency Professional: A dedicated team designs, develops, tests and supports SlipStream based solutions Multi-Cloud: A truly multi-cloud and cloud agnostic provisioning platform giving you freedom of choice, avoiding lock-in Multi-Tenant: Build for enterprise, with multi-tenancy support Automation: Built-in Enterprise App Store feature makes using SlipStream child's play, without compromising security Scalable: Used by distributed teams, with demanding workloads, means SlipStream will scale with your usage 41
Helix Nebula Marketplace (HNX) HNX 42
Expérience CERN avec SlipStream et HNX Une analysis réal de données du LHC au CERN pour l expérience ATLAS. Utilisation simultanée jusqu au 3000 VMs Plus que 35000 VMs utilisée dans 5 semaines 43
Résumé 44
Résumé Plusieurs façons d accéder les infrastructures clouds existent. Console ou portail web Ligne de commande APIs natives : normalement REST sur HTTP(S) APIs universelles : bibliothèque spécialisés Brokers Ces interfaces sont adaptées aux besoins différents et permettent l utilisation des cloud publique, privés et hybrides. 45