Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Dynamic
Deployment with




Marcel Offermans



       luminis
Introduction

• Marcel Offermans
 •   software architect
                                 Arnhem      Apeldoorn           ...
Status?




• april 2009: proposal to the incubator mailing list
• may 2009: started setting up project, IP clearance
• ju...
Agenda




• Deployment
• Management Agent
• Provisioning Server
• Q&A


                        luminis
Agenda




• Deployment
• Management Agent
• Provisioning Server
• Q&A


                        luminis
Deployment




    Component A   Target A


   Component B    Target B


   Component C    Target C




                  ...
Deployment




    Component A                Target A


   Component B    Deployment   Target B


   Component C         ...
Deployment



                             now

    Component A   Target A


   Component B    Target B


   Component C  ...
Deployment
                              last year
             Component A   Target last
                                ...
Topology


                              target

 provisioning             management
                network
    server  ...
Agenda




• Deployment
• Management Agent
• Provisioning Server
• Q&A


                        luminis
Management Agent


• manages life cycle of bundles
  BundleContext
                                               !"#$%"&'...
Management Agent



• identification, uniquely identifies a target
• discovery, provides mechanism to find server
• schedu...
Deployment Admin



• versioned set of artifacts
• transactional install/update
• fix packages provide deltas
• signing ma...
Agenda




• Deployment
• Management Agent
• Provisioning Server
• Q&A


                        luminis
Provisioning Server



                 store                deployment


      Store               License     Deployment...
Deployment Repository

                                                          Deployment Repository



• has a collecti...
Store and License Repository

       Store Repository                License Repository           Deployment Repository


...
Metadata vs content



• server repositories only store metadata
• this avoids having IP in these repositories
• it also a...
Scaling the server




• repositories can be replicated
• there is always one master (holding a copy that
  can be modifie...
Manipulating data




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

• client is responsible...
The audit trail

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

• this log gets synchronized b...
Summing it up




• We’ve looked at dynamic deployment
• the management agent on the target
• the repositories on the serv...
Any questions?




      ?&!
                 luminis
Upcoming SlideShare
Loading in …5
×

Dynamic Deployment with Apache ACE

4,664 views

Published on

This presentation gives a high level overview of Apache ACE, an OSGi based software provisioning system that can be used to deploy all kinds of components to targets varying from embedded and mobile systems up to servers.

Published in: Technology

Dynamic Deployment with Apache ACE

  1. 1. Dynamic Deployment with Marcel Offermans luminis
  2. 2. Introduction • Marcel Offermans • software architect Arnhem Apeldoorn De Steeg • Apache Felix and ACE • marcel.offermans@luminis.nl • Luminis • IT solutions from idea to implementation • experts in Java, OSGi, .NET, Agile/Scrum, Mobile luminis image © 2008 Google Earth
  3. 3. 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
  4. 4. Agenda • Deployment • Management Agent • Provisioning Server • Q&A luminis
  5. 5. Agenda • Deployment • Management Agent • Provisioning Server • Q&A luminis
  6. 6. Deployment Component A Target A Component B Target B Component C Target C luminis
  7. 7. Deployment Component A Target A Component B Deployment Target B Component C Target C luminis
  8. 8. Deployment now Component A Target A Component B Target B Component C Target C luminis
  9. 9. Deployment last year Component A Target last A month Component A Target A last week Component B Component A Target A now Component B Target C B Target Component A Target A Component B Target C B Target Component B Target B Component C Target C Component C Target C luminis
  10. 10. Topology target provisioning management network server agent component repository luminis
  11. 11. Agenda • Deployment • Management Agent • Provisioning Server • Q&A luminis
  12. 12. Management Agent • manages life cycle of bundles BundleContext !"#$%"&'($)&%*+,-./'0 1/'&%"2&)$.$),-$/3 45&%!"#$%6++$,3)& 7&+&,8&%9:%;&'8$/3%9<= 62'$+%>??@ • controls package sharing policies PackageAdmin • controls relative starting/stopping order Digitally signed by OSGi OSGi Alliance DN: cn=OSGi Alliance, c=US Alliance Date: 2007.02.22 Signatur 14:45:47 + e Not 01'00' Verified Start Level Service • implements a security policy Conditional Permission Admin luminis
  13. 13. 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
  14. 14. Deployment Admin • versioned set of artifacts • transactional install/update • fix packages provide deltas • signing makes them secure • extensible through resource processors luminis
  15. 15. Agenda • Deployment • Management Agent • Provisioning Server • Q&A luminis
  16. 16. Provisioning Server store deployment Store License Deployment Repository Repository Repository luminis
  17. 17. Deployment Repository Deployment Repository • has a collection of targets Target Component • with different versions for each target • with a set of components for each version targets versions components 1 Component A Component B 2 Component A Component B Component C Target A 3 Component A Component C Component D 4 Component C Component D luminis
  18. 18. Store and License Repository Store Repository License Repository Deployment Repository Component License + License Target = Target Component • 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 luminis
  19. 19. 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
  20. 20. Scaling the server • repositories can be replicated • there is always one master (holding a copy that can be modified) Repository replication Repository master luminis
  21. 21. Manipulating data • client and server use a checkout / commit model with optimistic locking • client is responsible for “merging” if there are concurrent changes store version retrieve version Repository list versions luminis
  22. 22. The audit trail • management agent stores all life cycle related events in an audit log • this log gets synchronized back to the server server internet target Audit Audit Log Log 17:34 Checked for updates, none found 13:23 Target started 18:34 Bundle 23 stopped 23:20 13:24 Starting update from version 5 to 8 19:34 23:25 Target started 13:23 13:24 Bundle 37 updated 20:34 23:45 Starting update from version 5 to 8 13:24 13:25 Update to version 8 succeeded 21:34 02:22 Bundle 37 updated 13:24 14:25 Target stopped 05:22 Update to version 8 succeeded 13:25 14:25 Target stopped luminis
  23. 23. 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
  24. 24. Any questions? ?&! luminis

×