22 Le cloud et les développeurs 8 février 2010 François TONIC Historien, journaliste, rédacteur en chef cloudmagazine.fr / Programmez!
33 Agenda de la session Le cloud : les différentes couches Définitions, architectures, approches Le cloud et le développeur API, plate-formes, sécurités, pourquoi choisir son cloud ? Le prix du cloud Le cloud, linteropérabilité et le développeur…
44 Cloud : les différentes couches
55 Le cloud : les couches « primaires »
66 Le cloud : « les couches primaires » Infrastructure as a Service : couche bas niveau. Cest linfrastructure du cloud : outils serveurs, administrations, fonctions réseaux (load balacing, firewall, etc.). Exemple : Amazon EC2, VMware et Ubuntu pour systèmes et outils Platform as a Service : cest la plate-forme dexécution. Il possède différentes couches : authentification, API… Exemple : Azure, Google App Engine, force.com IaaS SaaS PaaS
77 Le cloud : « les couches primaires » Software as a Service : logiciel ou fonction sous forme dun service accessible via le web. Le Saas sexécute sur un PaaS. Successeur des logiciels ASP. On dispose de API, librairies. Exemple : saleforce, Cegid, etc. Tout Saas est du Cloud mais tout Cloud nest pas du Saas. Et on passe dans le navigateur IaaS SaaS PaaS
88 Le cloud : les différents cloud A cela sajoute : le cloud communautaire Cloud privé Cloud hybride Cloud public Dans le cloud, il faut distinguer différents types de cloud. Même si cela nimpacte pas directement le développeur (pas toujours), il faut faire le distinguo, certains pour le DSI, ladministration.
99 Le cloud : les différents cloud Cloud privé : opéré par une organisation et cette infrastructure peut être ou non déployée localisation comme les serveurs actuels Cloud public : partager auprès du « public » une infrastructure, celle-ci est propriétaire du fournisseur Cloud hybride (ou mixte) : plate-forme de fédérations entre plusieurs entités ou partageant des services cloud Cloud communataire : il sagit de partager un objectif, un but entre plusieurs organisations ayant un but commun
10 Cloud et le développeur
11 Cloud et développeur Le développeur doit faire un choix ! Le cloud choisi impose souvent de facto des méthodes, des fonctions, des limitations, des API Aujourdhui, aucun cloud ne propose une plate- forme comme le desktop, le serveur = pas aussi complet Il faut choisir le plus adapter, ou le moins « pire » Il faut éviter tout sectarisme dans ce choix Pas dillusion : choisir cest senfermer !
12 Cloud et développeur Il faut choisir mais comment : Quest-ce que je veux faire De quoi à besoin mon application Avec quoi et sur quel langage je veux développer Il existe des différences entre chaque cloud. Il faut comparer ce qui est comparable. Paas, Iaas, Saas : le développeur sy perd ! Amazon Web Services / EC2 na pas le même niveau dAPI, de personnalisation quun Azure mais nous avons deux niveaux de cloud : un Iaas et un Paas !
13
14
15
16 Cloud et développeur : le choix Bref, Il ne faut pas se tromper de niveau de cloud Entre plusieurs fournisseurs, il faut choisir Le choix enferme le développeur, lentreprise ! Au-dessus des développeurs, il y a la tarification, linterop, la sécurité, la disponibilité, etc. Constat : le cloud nest pas simple et na rien de trivial !
17 Cloud et développeur : le prix Choisir cest bien, mais que me coûte un cloud ? Il faut ABSOLUMENT sen préoccuper avant tout choix, tout développement : Le cloud nest pas gratuit Il faut considérer les coûts visibles et les coûts cachés La tarification du cloud est compliquée et complexe Mais le prix du cloud sadapte à votre besoin !
18 Cloud et développeur : API Chaque plate-forme possède sa panoplie doutils, de librairies, de fonctions, dAPI. Il existe des différences importantes entre chaque offre. Il faut les connaître, les considérer dans son choix Un développeur.Net ne pourra pas exploiter lensemble du framework.Net dans Azure : pas WPF, exception si écriture dans le registre, mais le framework reste le même
19 Cloud et développeur : API Azure : différents niveaux doutils SQL Azure, Azure Storage : storage et traitement des données AppFabric : anciennement.Net Services. Est là pour aider le développeur à connecter et les services dans le cloud ou sur un modèle S+S. Fonctionne avec les applications Azure, tournant sous Server 2008 et les applications non.Net / Windows comme Java, Ruby, PHP. On dispose différents SDK pour les différents langages Et des SDK nécessaires (et outils) pour Visual Studio et Eclipse
20 Cloud et développeur : API Le modèle de développement est important Azure propose un modèle de développement reprenant le modèle.Net sur le développement et les outils Il ne faut pas que le cloud casse vos habitudes même sil faut vous adapter Azure AppFabric : la pierre angulaire Doit aider le développeur à concevoir les applications, à adapter les applications pour le cloud et le S+S Dispose de différents « services »
21
22 Cloud et développeur : AppFabric La partie « Service Bus » Pour sécuriser les connexions entre les services et les applications tout en assurant le passage des pare-feux et les sécurités réseaux Il doit assurer une fonction « annuaire » et de découverte des services à limage dun UDDI Rôle vital car il assure la connexion application – SQL Azure Permet de créer des applications composites et S+S Supporte REST, http Access Propose un mécanisme de contrôle daccès Etc.
23 Cloud et développeur : AppFabric Mais il faut aussi considérer AppFabric au-delà dAzure Cest du cloud mais aussi du serveur classique avec Windows Server 2008 AppFabric ! AppFabric sera alors sur son serveur Windows tournant avec IIS et utilisant WCF, Workflow Foundation et ASP.Net Bref, il ne faut pas uniquement voir le cloud Azure uniquement dans sa dimension cloud
24 Cloud et développeur : suite Attention aux limitations : Azure Storage vs SQL Azure Azure Storage nest pas relationnel, mais assure le stockage de tables, de blob, les services queues. On dispose de tables à forte montée en charge grâce aux entités et le blob peut recevoir jusquà 50 Go de données ! Azure Storage et le queue storage : pas de debug possible ! AppFabric doit faciliter et pallier aux lacunes… mais finalement lusage de Azure Storage et de SQL Azure nest pas identique
25 Cloud et développeur : SQL Azure SQL Azure avoir un SQL Server dans le cloud mais avec des limitations quil faut considérer : Fonctions Transact SQL limitées pas de CLR, pas de mirroring. Mais on dispose des procédures stockées, des transactions, etc. On dispose en fait dun sous ensemble de Transact-SQL. Sur ladministration, certaines fonctions sont automatiques comme la réplication et on ne contrôle pas les ressources physiques de SQL Azure Mais : accès http/REST dans pas limité à.Net ! Et 100 To de stockage !
26 Cloud et développeur : AppEngine Si on regarde Google App Engine Uniquement en Python et Java Google dit « beaucoup de frameworks fonctionnent avec App Engine, mais dautres non et dautres peuvent nécessiter des modification » : aux développeurs de savoir lesquels pas décriture local des fichiers Création de threads très limités Pas de support de Java EE Stockage de données assez limité. Par contre compatible MacOS, Windows, Linux pour le SDK
27 Cloud et développeur : Spring CloudFoundry de SpringSource permet de : Déploiement et administration des applications Java, Spring et Grails sur Amazon EC2 ou VMware Permet dutiliser « facilement » Apache, MySQL… repose sur Cloud Tools Cloud Tools permet de : Dadapter et de déployer les applis Java EE Gérer les instances Amazon et VMware
28 Cloud et développeur : au-delà Mais au-delà du simple choix, il faut aussi se poser les bonnes questions sur le cloud choisi : Les données sont-elles sécurités ? Qui peut accéder à mes données ? Ai-je un accès à toute heure à mes données ? Quand mon contrat avec le fournisseur prend fin, que se passe-t- il ? Ensuite, il y a les questions dinteropérabilité, de portabilité, de géolocalisation, etc. Il faut repenser son application, comprendre la logique cloud
29 Le prix du cloud !
30 Cloud et développeur : prix Il faut distinguer : La tarification de base : temps du compute, stockage, transaction, instance Localisation des centres de données services annexes : comme SQL Azure, la grandeur des instances, fonctions spécifiques… Chaque cloud a sa tarification Comment comparer plusieurs clouds sur le prix ? La tarification cloud est compliquée et est une jungle ! Quelques forfaits disponibles, packages de compute offert avec VS 2010 !
31 Comparaison de prix de cloud Tarifs simplifiés (en $ us) CloudAmazon EC2AzureGoogle AppEngine Instance petite Europe windows 0,12 / heure Données E/SGratuit / 0,15 Gb (10 premiers) 0,10 / 0,150,10 / 0,10 Stockage0,11 Gb0,15 Gb mois0,15 ( Gb) SQL Azure-À partir de 9,99 / mois - AppFabric-Access Control 1,99 ServiceBus 3,99 -
32 Cloud et développeur : prix Sur Amazon, à retenir : Windows plus cher que Linux Différences de prix entre US et Europe coût supplémentaire entre transferts de données entre plusieurs zones géographiques Divers suppléments possibles : blocs Amazon, Elastic IP, Load Balancing (pas standard)… Il faut aussi vérifier le niveau de disponibilité des services, les zones géographiques (pour les basculements dune zone à une autre par ex.)
33 Cloud et développeur : prix Calculez en prenant en compte lensemble des éléments de votre cloud : Bien lire les conditions et les multiples options possibles Microsoft propose une calculatrice (non garantie) pour calculer rapidement le coût de son cloud selon son projet, son application, ses besoins. Pratique et rapide ! Il nexiste pas de calculatrice universelle. CloudMagazine lance lidée, avis à la population !
34
35
36
37 Cloud et interopérabilité
38 Cloud et interop Tout cela nexiste pas ! Interop dans le cloud : quasiment absente Seuls des cloud de même nature, de caractéristiques identiques peuvent être interopérables initiatives très timides sur les formats dimages virtuels, les API La sécurité (désolé pas eu le temps den parler plus) est lexception Nayez aucune illusion aujourdhui ! Demain ? Pas beaucoup mieux ! Déploiement des applications partout Cloud ouvert et 100 % interop Cloud ouvert et 100 % interop Migration live des instances, données, applications
39 Cloud et interop Qui travaille dessus ? Les éditeurs Iaas, Paas, Saas travaillent dessus, souvent de leur côté pour assurer une interop sur leurs solutions OMG, SNIA, DMTF travaillent dessus : stockage, API, formats déchanges Une interop aujourdhui très limitée On a un cloud App Engine en open source Des plate-formes, API et outils compatibles Amazon EC2 Azure se veut interoperable avec PHP, Ruby, Java, avec support doutils comme Eclipse pour le SDK
40 Cloud et interop Une des questions : où doit se situer labstraction cloud et linterop ? Sur le bas niveau ou le haut niveau ? Pour lutilisateur et le développeur, labstraction doit être transparente et sans conséquence ! Idem pour les développements Choisir son cloud cest souvent : Senfermer et utiliser les API éditeurs voire tiers Impossible de migrer live une application, une image virtuelle par exemple dun Ubuntu Cloud ou App Engine vers Azure ou même Amazon EC2 Senfermer dans une plate-forme et évoluer avec Très peu dAPI « standards » disponibles : sauf les protocoles du web (soap, http, rest, xml…)
41
42
43 Q & A
Programmez! / programmez.com Et le parcours Cloud aux TechDays !
45 Merci !