java in ze cloud - insa - nov. 2012

Post on 15-May-2015

473 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Java in Ze

Cloud

Alexis Hassler30 novembre 2012

@AlexisHassler

Développeur, formateur Java

Indépendant

@AlexisHassler

Co-leader du

Participant à cast-it.fr

Porteur d'eau à

Cloud Computing

?

J'ai besoin d'un nouveau serveur

Veuillez remplir le formulaire A38

en trois exemplaire

Commande du matériel

Branchement dans la salle serveur

Installation de l'OS

Installation des logiciels

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

Virtualisation !

Accessible sur l'ensemble d'un réseau

Mutualisation des ressources

Externalisation

En libre-service à la demande

Accessible sur l'ensemble d'un réseau

Cloud Computing

En libre-service à la demande

Accessible sur l'ensemble d'un réseau

Mutualisation des ressources

Rapidement élastique

Mesurable

Niveaux de service

IaaSInfrastructure as a Service

PaaSPlatform as a Service

SaaSSoftware as a Service

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

SaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

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

IaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

AmazonAWS

Amazon EC2

– Elastic Compute Cloud

– Serveur virtuel

– Stockage sur Elastic Block Store (EBS)

● disque dur

– Monitoring

● Amazon CloudWatch

=> Cœur d’AWS

AmazonAWS

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

PaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

PaaS

Cloubees

App Project

Deploy

DEV@cloud RUN@cloud

Elastic AppElastic App

Elastic AppSource Control

JenkinsBuild/Test

Push

Cloud

PaaSPlatform as a Service

SaaSSoftware as a Service

User

IaaSInfrastructure as a Service

Operations

Developer Integration

Développerpour lecloud

IaaS : contraintes et liberté

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Exemple d'architecture

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

MySQL

Linux

Java / Glassfish

Exemple d'architecture

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

SQL Server

Windows

.NET

Exemple d'architecture

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

MongoDB

Linux

Java / Netty

PaaS : modèles imposés

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Google App Engine

JavaSE limité

cf. GAE Sandbox

Web App (JSP, Servlet)

Datastore / Cloud SQL

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

CloudBees

Run@Cloud

JVM

Applications Server

PaaS tools

Java Web

Apache Tomcat

Java EE

Web Profile

JBoss AS 7

CloudBees

RedHat OpenShift

Java

JavaEE (Full Profile)

JBoss AS 7 / EAP 6

Maven

Node.js

Ruby

Python

PHP

Perl

PaaS extensibles

OpenShift DIY

Cloudbees ClickStarts

...

Outils du développeur

Outils du développeur

Outils du développeur

Outils du développeur

Outils du développeur

Outils du développeur

Déployerdans lecloud

Provisioning IaaS

Installer

Démarrer

Connecter

Déployer

Provisioning IaaS

Installer

Démarrer

Connecter

Déployer

Console Web

Ligne de

commande (SDK)

API

Java, .NET, Ruby,...

Provisioning IaaS

Machine

Images de machine

Stockage (local)

Services annexes

Déploiement IaaS

Transfert

Implantation

Configuration

ssh

scp, ftp,...

Outils du serveur

d'applications

Provisioning PaaS

Installer

Démarrer

Connecter

Déployer

Provisioning PaaS

Installer

Démarrer

Connecter

Déployer

Console Web

Ligne de

commande (SDK)

API

Java, .NET, Ruby,...

Déploiement PaaS

Transfert

Implantation

Configuration

Console Web

Ligne de

commande (SDK)

API

Déploiement CloudBees

$ bees app:deploy ^

--appid=sewatech/swmsg-web ^

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

Déploiement CloudBees

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);

Déploiement Heroku

$ heroku create

Creating ...

Git remote heroku added

$ git push heroku master

Synthèse

Gains

Souplesse

Scalabilité

Coût

Freins

Peurs

Coût

Sécurité

Social

Lois

Localisation des

données

Patriot Act

Cloud public / cloud privé

Public

Externalisation, partage des ressources

Privé

Ressources internes

Intermédiaire

Externalisation, ressources dédiées

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

Démarrer

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

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

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

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

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

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

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

...

Cloud

PaaS

SaaSSoftware as a Service

IaaS

@AlexisHassler

http://alexis-hassler.com

alexis.hassler@sewatech.fr

http://sewatech.fr

http://www.slideshare.net/sewatech

top related