deployment with karaf and ace

22
Deployment with Karaf and ACE Jean-Baptiste Onofré, Talend [email protected], 2011-11-11

Upload: naomi

Post on 09-Jan-2016

61 views

Category:

Documents


0 download

DESCRIPTION

Deployment with Karaf and ACE. Jean-Baptiste Onofré, Talend [email protected], 2011-11-11. Summary. Background Introduction to Karaf Introduction to ACE ACE and Karaf Use case 1: standalone ACE server and Karaf with ACE agent (demo) Use case 2: Karaf hosting ACE server Roadmap Q&A. - PowerPoint PPT Presentation

TRANSCRIPT

Deployment with Karaf and ACE

Jean-Baptiste Onofré, [email protected], 2011-11-11

Summary Background Introduction to Karaf Introduction to ACE ACE and Karaf

• Use case 1: standalone ACE server and Karaf with ACE agent (demo)

• Use case 2: Karaf hosting ACE server

Roadmap Q&A

My Background Jean-Baptiste Onofré Software Architect at Talend ASF Member PMC for Karaf, ServiceMix Committer for ACE, Camel, Kalumet

Introduction to Karaf Lightweight complete OSGi container,

abstracting the OSGi framework (Felix or Equinox)

Comes from ServiceMix Kernel High adoption (Geronimo, ServiceMix,

…)

Karaf overview

JVM

OSGi framework (Apache Felix / Eclipse Equinox)

Aries Blueprint / Spring

Shell Console Logging Deployers Features

Instances Remote & Management ConfigAdmin Security/JAAS

WebContainer (Pax Web/Jetty)

Enterprise (JPA, JNDI, JTA)

WebConsole

Karaf directory structure /bin: startup scripts /etc: configuration files (ConfigAdmin) /data: working directory /data/cache: OSGi framework bundle cache /data/generated-bundles: temporary folder used by the deployer /data/log: log files /deploy: hot deploy directory /instances: directory containing child instances /lib: contains the bootstrap libraries /lib/ext: directory for JRE extensions /lib/endorsed: directory for endorsed libraries /system: OSGi bundles repository (OBR), laid out as a Maven 2 repository

Karaf start/stop Starting Karaf with the shell:> ./bin/karaf

Starting Karaf without shell:> ./bin/karaf server

Starting Karaf in background:> ./bin/start

Stopping Karaf:karaf@root> osgi:shutdown> ./bin/stop

Karaf shell console Complete Unix-like shell environment: completion, grep, more, find, etc Remote using SSH (Karaf uses Mina SSHd) Contextual help on commands:karaf@root> <tab>Display all 182 possibilities? (y or n)*:help addurl admin:change-optsadmin:change-rmi-registry-port admin:change-ssh-port admin:connectadmin:create admin:destroy admin:listadmin:rename admin:start admin:stopbundle-level cancel cat…karaf@root> features:list --help

Karaf Logging Powerful logging system powered by OPS4J PAX Logging Supports several logging API: Apache Commons Logging, SLF4J, Apache Log4j, Java Util Logging Karaf provides commands: log:display, log:display-exception, log:set Use of etc/org.ops4j.pax.logging.cfg by default (changes are dynamic)

Karaf child instances Karaf supports multiple child instances. A child instance is a copy that you can launch separately and deploy applications into. An instance is not a full copy of Karaf, but only a copy of the configuration files and data folder which contains all the runtime information, logs and temporary files Instances are managed by the « admin » commands: admin:list, admin:create, admin:start, ... The bin/admin script allows you to manipulate child instances outside a Karaf shell environment

Karaf supports multiple child instances. A child instance is a copy that you can launch separately and deploy applications into. An instance is not a full copy of Karaf, but only a copy of the configuration files and data folder which contains all the runtime information, logs and temporary files Instances are managed by the « admin » commands: admin:list, admin:create, admin:start, ... The bin/admin script allows you to manipulate child instances outside a Karaf shell environment

Karaf configuration Karaf combines ConfigAdmin and FileInstance to be able to propagate changes on the configuration files to the bundles Files in /etc folder are used to set the startup configuration. For dynamic configuration, Karaf provides commands to administer the OSGi configuration service: config:edit, config:proplist, etc Support of commit and rollback: config:update, config:cancel Provides an MBean dedicated for configuration.

Karaf deployers Karaf monitor the deploy folder by default (FileInstall) and delegates the polled files to the deployers A deployer is simply a bundle, easy to create Karaf provides several deployer: Spring, Feature, Kar, War, Wrap

Karaf features Karaf provisioning is made by Features A Karaf feature is a collection of bundles, configuration, and others features forming an application Features are described in a XML features descriptor

<features xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'> <feature name='my' version='1.0'> <feature>other</feature> <bundle>mvn:...bundleA</bundle> <bundle>http:...bundleB</bundle> <config></config> <configfile></configfile> </feature></features>

Introduction to ACE Software distribution framework providing

Handle dependency management Deployment management Log reporting

ACE topology ACE server including repository, distribution, etc A set of target system where the ACE agent is running A client (browser or REST) to handle the ACE server console

ACE logical grouping ACE feature is like a Karaf feature but only handling bundles: it's a group of bundles ACE distribution is a group of features ACE target is where the ACE agent is running: it's where distributions will be deployed

ACE and Karaf ACE provides Karaf features ACE agent easily deployable in Karaf using the ace-agent feature ACE also provides all Karaf features to deploy the ACE server in Karaf

Use case 1 Standalone ACE server:unzip org.apache.ace.target.devserver*.zipcd ace-devserver./run.sh

Install ACE agent in Karaf:karaf@root> admin:create testingkaraf@root> admin:set-opts testing “-Didentification=testing”karaf@root> admin:connect testingkaraf@testing> features:addurl mvn:org.apache.ace.karaf/apache-ace/0.8.1-incubator-SNAPSHOT/xml/featureskaraf@testing> features:install ace-agentStarted management agent. Target ID : testing Server : http://localhost:8080 Sync interval: 2000 ms Unaffected bundles will not be stopped during deployment.

Use case 2 ACE server distribution powered by Karaf:root@karaf> features:addurl mvn:org.apache.ace.karaf/apache-ace/0.8.1-incubator-SNAPSHOT/xml/featuresroot@karaf> features:install ace-server

Will be in the ACE provided distributions

Roadmap Extend/enhance ACE feature/distribution to be able to directly support Karaf features Leverage Karaf sub-projects in ACE: Karaf Cellar clustering, Karaf Cave OBR Embed ACE in Apache Kalumet to provide a complete deployment platform (OSGi, J2EE, OS, etc)

Sources

Links• http://karaf.apache.org• http://incubator.apache.org/ace• http://Incubator.apache.org/kalumet

Contact Jean-Baptiste (JB) Onofré

[email protected][email protected]• http://blog.nanthrax.net

Q&A