Les structures informatiques dématérialisées (informatique en nuage, Cloud Computing) ont en quelques années révolutionné l’usage des ressources informatiques dans les entreprises. Les avancées en terme de virtualisation et de grilles de calcul ont permis une évolution des infrastructures classiques vers des infrastructures d'hébergement mutualisées et virtualisées. De nombreux travaux académiques et industriels s’intéressent à l'utilisation de la technologie OSGi pour déployer des applications complexes. Ces opérations de déploiement sont en général difficiles du fait de la nature très dynamique des infrastructures en nuage. Nous présentons ici, RoboConf, un gestionnaire de déploiement et de configuration automatique d'applications sur une infrastructure PaaS OSGi. Nous démontrons ensuiteRoboConf avec le déploiement automatique d'une application distribuée non triviale dans des conteneurs Apache Karaf sur des machines virtuelles Amazon EC2instanciées à la demande.
Noël de Palma, Didier Donsez, Alain Tchana, Linh-Manh Pham, Université de Grenoble, Equipe ERODS
Déploiement dynamique d'applications OSGi sur le Cloud
1. Dynamic Deployment
of Distributed OSGi
applications on a IaaS
Noël de Palma, Didier Donsez,
Alain Tchana, Linh-Manh Pham
Université de Grenoble, LIG Equipe ERODS
2. Résumé
Noël de Palma, Didier Donsez, Alain Tchana, Linh-Manh Pham (Université de Grenoble, LIG équipe
ERODS), "Déploiement dynamique d'applications OSGi sur le Cloud"
Résumé: Les structures informatiques dématérialisées (informatique en nuage, Cloud Computing) ont en
quelques années révolutionné l’usage des ressources informatiques dans les entreprises. Les avancées en
terme de virtualisation et de grilles de calcul ont permis une évolution des infrastructures classiques vers des
infrastructures d'hébergement mutualisées et virtualisées. De nombreux travaux académiques et industriels
s’intéressent à l'utilisation de la technologie OSGi pour déployer des applications complexes. Ces opérations
de déploiement sont en général difficiles du fait de la nature très dynamique des infrastructures en nuage.
Nous présentons ici, RoboConf, un gestionnaire de déploiement et de configuration automatique
d'applications sur une infrastructure PaaS OSGi. Nous démontrons ensuite RoboConf avec le déploiement
automatique d'une application distribuée non triviale dans des conteneurs Apache Karaf sur des machines
virtuelles Amazon EC2 instanciées à la demande.
3. Outline
Context : OSGi & Cloud
Roboconf
Roboconf for an OSGi PaaS
Demo
4. OSGi specifications
De-facto Standard for Modular Java applications
Dynamic Deployment of Modules
without rebooting ; exception : Eclipse plugins
SOA principles in Java applications
Specifications target standalone applications
BUT
Good candidate for distributed applications
and distributed middlewares
JEE, EEG, DOSGi, ...
5. Cloud Computing
Outsourcing of IT ressources
Network, CPU Core, Memory, Storage
Pay per Use
Elasticity
on-demand ressource allocation/desallocation
Virtualization technics
VM (VMWare, Xen, VirtualBox …), LCX, ...
Types : Public, Private and Hybrid Clouds
Models : IaaS, PaaS, SaaS (Map Reduce for Big Data)
Cloud Providers
Amazon, Google, Microsoft, HP, OVH, Eolas, …
Concerns : Optimize physical machines numbers and consumed
electricity.
7. Cloud Computing :
Application Administrators point of view
A S D
0) create an EC2 account and enter (company's) credit card number
1) Define a configuration
2) Start AMIs
3) Configure dependencies (@IP, port, security, firewalls …)
4) Monitor performance and usage
Time consuming
Error Prone
Requests
8. Cloud Computing :
Application Administrators point of view
A
A
S
S D
D
0) create an EC2 account and enter (company's) credit card number
1) Define a configuration
2) Start AMIs
3) Configure dependencies (@IP, port, security, firewalls …)
4) Monitor performance and usage
5) Change the configuration
6) Start additionnal AMIs / Stop existing AMIs / Migrate AMIs
7) Re-Configure dependencies (@IP, port, security, …)
...
10) Pay monthly $$$$$ for CPU time, ...
Time consuming
Error Prone
Nightmare
Requests
Requests
9. Roboconf
Motivation
Automatic deployment/evolution of
distributed application configuration on a IaaS
What does it do ?
Instantiates and manages VM in the IaaS
Deploys components on those VM
Makes those components to configure each other
RoboConf DSL : describing configurations
Fully asynchronous
10. Roboconf DSL
Configuration Model
Types (inheritance) & Instances & VM
Import & Export Variables → pubsub
lifecycles scripts in
BASH, PUPPET, …
11. Deployment & Configuration
PubSub vars : Act as a distributed
configuration manager
AMIs
Repo
Scripts
Repo
Artifacts
Repo
AMIs contains
a RoboConf agent
12. Algorithm to exchange vars
• foreach export:
– subscribe to “import.$exportName”
– publish exported vars on “export.$exportName”
• foreach import:
– subscribe to “export.$importName”
– publish notification on “import.$importName”
• if receive notification
publish exported vars on “export.$exportName”
Asynchronous Exchanges
→ Instances can be configured in any order!
→ Application is dynamic! Component can be added without effort!
12
14. Roboconf for OSGi
●
Motivations : OSGi PaaS
Deploy and configure OSGi containers
and then «Distributed » OSGi applications
on VM IaaS
Reuse/Share OSGi applications in same OSGi containers
Isolate OSGi applications in differents OSGi containers or VMs
Scripts
for Felix and Karaf Containers
for OSGi Applications
sets of bundles, features, CA cfgs and sys properties
Repos
OSGi containers (Felix, Karaf, ...)
Bundles (.jar, tgz of .jar, .cfg, .sysprop)
Private or Public (Felix OBR, Maven Central, ...)
19. Add a new sender (from the console)
VM2
KF
JMS Sender
VM3
KF
JMS Receiver
VM1
KF
JMS Server
JNDI Server
Scripts
Repo
Containers &
Bundles
Repo
VM4
KF
JMS Sender
KF
JMS Sender
roboconf
console
20. Add a new receiver (from the console)
VM2
KF
JMS Sender
VM3
KF
JMS Receiver
VM1
KF
JMS Server
JNDI Server
Scripts
Repo
Containers &
Bundles
Repo
VM4
KF
JMS Sender
KF
JMS Sender
VM5
KF
JMS Receiver
roboconf
console
21. Conclusion & Perpectives
Deployment and Configuration for an OSGi PaaS
More IaaS : Google, Azure, OpenStack, ...
More scripting/configuration tools
OSGi JMX, Permission Admin, MetaType
Remote Deployment, Deployment Admin
Coordination with Cellar's Distributed CA
More lifecycle scripts : Ant, ...
More monitoring/design tools
Releasing to FOSS
22. Un peu de pub ...
Ecole ICAR 2013 sur le Cloud Computing
26 au 30 Aout 2013 à Grenoble
http://erods.liglab.fr/icar2013/
Avec Microsoft, Intel, OVH, Eolas, OW2 ...