dynamic deployment with apache ace

24
luminis Dynamic Deployment with Marcel Offermans

Upload: marcel-offermans

Post on 21-Jan-2018

4.574 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Dynamic Deployment with Apache ACE

luminis

Dynamic Deployment with

Marcel Offermans

Page 2: Dynamic Deployment with Apache ACE

luminis

Introduction

• Marcel Offermans

• software architect

• Apache Felix and ACE

[email protected]

• Luminis

• IT solutions from idea toimplementation

• experts in Java, OSGi, .NET,Agile/Scrum, Mobile

image © 2008 Google Earth

ApeldoornArnhem De Steeg

Page 3: Dynamic Deployment with Apache ACE

luminis

Status?

• april 2009: proposal to the incubator mailing list

• may 2009: started setting up project, IP clearance

• june 2009: (almost) done with IP clearance :)

Page 4: Dynamic Deployment with Apache ACE

luminis

Agenda

• Deployment

• Management Agent

• Provisioning Server

• Q & A

Page 5: Dynamic Deployment with Apache ACE

luminis

Agenda

• Deployment

• Management Agent

• Provisioning Server

• Q & A

Page 6: Dynamic Deployment with Apache ACE

luminis

Deployment

Component A

Component B

Component C

Target A

Target B

Target C

Page 7: Dynamic Deployment with Apache ACE

luminis

Deployment

Component A

Component B

Component C

Target A

Target B

Target C

Deployment

Page 8: Dynamic Deployment with Apache ACE

luminis

Deployment

now

Component A

Component B

Component C

Target A

Target B

Target C

Page 9: Dynamic Deployment with Apache ACE

luminis

Deployment

last year

Component A

Component B

Target A

Target C

last month

Component A

Component B

Target A

Target B

Target C

last week

Component A

Component B

Component C

Target A

Target B

Target C

now

Component A

Component B

Component C

Target A

Target B

Target C

Page 10: Dynamic Deployment with Apache ACE

luminis

Topology

provisioning server

target

management agent

network

component repository

Page 11: Dynamic Deployment with Apache ACE

luminis

Agenda

• Deployment

• Management Agent

• Provisioning Server

• Q & A

Page 12: Dynamic Deployment with Apache ACE

luminis

Management Agent

• manages life cycle of bundlesBundleContext

• controls package sharing policiesPackageAdmin

• controls relative starting/stopping orderStart Level Service

• implements a security policyConditional Permission Admin

!"#$%"&'($)&%*+,-./'01/'&%"2&)$.$),-$/345&%!"#$%6++$,3)&

7&+&,8&%9:%;&'8$/3%9<=62'$+%>??@

OSGi Alliance

Digitally signed by OSGi Alliance DN: cn=OSGi Alliance, c=US Date: 2007.02.22 14:45:47 + 01'00'

Signatur e Not Verified

Page 13: Dynamic Deployment with Apache ACE

luminis

Management Agent

• identification, uniquely identifies a target

• discovery, provides mechanism to find server

• scheduler, periodically triggers updates

• deployment, downloads and installs updates

• audit log, tracks all life cycle changes

Page 14: Dynamic Deployment with Apache ACE

luminis

Deployment Admin

• versioned set of artifacts

• transactional install/update

• fix packages provide deltas

• signing makes them secure

• extensible through resource processors

Page 15: Dynamic Deployment with Apache ACE

luminis

Agenda

• Deployment

• Management Agent

• Provisioning Server

• Q & A

Page 16: Dynamic Deployment with Apache ACE

luminis

Provisioning Server

deploymentstore

Store Repository

License Repository

Deployment Repository

Page 17: Dynamic Deployment with Apache ACE

luminis

Deployment Repository

• has a collection of targets

• with different versions for each target

• with a set of components for each version

componentsversionstargets

Target A

Component A1

2

3

4

Component B

Component A Component B Component C

Component A Component C Component D

Component C Component D

Deployment Repository

Target Component

Page 18: Dynamic Deployment with Apache ACE

luminis

Store and License Repository

• store and license map components to targets

• store groups components, license associates these with targets

• these are all extensible objects

• on every update, the consequences for the targets are calculated

+ =Store Repository License Repository Deployment Repository

Component License License Target Target Component

Page 19: Dynamic Deployment with Apache ACE

luminis

Metadata vs content

• server repositories only store metadata

• this avoids having IP in these repositories

• it also allows integration with different component repositories (OBR, Maven, anything reachable via a URL)

Page 20: Dynamic Deployment with Apache ACE

luminis

Scaling the server

• repositories can be replicated

• there is always one master (holding a copy that can be modified)

Repository Repositoryreplication

master

Page 21: Dynamic Deployment with Apache ACE

luminis

Manipulating data

• client and server use a checkout / commit model with optimistic locking

• client is responsible for “merging” if there are concurrent changes

Repository

store version

retrieve version

list versions

Page 22: Dynamic Deployment with Apache ACE

luminis

The audit trail

• management agent stores all life cycle related events in an audit log

• this log gets synchronized back to the server

internetserver target

Audit Log

13:23 Target started13:24 Starting update from version 5 to 813:24 Bundle 37 updated13:25 Update to version 8 succeeded14:25 Target stopped

Audit Log

17:34 Checked for updates, none found18:3419:3420:3421:34

23:20 Bundle 23 stopped23:2523:4502:2205:22

13:23 Target started13:24 Starting update from version 5 to 813:24 Bundle 37 updated13:25 Update to version 8 succeeded14:25 Target stopped

Page 23: Dynamic Deployment with Apache ACE

luminis

Summing it up

• We’ve looked at dynamic deployment

• the management agent on the target

• the repositories on the server

• ...which hopefully gives you a high level overview

Page 24: Dynamic Deployment with Apache ACE

luminis

Any questions?

? & !