Dynamic Deployment with Apache ACE

4,401 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

×