460 likes | 562 Views
Le cloud et les développeurs. 8 février 2010 François TONIC Historien, journaliste, rédacteur en chef cloudmagazine.fr / Programmez!. Agenda de la session. Le cloud : les différentes couches Définitions, architectures, approches Le cloud et le développeur
E N D
Le cloud et les développeurs 8 février 2010 François TONICHistorien, journaliste, rédacteur en chefcloudmagazine.fr / Programmez!
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, l’interopérabilité et le développeur…
Le cloud : « les couches primaires » Infrastructure as a Service : couche bas niveau. C’est l’infrastructure du cloud : outils serveurs, administrations,fonctions réseaux (loadbalacing, firewall, etc.). Exemple : Amazon EC2, VMware et Ubuntu pour systèmes et outils Platform as a Service : c’est la plate-forme d’exécution. Il possède différentes couches : authentification, API… Exemple : Azure, Google AppEngine, force.com IaaS PaaS SaaS
Le cloud : « les couches primaires » Software as a Service : logiciel ou fonction sous forme d’un service accessible via le web. Le Saas s’exé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 n’est pas du Saas. Et on passe dans le navigateur IaaS PaaS SaaS
Le cloud : les différents cloud A cela s’ajoute : le cloud communautaire Dans le cloud, il faut distinguer différents types de cloud. Même si cela n’impacte pas directement le développeur (pas toujours), il faut faire le distinguo, certains pour le DSI, l’administration. Cloud privé Cloud public Cloud hybride
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 s’agit de partager un objectif, un but entre plusieurs organisations ayant un but commun
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 • Aujourd’hui, 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 d’illusion : choisir c’est s’enfermer !
Cloud et développeur • Il faut choisir mais comment : • Qu’est-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 s’y perd ! • Amazon Web Services / EC2 n’a pas le même niveau d’API, de personnalisation qu’un Azure mais nous avons deux niveaux de cloud : un Iaas et un Paas !
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, l’entreprise ! • Au-dessus des développeurs, il y a la tarification, l’interop, la sécurité, la disponibilité, etc. • Constat : le cloud n’est pas simple et n’a rien de trivial !
Cloud et développeur : le prix • Choisir c’est bien, mais que me coûte un cloud ? • Il faut ABSOLUMENT s’en préoccuper avant tout choix, tout développement : • Le cloud n’est 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 s’adapte à votre besoin !
Cloud et développeur : API • Chaque plate-forme possède sa panoplie d’outils, de librairies, de fonctions, d’API. • 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 l’ensemble du framework .Net dans Azure : pas WPF, exception si écriture dans le registre, mais le framework reste le même
Cloud et développeur : API • Azure : différents niveaux d’outils • 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
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 s’il 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 »
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 à l’image d’un 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 d’accès • Etc.
Cloud et développeur : AppFabric • Mais il faut aussi considérer AppFabric au-delà d’Azure • C’est 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, WorkflowFoundation et ASP.Net • Bref, il ne faut pas uniquement voir le cloud Azure uniquement dans sa dimension cloud
Cloud et développeur : suite • Attention aux limitations : Azure Storage vs SQL Azure • Azure Storage n’est 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 l’usage de Azure Storage et de SQL Azure n’est pas identique
Cloud et développeur : SQL Azure • SQL Azure avoir un SQL Server dans le cloud mais avec des limitations qu’il 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 d’un sous ensemble de Transact-SQL. • Sur l’administration, 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 !
Cloud et développeur : AppEngine • Si on regarde Google AppEngine • Uniquement en Python et Java • Google dit « beaucoup de frameworks fonctionnent avec AppEngine, mais d’autres non et d’autres 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
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 d’utiliser « facilement » Apache, MySQL… • repose sur Cloud Tools • Cloud Tools permet de : • D’adapter et de déployer les applis Java EE • Gérer les instances Amazon et VMware
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 d’interopérabilité, de portabilité, de géolocalisation, etc. • Il faut repenser son application, comprendre la logique cloud
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 !
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, LoadBalancing (pas standard)… • Il faut aussi vérifier le niveau de disponibilité des services, les zones géographiques (pour les basculements d’une zone à une autre par ex.)
Cloud et développeur : prix • Calculez en prenant en compte l’ensemble 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 n’existe pas de calculatrice universelle. CloudMagazine lance l’idée, avis à la population !
Cloud et interop • Tout cela n’existe 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 d’images virtuels, les API • La sécurité (désolé pas eu le temps d’en parler plus) est l’exception • N’ayez aucune illusion aujourd’hui ! Demain ? Pas beaucoup mieux ! Déploiement des applications partout Migration live des instances, données, applications Cloud ouvert et 100 % interop
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 aujourd’hui très limitée • On a un cloudAppEngine en open source • Des plate-formes, API et outils compatibles Amazon EC2 • Azure se veut interoperable avec PHP, Ruby, Java, avec support d’outils comme Eclipse pour le SDK
Cloud et interop • Une des questions : où doit se situer l’abstraction cloud et l’interop ? • Sur le bas niveau ou le haut niveau ? • Pour l’utilisateur et le développeur, l’abstraction doit être transparente et sans conséquence ! Idem pour les développements • Choisir son cloud c’est souvent : • S’enfermer et utiliser les API éditeurs voire tiers • Impossible de migrer live une application, une image virtuelle par exemple d’un Ubuntu Cloud ou AppEngine vers Azure ou même Amazon EC2 • S’enfermer dans une plate-forme et évoluer avec • Très peu d’API « standards » disponibles : sauf les protocoles du web (soap, http, rest, xml…)
www.cloudmagazine.frwww.azure.comhttp://blogs.developpeur.org/redo/Programmez! / programmez.comEt le parcours Cloud aux TechDays !