Java
in da Cloud
Alexis Hasslerjuin 2016
2
@AlexisHassler
Développeur, formateur Java
Indépendant
Fondateur du
3
Contenu
Définitions
Typologie
Acteurs
Exemples
(Démos)
Cloud Computing
?
Cloud Grand Public
Stockage
– Dropbox, Hubic, Orange,...
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 *
. . .
Dev
Cloud Computing
?
dev & ops
Listeo
Listy
Uberisation
de l'achat ménager
Disruption
de la liste de course
Business Plan : TLTR
Hébergement
1 machine
- garage
Plein de machines
- data center
Risques
Horizontale
Verticale
Scalabilité
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
Runtime
/
Middleware
Application
Base
de
Données
IaaS
Amazon EC2
– Elastic Compute Cloud
– Serveurs virtuels
– Stockage sur Elastic Block Store (EBS)
● disque dur
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 machineStockage
(local)
Services annexes
Infrastructure
As Code
AWS Provisionning
IaaS Architecture
MySQL
Linux
Java / Glassfish
Réseau
StockageMatériel
Virtualisation
Système d'exploitation
Runtime
/
Middleware
Application
Base
de
Données
IaaS Architecture
SQL Server
Windows
.NET / IIS
Réseau
StockageMatériel
Virtualisation
Système d'exploitation
Runtime
/
Middleware
Application
Base
de
Données
IaaS Architecture
MongoDB
Linux
Java / Netty
Réseau
StockageMatériel
Virtualisation
Système d'exploitation
Runtime
/
Middleware
Application
Base
de
Données
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
IaaS
Infrastructure as a Service
PaaS
Platform as a Service
SaaS
Software as a Service
SaaS
Réseau
StockageMatériel
Virtualisation
Système d'exploitation
Application
Runtime
/
Middleware
Base
de
Données
IaaS
Réseau
StockageMatériel
Virtualisation
Système d'exploitation
Runtime
/
Middleware
Application
Base
de
Données
PaaS
Réseau
StockageMatériel
Virtualisation
Système d'exploitation
Runtime
/
Middleware
Base
de
Données
Application
Google App Engine
Datastore / Cloud SQL
Python
Java + Jetty
Go
Réseau
StockageMatériel
Virtualisation
Système d'exploitation
Runtime
/
Middleware
Base
de
Données
Application
Google App Engine
Java Standard / Web
– ⚠ Restrictions
Services Google
Adaptation automatique
– Autoscale
– Versions conjointes
PaaS
Réseau
StockageMatériel
Virtualisation
Système d'exploitation
Runtime
/
Middleware
Base
de
Données
Application
Développement
Architecture modulaire
Prévoir l'échec
Stockage externe
Traitements asynchones
Applications stateless
Freins
Peurs
Coût
Sécurité
Social
Lois
Localisation des
données
Patriot Act
Boites noires
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
PaaS
Standard
Conteneurs
Synthèse
Cloud
PaaS
Platform as a Service
SaaS
Software as a Service
User
IaaS
Infrastructure as a Service
Operations
Developer
Integration
IaaS : contraintes et liberté
Réseau
StockageMatériel
Virtualisation
Système d'exploitation
Runtime
/
Middleware
Application
Base
de
Données
PaaS : modèles imposés
Réseau
StockageMatériel
Virtualisation
Système d'exploitation
Runtime
/
Middleware
Base
de
Données
Application
Cloud
PaaS
Platform as a Service
SaaS
Software as a Service
IaaS
Infrastructure as a Service
PaaS
Platform as a Service
SaaS
Software as a Service
IaaS
Infrastructure as a Service
DBaaS
Database as a Service
MaaS
Monitoring as a Service
NaaS
Network as a Service
CaaS
Container as a Service
XaaS
CaaS
Container as a Service
Cloud
PaaS
SaaS
Software as a Service
IaaS
@AlexisHassler
http://alexis-hassler.com
alexis.hassler@sewatech.fr
http://sewatech.fr
http://www.slideshare.net/sewatech
INSA Lyon - Java in da Cloud - 06/2016

INSA Lyon - Java in da Cloud - 06/2016