1 1 fractal deployment framework thursday, april 12, 2007 nicolas dolet ([email protected])...

23
1 1 Fractal Deployment Framework Thursday, April 12, 2007 as DOLET ([email protected]) roject - INRIA Futurs, toire d‘Informatique Fondamentale de Lille (LIFL), sité des Sciences et Technologies de Lille (USTL), euve d’Ascq, France Echirolles - France

Post on 18-Dec-2015

213 views

Category:

Documents


0 download

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

5

5

An SOA-based Travel Agency Application

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;}

20

20

The FDF Explorer

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

23

23

Thanks You – Questions?

FDF available at http://fdf.gforge.inria.fr