java in ze cloud - insa - nov. 2012

60
Java in Ze Cloud Alexis Hassler 30 novembre 2012

Upload: alexis-hassler

Post on 15-May-2015

473 views

Category:

Technology


2 download

DESCRIPTION

Introduction au cloud et à son utilisation par les développeurs Java. Cours donné à l'INSA Lyon, le 30/11/2012

TRANSCRIPT

Page 1: Java in ze Cloud - INSA - nov. 2012

Java in Ze

Cloud

Alexis Hassler30 novembre 2012

Page 2: Java in ze Cloud - INSA - nov. 2012

@AlexisHassler

Développeur, formateur Java

Indépendant

Page 3: Java in ze Cloud - INSA - nov. 2012

@AlexisHassler

Co-leader du

Participant à cast-it.fr

Porteur d'eau à

Page 4: Java in ze Cloud - INSA - nov. 2012

Cloud Computing

?

Page 5: Java in ze Cloud - INSA - nov. 2012

J'ai besoin d'un nouveau serveur

Page 6: Java in ze Cloud - INSA - nov. 2012

Veuillez remplir le formulaire A38

en trois exemplaire

Page 7: Java in ze Cloud - INSA - nov. 2012

Commande du matériel

Branchement dans la salle serveur

Installation de l'OS

Installation des logiciels

Configuration de l'environnement (firewalls,...)

Page 8: Java in ze Cloud - INSA - nov. 2012

Virtualisation !

Accessible sur l'ensemble d'un réseau

Mutualisation des ressources

Page 9: Java in ze Cloud - INSA - nov. 2012

Externalisation

En libre-service à la demande

Accessible sur l'ensemble d'un réseau

Page 10: Java in ze Cloud - INSA - nov. 2012

Cloud Computing

En libre-service à la demande

Accessible sur l'ensemble d'un réseau

Mutualisation des ressources

Rapidement élastique

Mesurable

Page 11: Java in ze Cloud - INSA - nov. 2012

Niveaux de service

IaaSInfrastructure as a Service

PaaSPlatform as a Service

SaaSSoftware as a Service

Page 12: Java in ze Cloud - INSA - nov. 2012

SaaS

Vision utilisateur

– Fonctionnalités d'un logiciel (Mail, CRM, ERP,...)

– Pas d'installation, pas d'investissement

– Montée en charge simple

– Software as a Service

Page 13: Java in ze Cloud - INSA - nov. 2012

SaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Page 14: Java in ze Cloud - INSA - nov. 2012

IaaS

Vision sysadmin

– Ressources système

(processeur, mémoire, bande passante)

– Pas d'achat de machine

– Montée en charge simple

– Infrastructure as a Service

Page 15: Java in ze Cloud - INSA - nov. 2012

IaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Page 16: Java in ze Cloud - INSA - nov. 2012

AmazonAWS

Amazon EC2

– Elastic Compute Cloud

– Serveur virtuel

– Stockage sur Elastic Block Store (EBS)

● disque dur

– Monitoring

● Amazon CloudWatch

=> Cœur d’AWS

Page 17: Java in ze Cloud - INSA - nov. 2012

AmazonAWS

cf. http://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf

Page 18: Java in ze Cloud - INSA - nov. 2012

PaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Page 19: Java in ze Cloud - INSA - nov. 2012

PaaS

Page 20: Java in ze Cloud - INSA - nov. 2012

Cloubees

App Project

Deploy

DEV@cloud RUN@cloud

Elastic AppElastic App

Elastic AppSource Control

JenkinsBuild/Test

Push

Page 21: Java in ze Cloud - INSA - nov. 2012

Cloud

PaaSPlatform as a Service

SaaSSoftware as a Service

User

IaaSInfrastructure as a Service

Operations

Developer Integration

Page 22: Java in ze Cloud - INSA - nov. 2012

Développerpour lecloud

Page 23: Java in ze Cloud - INSA - nov. 2012

IaaS : contraintes et liberté

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Page 24: Java in ze Cloud - INSA - nov. 2012

Exemple d'architecture

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

MySQL

Linux

Java / Glassfish

Page 25: Java in ze Cloud - INSA - nov. 2012

Exemple d'architecture

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

SQL Server

Windows

.NET

Page 26: Java in ze Cloud - INSA - nov. 2012

Exemple d'architecture

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

MongoDB

Linux

Java / Netty

Page 27: Java in ze Cloud - INSA - nov. 2012

PaaS : modèles imposés

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Page 28: Java in ze Cloud - INSA - nov. 2012

Google App Engine

JavaSE limité

cf. GAE Sandbox

Web App (JSP, Servlet)

Datastore / Cloud SQL

Page 29: Java in ze Cloud - INSA - nov. 2012

GAE Sandbox

Ecrire sur le file system => Datastore

Ouvrir une socket ou accéder directement à un autre

=> URL fetch

Démarrer un sous-process ou un thread

Faire des appels système

Page 30: Java in ze Cloud - INSA - nov. 2012

CloudBees

Run@Cloud

JVM

Applications Server

PaaS tools

Page 31: Java in ze Cloud - INSA - nov. 2012

Java Web

Apache Tomcat

Java EE

Web Profile

JBoss AS 7

CloudBees

Page 32: Java in ze Cloud - INSA - nov. 2012

RedHat OpenShift

Java

JavaEE (Full Profile)

JBoss AS 7 / EAP 6

Maven

Node.js

Ruby

Python

PHP

Perl

Page 33: Java in ze Cloud - INSA - nov. 2012

PaaS extensibles

OpenShift DIY

Cloudbees ClickStarts

...

Page 34: Java in ze Cloud - INSA - nov. 2012

Outils du développeur

Page 35: Java in ze Cloud - INSA - nov. 2012

Outils du développeur

Page 36: Java in ze Cloud - INSA - nov. 2012

Outils du développeur

Page 37: Java in ze Cloud - INSA - nov. 2012

Outils du développeur

Page 38: Java in ze Cloud - INSA - nov. 2012

Outils du développeur

Page 39: Java in ze Cloud - INSA - nov. 2012

Outils du développeur

Page 40: Java in ze Cloud - INSA - nov. 2012

Déployerdans lecloud

Page 41: Java in ze Cloud - INSA - nov. 2012

Provisioning IaaS

Installer

Démarrer

Connecter

Déployer

Page 42: Java in ze Cloud - INSA - nov. 2012

Provisioning IaaS

Installer

Démarrer

Connecter

Déployer

Console Web

Ligne de

commande (SDK)

API

Java, .NET, Ruby,...

Page 43: Java in ze Cloud - INSA - nov. 2012

Provisioning IaaS

Machine

Images de machine

Stockage (local)

Services annexes

Page 44: Java in ze Cloud - INSA - nov. 2012

Déploiement IaaS

Transfert

Implantation

Configuration

ssh

scp, ftp,...

Outils du serveur

d'applications

Page 45: Java in ze Cloud - INSA - nov. 2012

Provisioning PaaS

Installer

Démarrer

Connecter

Déployer

Page 46: Java in ze Cloud - INSA - nov. 2012

Provisioning PaaS

Installer

Démarrer

Connecter

Déployer

Console Web

Ligne de

commande (SDK)

API

Java, .NET, Ruby,...

Page 47: Java in ze Cloud - INSA - nov. 2012

Déploiement PaaS

Transfert

Implantation

Configuration

Console Web

Ligne de

commande (SDK)

API

Page 48: Java in ze Cloud - INSA - nov. 2012

Déploiement CloudBees

$ bees app:deploy ^

--appid=sewatech/swmsg-web ^

--type=jboss ^ message-web/target/swmsg-web.war

Page 49: Java in ze Cloud - INSA - nov. 2012

Déploiement CloudBees

Page 50: Java in ze Cloud - INSA - nov. 2012

Déploiement CloudBees

String appId = "sewatech/swmsg";

String description = "Application Démo";

String archivePath = "wsmvn/message-web/target/swmsg-web.war";

String archiveType = "war";

boolean deltaUpload = true;

Map<String, String> parameters = new HashMap<>();

parameters.put("containerType", "jboss");

client.applicationDeployArchive(appId, null,

description, archivePath,

null, archiveType,

deltaUpload, parameters, null);

Page 51: Java in ze Cloud - INSA - nov. 2012

Déploiement Heroku

$ heroku create

Creating ...

Git remote heroku added

$ git push heroku master

Page 52: Java in ze Cloud - INSA - nov. 2012

Synthèse

Page 53: Java in ze Cloud - INSA - nov. 2012

Gains

Souplesse

Scalabilité

Coût

Page 54: Java in ze Cloud - INSA - nov. 2012

Freins

Peurs

Coût

Sécurité

Social

Lois

Localisation des

données

Patriot Act

Page 55: Java in ze Cloud - INSA - nov. 2012

Cloud public / cloud privé

Public

Externalisation, partage des ressources

Privé

Ressources internes

Intermédiaire

Externalisation, ressources dédiées

Page 56: Java in ze Cloud - INSA - nov. 2012

Quel cloud pour quelles entreprises ?

CAC40

Cloud public

Cloud privé

IaaS / PaaS / SaaS

Startup

SaaS public

PaaS public

PaaS public

PaaS public

PaaS public

IaaS public

Page 57: Java in ze Cloud - INSA - nov. 2012

Démarrer

Amazon EC2 ............................ 0 €

Google App Engine ...................0 €

CloudBees ................................ 0 €

Heroku ...................................... 0 €

OpenShift ..................................0 €

Jelastic ......................................0 €

CloudFoundry ........................... 0 €

...

Page 58: Java in ze Cloud - INSA - nov. 2012

Cloud

PaaS

SaaSSoftware as a Service

IaaS

Page 59: Java in ze Cloud - INSA - nov. 2012

@AlexisHassler

http://alexis-hassler.com

[email protected]

http://sewatech.fr

http://www.slideshare.net/sewatech

Page 60: Java in ze Cloud - INSA - nov. 2012