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 Apache Felix

3,105 views

Published on

A talk about Apache ACE and how it can be used to dynamically deploy components to targets.

Published in: Technology

Dynamic Deployment With Apache Felix

  1. 1. Dynamic  deployment   with  Apache  Felix Marcel  Offermans Friday, November 6, 2009
  2. 2. Friday, November 6, 2009
  3. 3. Marcel  Offermans • commi0er  and  PMC  member  at  Apache  Felix • commi0er  at  Apache  ACE • so<ware  architect  at  luminis  technologies • marcel.offermans@luminis.nl Friday, November 6, 2009
  4. 4. Agenda • The  case  for  OSGi • Dynamic  Deployment  with  Apache  ACE • Demo,  ACE  in  AcIon • Wrapup Friday, November 6, 2009
  5. 5. The  case  for  OSGi • Paint  ApplicaIon • wri0en  in  Java • sold  to  customers Friday, November 6, 2009
  6. 6. “Specials”  that  fork  your  code Friday, November 6, 2009
  7. 7. ConCnuous  builds  taking  a  long  Cme Friday, November 6, 2009
  8. 8. Code  reflects  the  architecture? Friday, November 6, 2009
  9. 9. How  hard  is  it  to  change  something? Friday, November 6, 2009
  10. 10. Re-­‐use:  copy/paste Friday, November 6, 2009
  11. 11. Re-­‐use:  Object  Oriented Friday, November 6, 2009
  12. 12. Re-­‐use:  Component  Based Friday, November 6, 2009
  13. 13. ParCConing  your  applicaCon • minimize  dependencies • consider  rate  of  change • minimize  complexity • maximize  architected  flexibility • promote  reuse • improve  testability Friday, November 6, 2009
  14. 14. Designing  with  services >)=9)%)% A(..0=9 28"=4? C- (,)= 203) =)8 #0=302 @07(;' &<0,) -.,(%')% *+,(%')% 4%0,< 2:;0%) #"%#6) '%"0=46) 234 /0#)1(($ !"#$% A(=54;%0B(= @(4 &'(%) *3)=' #(=54 6(44)% 56)272'). 8)1903 )3)=' Friday, November 6, 2009
  15. 15. Designing  with  services >)=9)%)% A(..0=9 %)=9)%)% #(..0=9 28"=4? C- (,)= 203) =)8 #0=302 28"=4D#0=302 28"=4D;" 28"=4D#.9D(,)= 28"=4D#.9D203) 28"=4D#.9D=)8 28"=4D#(='%(62 @07(;' &<0,) -.,(%')% *+,(%')% 607(;' 2<0,) ".,(%')% )+,(%')% 4%0,< 2:;0%) #"%#6) '%"0=46) 234 /0#)1(($ !"#$% 607(;'D4%0,< 2<0,)D2:;0%) 2<0,)D#"%#6) 2<0,)D'%"0=46) ".,D234 )+,DE(($ ".,D!"#$% A(=54;%0B(= @(4 &'(%) *3)=' (24"D#0 (24"D6(4 2'(%) (24"D)3)=' #(=54 6(44)% 56)272'). 8)1903 )3)=' /)6"+D#0 /)6"+D6(4 2'(%)D/2 2'(%)D8)1903 /)6"+D)3)=' Friday, November 6, 2009
  16. 16. Designing  with  services %)=9)%)% #(..0=9 >)=9)%)% A(..0=9 %)=9)%)% #(..0=9 ;" #(..0=92 28"=4? C- (,)= 203) =)8 #0=302 28"=4D#0=302 28"=4D;" 28"=4D#.9D(,)= 28"=4D#.9D203) 28"=4D#.9D=)8 28"=4D#(='%(62 9%08"=4 &<0,) 0,"D"( @07(;' -.,(%')% *+,(%')% 607(;' 2<0,) ".,(%')% )+,(%')% 4%0,< 2<0,)2 234 )+,(%')%2 4%0,< 2:;0%) #"%#6) '%"0=46) 234 /0#)1(($ !"#$% 607(;'D4%0,< 2<0,)D2:;0%) 2<0,)D#"%#6) 2<0,)D'%"0=46) ".,D234 )+,DE(($ ".,D!"#$% 0,"D(24" A(=54;%0B(= @(4 &'(%) *3)=' (24"D#0 (24"D6(4 2'(%) (24"D)3)=' #(=5409."= 6(4 56)2'(%) 8)1903 )3)=' #(=54 6(44)% 56)272'). 8)1903 )3)=' /)6"+D#0 /)6"+D6(4 2'(%)D/2 2'(%)D8)1903 /)6"+D)3)=' Friday, November 6, 2009
  17. 17. The  Case  for  ACE • Started  in  incubator  on  april  24th  2009 • So<ware  distribuIon  framework   based  on  OSGi • 7  commi0ers • working  codebase • no  release  yet • h0p://incubator.apache.org/ace/ Friday, November 6, 2009
  18. 18. Deployment !"#$"%&%'() !"#$%&'( !"#$"%&%'(* !"#$%&'"() !"#$%&') !"#$"%&%'(! !"#$%&'* Friday, November 6, 2009
  19. 19. Keeping  the  history last year !"#$"%&%'() +,-.&'() last month !"#$"%&%'() !"#$"%&%'(* +,-.&'() last week !"#$"%&%'() !"#$"%&%'(* !"#$%&'( +,-.&'(! +,-.&'(* now !"#$"%&%'() !"#$%&'( !"#$"%&%'(* !"#$%&') +,-.&'(! !"#$"%&%'(* !"#$"%&%'(! !"#$%&') !"#$%&'* !"#$"%&%'(! !"#$%&'* Friday, November 6, 2009
  20. 20. Why? • Automate  deployment • Insight  into  who  uses  what • History  of  each  system • Consistent  development,  tesIng,  producIon • Basis  for  several  possible  extensions Friday, November 6, 2009
  21. 21. Topology !"#$%! 0"&"$%0%&!. "$%&! !"#$%! /2,%&! *#(+,-,(&,&$. 0"&"$%0%&!. &%!'(#) -%#+%# "$%&! !"#$%! 0"&"$%0%&!. "$%&! /(0*(&%&!. #%*(-,!(#1 Friday, November 6, 2009
  22. 22. High  level  overview !"#"$!"$%&' !"#,-&("$+ ()$)*"("$+ .""!/)%0 Friday, November 6, 2009
  23. 23. Dependency  Management • Organizing  components • Mapping  them  to  targets Friday, November 6, 2009
  24. 24. Organizing  components • group  components:  makes  them  manageable • two  levels:  group  and  license • Analogy:  IKEA  catalog • data  is  kept  in  “store  repository” !"#$%&'%(#)*"#$+ !"#$"%&%' ,-".$ ()*&%+& Friday, November 6, 2009
  25. 25. Mapping  them  onto  targets • mapping  licenses  to  targets • someImes  done  by  an  external  system • data  kept  in  “license  repository” !"#$%&$'($)*&"+*,- !"#$%&$ '()*$+ Friday, November 6, 2009
  26. 26. User  Interface • user  retrieves,   • modifies  locally  and   • stores  data  on  server Friday, November 6, 2009
  27. 27. Deployment • list  of  targets • list  of  versions  per  target • list  of  components  per  version • management  agent !"#$%&'"()*+"#%,-)%.& !"#$%& '()*(+%+& Friday, November 6, 2009
  28. 28. Deployment  Repository ',*-&'( )&*(+"%( !"#$"%&%'( 2 1"#$"%&%'/0 !"#$"%&%'() 3 1"#$"%&%'/0 !"#$"%&%'() !"#$"%&%'(! .,*-&'/0 4 1"#$"%&%'/0 !"#$"%&%'(! !"#$"%&%'(* 5 1"#$"%&%'/1 !"#$"%&%'(* 2 1"#$"%&%'/6 !"#$"%&%'(* .,*-&'/6 3 1"#$"%&%'/0 !"#$"%&%'() !"#$"%&%'(* Friday, November 6, 2009
  29. 29. Management  Agent • manages  life  cycle  of  bundles BundleContext • controls  package  sharing  policies PackageAdmin • controls  starIng/stopping  order StartLevel !"#$%"&'($)&%*+,-./'0 1/'&%"2&)$.$),-$/3 45&%!"#$%6++$,3)& • implements  a  security  policy 7&+&,8&%9:%;&'8$/3%9<= >?3&%=@@A Condi7onalPermissionAdmin Friday, November 6, 2009
  30. 30. Management  Agent !"#"$%!%#&'"$%#& *'.#"/0#, '('.# "#10)-2#$34 (/"!340)6 3(*5 !"#$%&'(%)$ "!*')+#,- Friday, November 6, 2009
  31. 31. Deployment  Admin • deployment  packages • versioned  set  of  arIfacts • transacIonal  install/update • fix  packages  provide  deltas • signing  makes  them  secure • extensible  through  resource  processors • AutoConfig  defines  configuraIon  admin  data Friday, November 6, 2009
  32. 32. From  dependency  to  deployment !"#$%&'%(#)*"#$+ ,*-%.)%&'%(#)*"#$+ /%(0#+1%."&'%(#)*"#$+ !"#$"%&%' ,-".$ ()*&%+& + ()*&%+& /0-1&' = /0-1&' !"#$"%&%' Friday, November 6, 2009
  33. 33. Feedback !"#$%! *#(+,-,(&,&$. /"&"$%/%&!. &%!'(#) -%#+%# "$%&! 012,!. 012,!. 3($ 3($ !=#".%@A*?B*-%45(%23-'+*,C%151*%4521- $"#$E%;21-<*%$"%,+533*- !:#". !D#".!"#$"%&'()*+%,+'(+*- $"#$9 !"#$"%&'()*+%,+'(+*- $E#".!"#$.%/+'(01)%23-'+*%4(56%7*(,851%9%+5%: $"#.9 !"#$.%/+'(01)%23-'+*%4(56%7*(,851%9%+5%: $!#".!"#$.%;21-<*%"=%23-'+*- E$#$$ !"#$.%;21-<*%"=%23-'+*- !"#$9%>3-'+*%+5%7*(,851%:%,2??**-*- E9#$$ !"#$9%>3-'+*%+5%7*(,851%:%,2??**-*- !.#$9%&'()*+%,+533*- !.#$9%&'()*+%,+533*- Friday, November 6, 2009
  34. 34. Demo Friday, November 6, 2009
  35. 35. Demo Friday, November 6, 2009
  36. 36. Demo Friday, November 6, 2009
  37. 37. Demo Friday, November 6, 2009
  38. 38. Wrapup • Apache  ACE  is  incubaIng • Take  it  for  a  test-­‐drive! • Looking  for  contribuIons: • Apache  Felix  Karaf • Maven  /  Nexus  repository • Kalumet,  JEE  auto  deployment Friday, November 6, 2009
  39. 39. QuesCons? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Friday, November 6, 2009

×