Cloud. Définition? 08/11/2012. James Urquhart The Wisdom of Clouds



Documents pareils
Cloud. Définition? 04/01/2015. James Urquhart The Wisdom of Clouds

Hébergement MMI SEMESTRE 4

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

Cloud et SOA La présence du Cloud révolutionne-t-elle l approche SOA?

Chapitre 4: Introduction au Cloud computing

Evolution des SI à l heure du Cloud

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

Web Tier : déploiement de servlets

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Architecture Orientée Service, JSON et API REST

Mise en œuvre des serveurs d application

Du Datacenter au Cloud Quels challenges? Quelles solutions? Christophe Dubos Architecte Microsoft

4. SERVICES WEB REST 46

Compte Rendu d intégration d application

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

LICENCE PROFESSIONNELLE

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

Open-cloud, où en est-on?

Cloud computing Votre informatique à la demande

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

BPEL Orchestration de Web Services

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE

Introduction aux «Services Web»

Premier Accelerate Packages: Azure Fast Start

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Cedric Dumoulin (C) The Java EE 7 Tutorial

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Systèmes Répartis. Pr. Slimane Bah, ing. PhD. Ecole Mohammadia d Ingénieurs. G. Informatique. Semaine Slimane.bah@emi.ac.ma

Conférence SIG 2011 Versailles 5-6 Octobre 2011 Atelier Technique ArcGIS for Server en 10.1

Architectures Web Services RESTful

Cloud Computing : Généralités & Concepts de base

Cloud Privé / Public / Hybrid. Romain QUINAT vente-privee.com

Notre Catalogue des Formations IT / 2015

Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus

Cloud Computing, Fondamentaux, Usage et solutions

Introduction aux. services web 2 / 2

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

Introduction aux applications réparties

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

PRODUCTS LIST (updated 11th January 2010)

Stéphane DERACO, DSI CNRS l Argos Devops : de l hyperviseur aux conteneurs l 11/12/2014 DOCKER

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Le Cloud: Mythe ou Réalité?

Création d une application JEE

1. Installation d'un serveur d'application JBoss:

Optimisation des niveaux de service dans le cadre de déploiements de Clouds publics

Business Process Execution Language

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

La tête dans les nuages

FOURNIR UN SERVICE DE BASE DE DONNÉES FLEXIBLE. Database as a Service (DBaaS)

Introduction au Cloud Computing

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Windows Azure. Principales fonctions

HÉBERGEMENT CLOUD & SERVICES MANAGÉS

Atelier numérique Développement économique de Courbevoie

Android et le Cloud Computing

LIVRE BLANC OCTOBRE CA Unified Infrastructure Management : architecture de la solution

ARCHITECTURE ET SYSTÈMES D'EXPLOITATIONS

BizTalk Server Principales fonctions

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Applications et Services WEB: Architecture REST

ICT7 Luxembourg. ICT7 Belgium. ICT7 France. 33 people. 12 people. 2 people

Le Cloud Computing et le SI : Offre et différentiateurs Microsoft

Séminaire Partenaires Esri France 6 et 7 juin 2012 Paris. ArcGIS et le Cloud. Gaëtan LAVENU

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Transformation vers le Cloud. Premier partenaire Cloud Builder certifié IBM, HP et VMware

WINDOWS AZURE ET LES ÉDITEURS DE LOGICIELS

Intégration de systèmes

Business & High Technology

les techniques d'extraction, les formulaires et intégration dans un site WEB

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Google Cloud Platform : Tour d horizon

Les nouvelles architectures des SI : Etat de l Art

Bases Java - Eclipse / Netbeans

Fiche Technique Windows Azure

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

EXALOGIC ELASTIC CLOUD MANAGEMENT

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Informatique en nuage Cloud Computing. G. Urvoy-Keller

1 JBoss Entreprise Middleware

Systèmes d'informations historique et mutations

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Cloud computing Architectures, services et risques

Cycle de conférences sur Cloud Computinget Virtualisation. Cloud Computing et Sécurité Pascal Sauliere, Architecte, Microsoft France

Architectures informatiques dans les nuages

Auto-évaluation Aperçu de l architecture Java EE

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

CloudBees AnyCloud : Valeur, Architecture et Technologie cloud pour l entreprise

Cloud Computing. 19 Octobre 2010 JC TAGGER

Le Cloud au LIG? Pierre Neyron PimLIG

Point sur les solutions de développement d apps pour les périphériques mobiles

Digital DNA Server. Serveur d authentification multi-facteurs par ADN du Numérique. L authentification de confiance

Section I: Le Contexte du DATA CENTER Pourquoi l AGILITE est Nécessaire dans le DataCenter

Messagerie asynchrone et Services Web

2 Chapitre 1 Introduction

Transcription:

Cloud Définition? the market seems to have come to the conclusion that cloud computing has a lot in common with obscenity--you may not be able to define it, but you ll know it when you see it James Urquhart The Wisdom of Clouds 1

Architecture Architecture IaaS: Infrastructure as a service Virtualisation d OS Le hardware est extensible et non géré Ex: amazon PaaS : platform as a service SaaS : software as a service 2

Architecture PaaS : platform as a service Déploiement d application dans env. extensible OS+serveur d application (glassfish, jboss, etc.) + couche persistance + API Ex: GAE, Windows Azure, openshift,etc. SaaS : software as a service Service proposés aux clients Types d architectures Cloud public: solutions de stockage et applications offertes au public par accès via Internet (Amazon, Microsoft, Google) Cloud communautaire: infrastructure partagée entre organisation. Gestion du Cloud en interne ou par tierce partie. Travail collaboratif Cloud hybride: composé de >1 clouds privés, communautaires ou privés. Offre l avantage de promouvoir plusieurs modèles de déploiements. Infrastructure interne+ externe => utilisation immédiate et locale et non dépendance à Internet. Evolutif en terme de taille via l architecture externe, Cloud privé: infrastructure privée uniquement à une seule organisation. Nécessité de gérer la partie infrastructure: virtualiser environnement Business, réévaluer les ressources existantes, les problèmes de sécurité à chaque modification. Perte des avantages liés au Clouds; flexibilité, évolutivité 3

Offres PaaS Open source: Année sponsors platteforme 2011 VMware Spring,Rails, sinatra, node.js 2011 Red hat Express-ruby, PHP, python, flex, jboss, java EE6 2009 WS02 Tomcat, jboss, java EE6 2012 Java EE6, tomcat, grails, scala, jruby Autres: Google GAE, Windows Azure, Amazon EC2, IBM Cloud, (en IAAS, la liste est longe, Atos, SFR, Colt, Joyent, GoGrid, etc.) Exemples temps d accès (juin 2012) 4

Aperçu de Windows Azure Mais vraiment un petit aperçu 5

Partie IaaS et SaaS non traitée (mais vous pouvez louer des VMs) PaaS avec types de services proposés très large: Langages: C# VB bien sur Python Java avec un serveur d application tel que tomcat ou autre PHP (voir en fin) Ruby,etc. Types d applications : Services Web SOAP, REST, plain/text, Sites web, applications en worker role Plusieurs types de services à louer (service bus et autres) Consoles d administration, analyse de performance, etc. 1 er découpage architectural VMs serveurs blobs sont l'équivalent de fichiers blob permet de stocker un fichier et un ensemble de méta données Table représente un ensemble d'entités. Ces tables sont non relationnelles, Queue permettre aux développeurs de gérer des communications asynchrones entre différents composants un Role va écrire dans une queue, et un autre lire les données écrites précédemment. Drive permet de configurer l'équivalent d'un disque virtuel 6

SQL Azure Basé sur SQL Server Windows Azure Platform AppFabric Service Bus permet d'exposer des services simplement, le bus se chargeant du routage des requêtes vers le service concerné. Acces control: permet de gérer l'accès au Service Bus suivant des mécanismes standards tels que OAuth et les Simple Web Tokens (SWT) pour les services REST, ou encore des mécanismes à base de revendications de type SAML, WS-Federation et WS-Trust pour l'accès à des services SOAP Composite App Service et Composition Model fournissent un environnement de développement pour faciliter la création, la gestion et le déploiement d'applications composites. 7

Les possibilités offertes par ServiceBus sont nombreuses: Ex: Utiliser une FIFO pour la réception de messages https://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-queues/ Permet un envoi de messages de façon asynchrone: lecture asynchrone, le sender n a pas { attendre une réponse. ServiceBus, d autres possibilités: Relay messaging: Utilisation d un relay entre entités Possibilité de construire des applications hybrides déployées dans Windows Azure ou autre Sécurisation de l ensemble via le relay https://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-relay/ 8

ServiceBus, d autres possibilités: Brokered messaging: stockage intermédiaire de haut capacité et durable des messages peuvent être stockés et traités les deux extrémités peuvent être complétement hétérogène en terme de puissance Elles peuvent être en ligne ou non D autres paradigmes (Windows Azure) Rôles d applications avec commutation de rôles: web role : service ou appli Web worker role : démons persistant qui peut recevoir des données d une autre appli Chaque application est un composant (couche appfabric assure la connectivité) 9

D autres paradigmes (Web et worker roles) Web Role: Application pour Requètes / réponses sur HTTP (pages, WCF Web service configurés par basichttpbinding, etc.) Worker role: Application de type service fonctionnant en tache de fond. N accepte pas de requète de l extérieur Web roles et worker roles peuvent dialoguer ensemble via des objets Queues: classiquement worker produit des données, le web role les lits { la demande de l utilisateur et produit un affichage D autres paradigmes (Web et worker roles) Une application peut changer d état! Un Web service a généralement un Web role mais peut également être implanté en worker role Web roles et worker roles peuvent être placés dans des VM roles (distribution manuelle sur des VM différentes) 10

D autres paradigmes (Windows Azure) Un worker role contient en plus un méthode run() Sécurité : Par AppFabric Access control service => propose WS-Trust, HTTPS, token, Envoi multicast Buffer partagé de type fifo : pour effectuer des partages de données rapidement 11

Implantation de services Utilisation de WCF services: Depuis.Net 3.0, Microsoft propose un nouveau framework de programmation orienté SOA: WCF WCF: Windows Communication Foundation: framework pour création d applications orientées service sur HTTP Utilisation très simple Envois asynchrones possible Exposition en plain/text, Rest, SOAP, etc. Ex en c# (new projet / WCF / WCF library) Définition de l interface du service (Contrat et OperationContrat) => Fichier nom_de_la_classe 12

Ex en c# (new projet / WCF / WCF library) Implantation du service => Fichier nom_de_la_classe Ex en c# (new projet / WCF / WCF library) Configuration du contrat: 13

Utilisation de PHP possible http://azurephp.interoperabilitybridges.com/tutorials Utilisation de IIS (installation manuelle ou automatique) API de développement pour manipuler SQL Azure (blobs, queues, etc.) Outils d analyse de performance Exemple: http://msdn.microsoft.com/en-us/library/windowsazure /gg651130.aspx Création du service : Définition de l interface et définition du code 14

Exemple: http://msdn.microsoft.com/en-us/library/windowsazure /gg651130.aspx Création Client : Ajout d une référence (comme sur Netbeans), génération de squelettes et complétion du code généré dans Program.cs Appel 15

Introduction à GAE (google App Engine) PaaS Google App engine Service d exécution en Python, Java, Go Actuellement gratuit pour une appli avec accès < 5millions/mois Types d applications : servlet/jsp, services Web en Rest, app GWT Plusieurs librairies Java supportées mais pas toutes Implantation JAX-RS Jersey supportée Authentification : classe userservice pour phase de login Émulé en local Utilise Google account en déployé 16

PaaS Google App engine Des limitations: Pas de connexion TCP Connexion URLConnect pour effectuer des appels entre pl. servlets Pas de création de threads, de processus Timeouts limités Quota Lent (2012) PaaS Google App engine D autres paradigmes?: Persistance sous forme d objet (pas d SQL, MAP multidimensionnelle) 3 api : JDO, JPA et une api de bas niveau Def d une classe avec des annotations @persistantcapable, @primarykey, @persistent Rendre persistant : méthode makepersistent (object) Cache mémoire (sorte de buffer) avec méthode de type get, put avec clé Mais aussi envoi d email, appels distant (api url fetch),etc. 17

PaaS Google App engine Installation avec Eclipse http://code.google.com/eclipse/docs/getting_started.html Ajouter plugin et sdk Créer une application, et la déployer http://code.google.com/eclipse/docs/getting_started.html http://code.google.com/appengine/docs/java/overview.html Pour déployer une application web, il est nécéssaire de créer une application dans la console google https://appengine.google.com/ => fournir un id Déploiement aussi en local et appel avec http://localhost:8888/ GAE, création d une application => Id unique nécessaire pour le déploiement 18

GAE, portail GAE, portail Appel d une application web sur votre env: http://version.id_app.appspot.com/nom_servlet ou ws ex: http://1.ssalva-test.appspot.com/gae_restws 19

GAE, plugin Eclipse https://developers.google.com/appengine/do cs/java/tools/uploadinganapp GAE, test de l application en local http://localhost:8888/_ah/admin => console d administration locale (affichage du blob de données, des services, etc.) http://localhost:8888/mon_servlet ou service 20

PaaS Google App engine Gestion de la persistance => «nosql» Pas de base de données mais des objets stockés dans une map DataStore Utilisation de Java Data Objects (JDO) is a standard interface for storing objects containing data into a database Langage sql JDOQL Transactions (plusieurs opération à la fois) qui fonctionnent toutes ou qui sont toutes refusées Définifition des interfaces par mot clés et classes Stockage avec makepersistent Appel par clés pour par JDOQL (sql pour jdo) PaaS Google App engine Exemple Accès aux données (eclipse) import com.google.appengine.api.datastore.key; import java.util.date; import javax.jdo.annotations.idgeneratorstrategy; import javax.jdo.annotations.persistencecapable; import javax.jdo.annotations.persistent; import javax.jdo.annotations.primarykey; @PersistenceCapable public class Employee { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key key; @Persistent private String firstname; 21

PaaS Google App engine @Persistent private String lastname; @Persistent private Date hiredate; public Employee(String firstname, String lastname, Date hiredate) { this.firstname = firstname; this.lastname = lastname; this.hiredate = hiredate; } // Accessors for the fields. JDO doesn't use these, but your application does. public Key getkey() { return key; } public String getfirstname() { return firstname; } //... other accessors... } PaaS Google App engine Interaction avec le Datastore via une factory PersistenceManagerFactory import javax.jdo.jdohelper; import javax.jdo.persistencemanagerfactory; public final class PMF { private static final PersistenceManagerFactory pmfinstance = JDOHelper.getPersistenceManagerFactory("transactions-optional"); private PMF() {} } public static PersistenceManagerFactory get() { return pmfinstance; } 22

PaaS Google App engine Servlet simple pour ajout et lecture d employés: import java.io.ioexception; import javax.servlet.http.*; import ess.employee; import ess.pmf; import java.util.date; import javax.jdo.jdohelper; import javax.jdo.persistencemanager; import javax.jdo.persistencemanagerfactory; import java.util.list; @SuppressWarnings("serial") public class EssaisServlet extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse resp) throws IOException { resp.setcontenttype("text/plain"); resp.getwriter().println("hello, world"); PaaS Google App engine ///adding data Employee employee = new Employee("Alfred", "Smith", new Date()); PersistenceManager pm = PMF.get().getPersistenceManager(); try { pm.makepersistent(employee); //reading data String query = "select from " + Employee.class.getName() + " where lastname == 'Smith'"; List<Employee> employees = (List<Employee>) pm.newquery(query).execute(); try{ resp.getwriter().println(employees.get(0).tostring()); resp.getwriter().println(employees.get(0).getfirstname()); } catch(exception e){resp.getwriter().println("no employee");} } finally { pm.close(); } } } 23

GAE, test de l application en local http://localhost:8888/_ah/admin => console d administration locale (affichage du blob de données, des services, etc.) http://localhost:8888/mon_servlet ou service PaaS Google App engine Déploiement d une application: 1. Dans GAE, à la page "My Applications" créer une nouvelle application 2. Modifier le fichier appengine-web.xml pour donner l id de votre application dans votre projet: <application>your-app-id</application> ou l indiquer dans propriété de projet (Eclipse,etc.) 24

PaaS Google App engine Déploiement d un service Rest Jersey (eclipse): Créer un projet Google App Engine project, Ajouter les lib de Jersey dans le projet Implanter un WS: package com.dclonline.jerseytest; import javax.ws.rs.get; import javax.ws.rs.path; import javax.ws.rs.produces; @Path("/helloworld") public class HelloWorldResources { @GET @Produces("text/plain") public String getclichedmessage() { }} return "Hello World"; PaaS Google App engine Modifier Web.xml Nom du service Nom du package englobant le SW 25

Choregraphie, orchestration? Orchestration des services Lorsqu un service web coordonne d autres services Par des processus BPEL (processus écrit en XML qui décrit comment interagissent les WS suivant des stimuli extérieurs) Besoin d un serveur qui exécute les processus BPEL la gestion des erreurs doit être gérée par le processus (mécanisme de replis, re-exécution du processus) Langage de programmation de processus mais aussi interface graphique (boites) 26

Chorégraphie de services Chaque service web mêlée dans la chorégraphie connaît exactement quand ses opérations doivent être exécutées et avec qui l interaction doit avoir lieu. Description des interactions de service uniquement de pair à pair Pas de processus, chaque service connait les actions à effectuer par rapport aux messages reçus Langage en XML WS-CL ou WSCI Definition des partenaires Utilisation de variables, assignation de valeurs (assign) Activités basiques (invoque, receive, reply, wait, throw) Activités structurés (while, switch, sequence,pick(temporisation) Correlation = session Scope découpage d un processus en plusieurs parties Pl. handler possibles par scope (conpensation, fault, event ) 27

Avec ActiveBPEL Avec ActiveBPEL 28

Avec ActiveBPEL Le pick pl. moteurs Websphere,bpel process manager,biztalk, bpelmaestro Activebpel,pxe, twister 29