1 1 fractal deployment framework thursday, april 12, 2007 nicolas dolet ([email protected])...
Post on 18-Dec-2015
213 views
TRANSCRIPT
1
1
Fractal Deployment Framework
Thursday, April 12, 2007
Nicolas DOLET ([email protected])ADAM Project - INRIA Futurs,Laboratoire d‘Informatique Fondamentale de Lille (LIFL),Université des Sciences et Technologies de Lille (USTL),Villeneuve d’Ascq, France
Echirolles - France
2
2
Outline
• Motivations
• Fractal Deployment Framework
• Current FDF personalities• What could be deployed with FDF today?
• Next FDF personalities• What will be deployable with FDF in a near future?
3
3
Motivations
• Current trends for distributed intensive-software systems• Grid Computing
– Large scale networks of computers
• Service-Oriented Computing
– Complex composition of heterogeneous software components
• The nightmare for system administrators
• Requirements for automatic deployment of• Large scale distributed intensive-software systems
• The whole software stack
– Business software components, application servers, middleware, language runtimes, operating systems, etc.
4
4
Automatic Distributed Deployment
DeploymentDescription
SoftwareRepository
DeploymentEngine
before
after
S1 S2
S3 S4 S5 S6
target
© 2003-2006, S. Krakowiak
6
6
Distributed Deployment Issues
• Heterogeneity of• Software to deploy
– Business applications, application servers, middleware, virtual machines, shared libraries, data bases, operating systems
• Software technologies for business applications– OSGi, J2EE, JBI, SCA, CCM, Fractal, SOA, etc.
• Deployment tasks– install, configure, start, manage, stop, uninstall
• Low level deployment mechanisms– File transfer protocols, e.g. FTP, SCP– Remote control protocols, e.g. Telnet, SSH, HTTP, JMX– Scripting languages, e.g. SH, CSH, Windows
• Orchestration of distributed deployment tasks• Sequence, parallel, synchronization
• High level descriptions versus low level programs
7
7
Fractal Deployment Framework
• A component-based middleware framework for deploying software
• Independent of• Software technology, e.g. J2EE, OSGi, JBI, SCA, CCM, Fractal, …
• Software granulary, i.e., from EJB to operating systems
• Operating system
• Network protocol
• FDF is• A deployment description language
– System configurations
– Software and network topologies
• A deployment engine
• A library of deployment components
8
8
ShellGeneric deployment components
End-UserConfiguration
Fractal ADL
Translate
Fractal ADLEngineInstantiate
Personalities
Deploy
Internet Network
VariableHost
Protocol
...
uses uses
OpenCCM
Mosaïques
Port
User
Software
Transfer
JRE
Global composite reifying the user’s configuration to deploy
JOnAS
JBoss
PEtALS ...
Grid5000
LANGSM/GPRS
Network
WiFiNetwork
Grid5000
xDSL
Fractal Deployment Framework
9
9
Primitive FDF Components
• Wrappers of low level deployment mechanisms• Hostnames, ports, users, properties• File transfer protocols, e.g. FTP, SCP• Remote control protocols, e.g. Telnet, SSH, HTTP, JMX• Shell command formatting, e.g. SH, CSH, Windows
• Runnable components• Upload, download, and unarchive files• Execute/send commands, ChangeDirectory, CreateDirectory,
RemoveDirectory, …• Set/unset shell variables• Ping sockets, servers, etc.
• Orchestration components• Sequencer, parallelizer• Deployment automatons (install, start, stop, uninstall)
10
10
Composite FDF Components
• Host• Composition of
– Hostname, User, Transfer, Protocol, Shell
• Set of software instances
• Software• Set of
– Properties, e.g. Target host, archive file, home directory, etc.
– Dependencies to other software instances
– Procedures as install, configure, start, manage, stop, uninstall
• Sub component types
– Installable, Manageable, Iconable, etc.
• Inherited from FDF personalities
11
11
FDF Personalities
• Describe how to configure and deploy particular software
• Composed of• A set of properties, e.g. ARCHIVE, HOME, PORT, …
• Software definitions, e.g. SERVER, BEAN, …
• A set of configuration files
• A set of icon files for FDF Explorer
• Written with the FDF language• A composition language
12
12
The PEtALS SERVER Personality
PEtALS.SERVER = software.Installable(petals,PEtALS,archive,home), JAVA.DependOn(petals), software.Hosting(petals), software.Manageable(petals, http://#[petals-hostname]:#[http-port]), software.Iconable(petals,PEtALS/SERVER.png){
archive = PEtALS.ARCHIVE(UNDEFINED);
home = PEtALS.HOME(UNDEFINED);
properties { … }
petals { … }
}
13
13
The PEtALS SERVER Personality
properties { http-port = HTTP.PORT(7080); jmx-user = JMX.USER(''); jmx-password = JMX.PASSWORD(''); jmx-port = JMX.PORT(7700); joram-domain = JORAM.DOMAIN(Petals); joram-id = JORAM.ID(0); joram-user = JORAM.USER(petals); joram-password = JORAM.PASSWORD(petals); joram-domainport = JORAM.DOMAINPORT(7740); joram-tcpport = JORAM.TCPPORT(7760); }
14
14
The PEtALS SERVER Personality
petals { internal-deployment { configure { TRANSFER.UploadGeneratedFile(server.properties,…); }
start { SHELL.Fork(java -Xmx1024m -jar #[home]/bin/server.jar); PEtALS.Ping(#[petals-hostname],#[jmx-port],#[jmx-user],#[jmx-password]); }
stop { SHELL.Execute(java -Xmx1024m -jar #[home]/bin/server.jar stop); }
}}
15
15
Current FDF Personalities• Java Runtime Environment
• Java RMI Registry
• Apache Ant
• Apache Tomcat – Web server and applications/servlets (WAR)
• Geronimo - J2EE application server
• JBoss - J2EE application server
• JOnAS - J2EE application server and applications (EAR, WAR, EJB, RAR)
• JADE – Autonomous J2EE systems
• PEtALS – JBI container and applications/components
• MySql – Data base server
• Fractal – Julia – Fractal RMI Registry – Fractal RMI Server
• OpenCCM – CCM infractructure and applications
• FDF itself
16
16
FDF System Configurations• Describe the topology of the system to deploy
• A set of hosts and software
• Example
MyPetals {
Hosts = INTERNET.NETWORK { host1 = INTERNET.HOST { … } host2 = INTERNET.HOST { … } }
PEtALS-Servers { petals-host1 = PEtALS.SERVER { … } petals-host1 = PEtALS.SERVER { … } }
JBI-Components { JBI1-on-host1 = PEtALS.JBI { … } JBI2-on-host2 = PEtALS.JBI { … } }}
17
17
FDF System Configurations
host1 = INTERNET.HOST { hostname = INTERNET.HOSTNAME(host1); user = INTERNET.USER(login,[password],[privateKey]); transfer = TRANSFER.JSCP; protocol = PROTOCOL.OpenSSH; shell = SHELL.SH; software { java = JAVA.JRE { archive = JAVA.ARCHIVE(Archive_File_URI); home = JAVA.HOME(Java_Home_URI); } }}
18
18
FDF System Configurations
petals-host1 = PEtALS.SERVER { archive = PEtALS.ARCHIVE(Archive_File_URI); home = PEtALS.HOME(Petals_Home_URI); host = Hosts/host1; properties { html-port = HTTP.PORT(7700); jmx-user = JMX.USER(''); jmx-password = JMX.PASSWORD(''); jmx-port = JMX.PORT(8081); joram-domain = JORAM.DOMAIN(''); joram-id = JORAM.ID(0); joram-user = JORAM.USER(''); joram-domainport = JORAM.DOMAINPORT(7740); joram-tcpport = JORAM.TCPPORT(7760); }}
19
19
FDF System Configurations
JBI1-on-host1 = PEtALS.JBI { archive = PEtALS.JBI.ARCHIVE(Archive_File_URI); name = PEtALS.JBI.NAME(JBIName); petals = PEtALS-Servers/petals-host1;}
21
21
Fractal-based Implementation
• Fractal component model for hierarchical and sharing
• Julia as Java-based Fractal implementation
• Fraclet for programming primitive FDF components• New generators
• Fractal ADL for composing composite FDF components• Optimizations and new loaders
• FDF language for describing software personalities and system configurations
• Mapped to Fractal ADL dynamically
• Fractal Explorer for implementing the FDF Explorer
• Fractal RMI for distributing FDF servers
22
22
Next FDF Personalities
• J2EE applications (EAR, WAR, EJB, RAR) for Geronimo and JBoss
• OSCAR must be completed
• Apache Tuscany SCA – SCA runtime and applications
• JMS servers as ActiveMQ or JORAM
• BPEL engine and orchestrations as ActiveBPEL and BSOA Orchestra
• Other Web servers as Apache HTTPD
• Other OSGi gateways as Apache Felix or Eclipse Equinox
• Other data base servers
• Qemu – Operating system virtualization and images