insa - java in ze cloud (2013)

Post on 15-May-2015

246 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Java in Ze

Cloud

Alexis Hasslernovembre 2013

2

@AlexisHassler

Développeur, formateur Java

Indépendant

Co-leader du

3

Contenu

Définitions

Typologie

Acteurs

Exemples

(Démos)

Cloud Computing

?

Cloud Grand Public

Stockage

Orange, Dropbox,...

Mail

Gmail,...

...

Cloud Professionnel

Google Apps

Salesforce

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

There's an App For That *

. . .

Cloud Computing

?dev & ops

Quenelle Crush

Business Plan

Hébergement

1 machine- garage- hébergeur

Plein de machines- garage- hébergeur

Risques

Scalabilité

HorizontaleVerticale

Cloud Computing

En libre-service à la demande

Accessible sur l'ensemble d'un réseau

Mutualisation des ressources

Rapidement élastique

Mesurable

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

IaaS

IaaS

Standard

Amazon EC2

– Elastic Compute Cloud

– Serveurs virtuels

– Stockage sur Elastic Block Store (EBS)

● disque dur

– Monitoring

● Amazon CloudWatch

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

AWS Provisionning

Système

Images (AMI)

Standards : Linux, Windows

Place de marché : OS + …

Communauté : OS + …

Personnalisé

AWS Provisionning

Système

Console AWS

Scripts shell

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

AWS Provisionning

Machine

Images de machine

Stockage (local)

Services annexes

Infrastructure As Code

AWS Provisionning

IaaS Architecture

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

MySQL

Linux

Java / Glassfish

IaaS Architecture

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

SQL Server

Windows

.NET / IIS

IaaS Architecture

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

MongoDB

Linux

Java / Netty

IaaS Provisionning

Serveur d'applications

deb, rpm,...

wget + tar

scp + tar

...

IaaS Déploiement

Applications

A la main

Outil du serveur d'applications

Niveaux de service

IaaSInfrastructure as a Service

PaaSPlatform as a Service

SaaSSoftware as a Service

SaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

IaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

PaaS

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

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

Google App Engine

Java Standard / Web

⚠ Restrictions

Services Google

Adaptation automatique

Autoscale

Versions conjointes

Google App Engine

JavaSE limité

cf. GAE Sandbox

Web App

JSP, Servlet,...

Services REST

Cloud Storage

BigQuery

Stockages

Datastore

Cloud SQL

GAE Sandbox

Ecrire sur le file system => Datastore

Ouvrir une socket => URL fetch

Démarrer un thread

Faire des appels système

Services GAE

Références GAE

PaaS

PaaS

Standard

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Java +

RUN@Cloud

Déploiement CloudBees

Déploiement CloudBees

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

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

Logs & monitoring

Stockage

ClickStack

Managed

ClickStack

Community

DEV@Cloud

DEV@Cloud

DEV@Cloud

DEV@Cloud

DEV@Cloud

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

Cloud privé

Private IaaS Private PaaS

Cloud souverain

Cloud

PaaSPlatform as a Service

SaaSSoftware as a Service

User

IaaSInfrastructure as a Service

Operations

Developer Integration

IaaS : contraintes et liberté

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

PaaS : modèles imposés

Réseau

StockageMatériel

Virtualisation

Système d'exploitation

Base de données

Runtime / middleware

Application

Cloud

PaaSPlatform as a Service

SaaSSoftware as a Service

IaaSInfrastructure as a Service

Cloud

PaaSPlatform as a Service

SaaSSoftware as a Service

IaaSInfrastructure as a Service

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

KaaS

Quel cloud ?

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