HBaseCon 2013: Evolving a First-Generation Apache HBase Deployment to Second Generation and Beyond
Dynamic Deployment with Apache ACE
-
Upload
marcel-offermans -
Category
Technology
-
view
4.574 -
download
0
Transcript of Dynamic Deployment with Apache ACE
luminis
Dynamic Deployment with
Marcel Offermans
luminis
Introduction
• Marcel Offermans
• software architect
• Apache Felix and ACE
• Luminis
• IT solutions from idea toimplementation
• experts in Java, OSGi, .NET,Agile/Scrum, Mobile
image © 2008 Google Earth
ApeldoornArnhem De Steeg
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 :)
luminis
Agenda
• Deployment
• Management Agent
• Provisioning Server
• Q & A
luminis
Agenda
• Deployment
• Management Agent
• Provisioning Server
• Q & A
luminis
Deployment
Component A
Component B
Component C
Target A
Target B
Target C
luminis
Deployment
Component A
Component B
Component C
Target A
Target B
Target C
Deployment
luminis
Deployment
now
Component A
Component B
Component C
Target A
Target B
Target C
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
luminis
Topology
provisioning server
target
management agent
network
component repository
luminis
Agenda
• Deployment
• Management Agent
• Provisioning Server
• Q & A
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
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
luminis
Deployment Admin
• versioned set of artifacts
• transactional install/update
• fix packages provide deltas
• signing makes them secure
• extensible through resource processors
luminis
Agenda
• Deployment
• Management Agent
• Provisioning Server
• Q & A
luminis
Provisioning Server
deploymentstore
Store Repository
License Repository
Deployment Repository
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
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
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)
luminis
Scaling the server
• repositories can be replicated
• there is always one master (holding a copy that can be modified)
Repository Repositoryreplication
master
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
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
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
luminis
Any questions?
? & !