insa - java in ze cloud (2013)

80
Java in Ze Cloud Alexis Hassler novembre 2013

Upload: alexis-hassler

Post on 15-May-2015

246 views

Category:

Technology


0 download

DESCRIPTION

Introduction au cloud, pour développeurs Java Présenté à l'INSA Lyon en novembre 2013

TRANSCRIPT

Page 1: INSA - Java in ze Cloud (2013)

Java in Ze

Cloud

Alexis Hasslernovembre 2013

Page 2: INSA - Java in ze Cloud (2013)

2

@AlexisHassler

Développeur, formateur Java

Indépendant

Co-leader du

Page 3: INSA - Java in ze Cloud (2013)

3

Contenu

Définitions

Typologie

Acteurs

Exemples

(Démos)

Page 4: INSA - Java in ze Cloud (2013)

Cloud Computing

?

Page 5: INSA - Java in ze Cloud (2013)

Cloud Grand Public

Stockage

Orange, Dropbox,...

Mail

Gmail,...

...

Page 6: INSA - Java in ze Cloud (2013)

Cloud Professionnel

Google Apps

Salesforce

Page 7: INSA - Java in ze Cloud (2013)

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 8: INSA - Java in ze Cloud (2013)

There's an App For That *

. . .

Page 9: INSA - Java in ze Cloud (2013)
Page 10: INSA - Java in ze Cloud (2013)

Cloud Computing

?dev & ops

Page 11: INSA - Java in ze Cloud (2013)

Quenelle Crush

Page 12: INSA - Java in ze Cloud (2013)

Business Plan

Page 13: INSA - Java in ze Cloud (2013)

Hébergement

1 machine- garage- hébergeur

Plein de machines- garage- hébergeur

Page 14: INSA - Java in ze Cloud (2013)

Risques

Page 15: INSA - Java in ze Cloud (2013)

Scalabilité

HorizontaleVerticale

Page 16: INSA - Java in ze Cloud (2013)

Cloud Computing

En libre-service à la demande

Accessible sur l'ensemble d'un réseau

Mutualisation des ressources

Rapidement élastique

Mesurable

Page 17: INSA - Java in ze Cloud (2013)

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 18: INSA - Java in ze Cloud (2013)

IaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Page 19: INSA - Java in ze Cloud (2013)

IaaS

Page 20: INSA - Java in ze Cloud (2013)

IaaS

Standard

Page 21: INSA - Java in ze Cloud (2013)
Page 22: INSA - Java in ze Cloud (2013)

Amazon EC2

– Elastic Compute Cloud

– Serveurs virtuels

– Stockage sur Elastic Block Store (EBS)

● disque dur

– Monitoring

● Amazon CloudWatch

Page 23: INSA - Java in ze Cloud (2013)

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

Page 24: INSA - Java in ze Cloud (2013)

AWS Provisionning

Système

Images (AMI)

Standards : Linux, Windows

Place de marché : OS + …

Communauté : OS + …

Personnalisé

Page 25: INSA - Java in ze Cloud (2013)

AWS Provisionning

Système

Console AWS

Scripts shell

SDK Java, JavaScript, Ruby, .NET, Python,...

Page 26: INSA - Java in ze Cloud (2013)

AWS Provisionning

Machine

Images de machine

Stockage (local)

Services annexes

Page 27: INSA - Java in ze Cloud (2013)

Infrastructure As Code

AWS Provisionning

Page 28: INSA - Java in ze Cloud (2013)

IaaS Architecture

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

MySQL

Linux

Java / Glassfish

Page 29: INSA - Java in ze Cloud (2013)

IaaS Architecture

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

SQL Server

Windows

.NET / IIS

Page 30: INSA - Java in ze Cloud (2013)

IaaS Architecture

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

MongoDB

Linux

Java / Netty

Page 31: INSA - Java in ze Cloud (2013)

IaaS Provisionning

Serveur d'applications

deb, rpm,...

wget + tar

scp + tar

...

Page 32: INSA - Java in ze Cloud (2013)

IaaS Déploiement

Applications

A la main

Outil du serveur d'applications

Page 33: INSA - Java in ze Cloud (2013)
Page 34: INSA - Java in ze Cloud (2013)

Niveaux de service

IaaSInfrastructure as a Service

PaaSPlatform as a Service

SaaSSoftware as a Service

Page 35: INSA - Java in ze Cloud (2013)

SaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Page 36: INSA - Java in ze Cloud (2013)

IaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Page 37: INSA - Java in ze Cloud (2013)

PaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Page 38: INSA - Java in ze Cloud (2013)

Google App Engine

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Datastore / Cloud SQL

PythonJava + Jetty

Go

Page 39: INSA - Java in ze Cloud (2013)
Page 40: INSA - Java in ze Cloud (2013)

Google App Engine

Java Standard / Web

⚠ Restrictions

Services Google

Adaptation automatique

Autoscale

Versions conjointes

Page 41: INSA - Java in ze Cloud (2013)

Google App Engine

JavaSE limité

cf. GAE Sandbox

Web App

JSP, Servlet,...

Services REST

Cloud Storage

BigQuery

Stockages

Datastore

Cloud SQL

Page 42: INSA - Java in ze Cloud (2013)

GAE Sandbox

Ecrire sur le file system => Datastore

Ouvrir une socket => URL fetch

Démarrer un thread

Faire des appels système

Page 43: INSA - Java in ze Cloud (2013)

Services GAE

Page 44: INSA - Java in ze Cloud (2013)
Page 45: INSA - Java in ze Cloud (2013)

Références GAE

Page 46: INSA - Java in ze Cloud (2013)

PaaS

Page 47: INSA - Java in ze Cloud (2013)

PaaS

Standard

Page 48: INSA - Java in ze Cloud (2013)

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Java +

Page 49: INSA - Java in ze Cloud (2013)

RUN@Cloud

Page 50: INSA - Java in ze Cloud (2013)

Déploiement CloudBees

Page 51: INSA - Java in ze Cloud (2013)

Déploiement CloudBees

$ bees app:deploy --appid=sewatech/swmsg-web --type=jboss message-web/target/swmsg-web.war

Page 52: INSA - Java in ze Cloud (2013)

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 53: INSA - Java in ze Cloud (2013)

Logs & monitoring

Page 54: INSA - Java in ze Cloud (2013)

Stockage

Page 55: INSA - Java in ze Cloud (2013)

ClickStack

Managed

Page 56: INSA - Java in ze Cloud (2013)

ClickStack

Community

Page 57: INSA - Java in ze Cloud (2013)

DEV@Cloud

Page 58: INSA - Java in ze Cloud (2013)

DEV@Cloud

Page 59: INSA - Java in ze Cloud (2013)

DEV@Cloud

Page 60: INSA - Java in ze Cloud (2013)

DEV@Cloud

Page 61: INSA - Java in ze Cloud (2013)

DEV@Cloud

Page 62: INSA - Java in ze Cloud (2013)
Page 63: INSA - Java in ze Cloud (2013)
Page 64: INSA - Java in ze Cloud (2013)

Freins

Peurs

Coût

Sécurité

Social

Lois

Localisation des

données

Patriot Act

Page 65: INSA - Java in ze Cloud (2013)

Cloud public / cloud privé

Public

Externalisation, partage des ressources

Privé

Ressources internes

Intermédiaire

Externalisation, ressources dédiées

Page 66: INSA - Java in ze Cloud (2013)

Cloud privé

Private IaaS Private PaaS

Page 67: INSA - Java in ze Cloud (2013)

Cloud souverain

Page 68: INSA - Java in ze Cloud (2013)

Cloud

PaaSPlatform as a Service

SaaSSoftware as a Service

User

IaaSInfrastructure as a Service

Operations

Developer Integration

Page 69: INSA - Java in ze Cloud (2013)

IaaS : contraintes et liberté

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Page 70: INSA - Java in ze Cloud (2013)

PaaS : modèles imposés

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Page 71: INSA - Java in ze Cloud (2013)

Cloud

PaaSPlatform as a Service

SaaSSoftware as a Service

IaaSInfrastructure as a Service

Page 72: INSA - Java in ze Cloud (2013)

Cloud

PaaSPlatform as a Service

SaaSSoftware as a Service

IaaSInfrastructure as a Service

Page 73: INSA - Java in ze Cloud (2013)

PaaSPlatform as a Service

SaaSSoftware as a Service

IaaSInfrastructure as a Service

DBaaSDatabase as a Service

MaaSMonitoring as a Service

NaaSNetwork as a Service

CaaSCommunication as a Service

XaaS

Page 74: INSA - Java in ze Cloud (2013)

KaaS

Page 75: INSA - Java in ze Cloud (2013)

Quel cloud ?

Page 76: INSA - Java in ze Cloud (2013)

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 77: INSA - Java in ze Cloud (2013)

Démarrer

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

Google App Engine ...................0 €CloudBees ................................ 0 €Heroku ...................................... 0 €OpenShift ..................................0 €Jelastic ......................................0 €CloudFoundry ........................... 0 €...

Page 78: INSA - Java in ze Cloud (2013)

Cloud

PaaS

SaaSSoftware as a Service

IaaS

Page 79: INSA - Java in ze Cloud (2013)

@AlexisHassler

http://alexis-hassler.com

[email protected]

http://sewatech.fr

http://www.slideshare.net/sewatech

Page 80: INSA - Java in ze Cloud (2013)