insa - java in ze cloud - 2014
DESCRIPTION
Introduction au cloud, pour développeurs Java Présenté à l'INSA Lyon en décembre 2014TRANSCRIPT
Java in Ze
Cloud
Alexis Hasslerdécembre 2014
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,...
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
Candy TODO
Business Plan
Hébergement
1 machine- garage- hébergeur
Plein de machines- garage- hébergeur
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
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
PaaS
PaaS
Standard
Réseau
StockageMatériel
Virtualisation
Système d'exploitation
Base de données
Runtime / middleware
Application
Java +
Logs & monitoring
Stockage
+
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
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
Synthèse
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
CaaSContainer as a Service
XaaS
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
Cloud
PaaS
SaaSSoftware as a Service
IaaS
@AlexisHassler
http://alexis-hassler.com [email protected]
http://sewatech.fr
http://www.slideshare.net/sewatech