java in ze cloud - insa - nov. 2012
Post on 15-May-2015
473 Views
Preview:
DESCRIPTION
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