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.
distribu(ng,
managing
and
monitoring
a
large
number
         of
devices   “I
really
should
think
of
a
shorter
(tle”
$ whoami
$ whoami$ id karl_paulsid: karl_pauls: no such user
$ whoami• Angelo
van
der
Sijpt• CommiAer
with
Apache
ACE• SoDware
engineer
at
Luminis
  SoDware
Development• Buzzwords:
Ja...
‐60%
User
soDware:    Linux Embedded:   ARM
User
soDware:    Linux Embedded:                Linux   ARM
OSGi
the
requirements• Embedded
device • Lots
of
them! • Custom
hardware• Remote
control• Data
collec(on
&
synchroniza(on• Exte...
OSGi• Dynamic
system • Changing
requirements • Changing
technology • Changing
deployment• Working
with
hardware • Using
ha...
device
drivers
device
drivers
device
driversBundle-NativeCode: win32.dll; osname=WindowsXP; processor=x86 , liblinux.so; osname=linux
reuse
func(onality
reuse
func(onalityState
   Sync
    Store
   State
   Sync
    Store
store     u(l    Servlet   store     u(l    Servlet
reuse
func(onality             Sync
             clientState
   Sync
    Store
    State
   Sync
    Store
store     u(l  ...
reuse
func(onality             Sync
               Sync
             client             serverState
   Sync
    Store
    ...
Let’s
deploy!
• Started
in
incubator
on
april
24th
2009• SoDware
distribu(on
framework
  based
on
OSGi• 12
commiAers• working
codebase• ...
!"#$%&(!   +%",-(!!"#$%&()   +%",-()!"#$%&(*   +%",-(*
!"#$%&(!                +%",-(!!"#$%&()   !"#$%&"()   +%",-()!"#$%&(*                +%",-(*
now!"#$%&(!   +%",-(!!"#$%&()   +%",-()!"#$%&(*   +%",-(*
last year            !"#$%&(!   *%"+,(!                              last month       !"#$%&(!           !"#$%&()       *%...
why?• Automate
deployment• Insight
into
who
uses
what• History
of
each
system• Consistent
development,
tes(ng,
produc(on• ...
Topology                                       !"#$%!                                   0"&"$%0%&!.                       ...
High
level
overview!"#"$!"$%&                         !"#$%&"()()$)*"("$+              !""#$%&
High
level
overview!"#"$!"$%&()$)*"("$+
Organizing
ar(facts• group
ar(facts:
makes
them
manageable• two
levels:
feature
and
distribu(on• Analogy:
IKEA
catalog• da...
Mapping
them
onto
targets• mapping
distribu(ons
to
targets• some(mes
done
by
an
external
system• data
kept
in
“license
rep...
User
Interface• retrieve,
modify
and
store• interact
with
OBR
High
level
overview!"#"$!"$%&                         !"#$%&"()()$)*"("$+              !""#$%&
High
level
overview!"#$%&"()
High
level
overview!"#$%&"()             !"#$%&"()*+"#%,-)%.&          /0.1")             2.3405)
Deployment
Repository&!"-)&    ()"*+,             !"#$!%&              1       0/12323   7/12323              4       0/12...
Topology                                       !"#$%!                                   0"&"$%0%&!.                       ...
Management
Agent     !"#"$%!%#&"$%#& *.#"/0#,        (.#"#10)-2#$34                (/"!340)6   3(*5!"#$%&(%)$     "!*)+#,-
Deployment
Admin• deployment
packages• versioned
set
of
ar(facts• transac(onal
install/update• fix
packages
provide
deltas•...
From
dependency
to
deployment          !"#$%&%(#)*"#$+                           6*0%4)%&%(#)*"#$+           1%(9#+:%4"&%(...
High
level
overview!"#"$!"$%&                         !"#$%&"()()$)*"("$+              !""#$%&
High
level
overview!""#$%&
Feedback                                                                    !"#$%!    *#(+,-,(&,&$.                       ...
Demo?
Demo!
Apache
ACE
Apache
ACE Web
server
“The
Wild”             Apache
ACE Web
server
Development“The
Wild”             Apache
ACE Web
server
Apache
ACE             “The
Wild”
Configura(onApache
ACE                           “The
Wild”
Configura(onApache
ACE                 Feedback   “The
Wild”
• Deployment
informa(on • No
more
version
numbers
to
remember!• Remember
the
addi(onal
devices? • SoDware
on
the
fly
• Some
numbers • 100
bundles
of
10MB
total • 300
targets • 4
minutes
• Many
devices• New
features
Apache
ACE
Apache
ACE             Relay
servers
Deployment              metadataApache
ACE                     Relay
servers
Deployment             Deployment        package              metadataApache
ACE                     Relay
servers
Deployment             Deployment        package              metadataApache
ACE                               Feedback   ...
Deployment             Deployment        package              metadataApache
ACE              Feedback                    ...
• hAp://incubator.apache.org/ace
• hAp://felix.apache.orgAngelo
van
der
Sijptangelos@apache.org
@_angelos
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Device deployment
Upcoming SlideShare
Loading in …5
×

Device deployment

4,352 views

Published on

Using Apache ACE as a distribution and management platform for a large--and growing-- number of embedded devices in the field.

I used this presentation at Apachecon NA 2010.

I'm more about story and images than about text on slides, you can try to follow along here.

Published in: Technology
  • Be the first to comment

Device deployment

  1. 1. distribu(ng,
managing
and
monitoring
a
large
number
 of
devices “I
really
should
think
of
a
shorter
(tle”
  2. 2. $ whoami
  3. 3. $ whoami$ id karl_paulsid: karl_pauls: no such user
  4. 4. $ whoami• Angelo
van
der
Sijpt• CommiAer
with
Apache
ACE• SoDware
engineer
at
Luminis
 SoDware
Development• Buzzwords:
Java,
OSGi,
Agile• angelos@apache.org
 angelo.vandersijpt@luminis.eu


  5. 5. ‐60%
  6. 6. User
soDware: Linux Embedded: ARM
  7. 7. User
soDware: Linux Embedded: Linux ARM
  8. 8. OSGi
  9. 9. the
requirements• Embedded
device • Lots
of
them! • Custom
hardware• Remote
control• Data
collec(on
&
synchroniza(on• Extensible
  10. 10. OSGi• Dynamic
system • Changing
requirements • Changing
technology • Changing
deployment• Working
with
hardware • Using
hardware • Upda(ng
firmware
  11. 11. device
drivers
  12. 12. device
drivers
  13. 13. device
driversBundle-NativeCode: win32.dll; osname=WindowsXP; processor=x86 , liblinux.so; osname=linux
  14. 14. reuse
func(onality
  15. 15. reuse
func(onalityState
 Sync
 Store
 State
 Sync
 Store
store u(l Servlet store u(l Servlet
  16. 16. reuse
func(onality Sync
 clientState
 Sync
 Store
 State
 Sync
 Store
store u(l Servlet store u(l Servlet
  17. 17. reuse
func(onality Sync
 Sync
 client serverState
 Sync
 Store
 State
 Sync
 Store
store u(l Servlet store u(l Servlet
  18. 18. Let’s
deploy!
  19. 19. • Started
in
incubator
on
april
24th
2009• SoDware
distribu(on
framework
 based
on
OSGi• 12
commiAers• working
codebase• hAp://incubator.apache.org/ace/
  20. 20. !"#$%&(! +%",-(!!"#$%&() +%",-()!"#$%&(* +%",-(*
  21. 21. !"#$%&(! +%",-(!!"#$%&() !"#$%&"() +%",-()!"#$%&(* +%",-(*
  22. 22. now!"#$%&(! +%",-(!!"#$%&() +%",-()!"#$%&(* +%",-(*
  23. 23. last year !"#$%&(! *%"+,(! last month !"#$%&(! !"#$%&() *%"+,(! last week !"#$%&(! !"#$%&() +%",-(! *%"+,(- *%"+,() now!"#$%&(! +%",-(! !"#$%&() +%",-() *%"+,(-!"#$%&() !"#$%&(* +%",-() +%",-(*!"#$%&(* +%",-(*
  24. 24. why?• Automate
deployment• Insight
into
who
uses
what• History
of
each
system• Consistent
development,
tes(ng,
produc(on• Basis
for
several
possible
extensions
  25. 25. Topology !"#$%! 0"&"$%0%&!. "$%&! !"#$%!/2,%&! *#(+,-,(&,&$. 0"&"$%0%&!. &%!(#) -%#+%# "$%&! !"#$%! 0"&"$%0%&!. "$%&! /(0*(&%&!. #%*(-,!(#1
  26. 26. High
level
overview!"#"$!"$%& !"#$%&"()()$)*"("$+ !""#$%&
  27. 27. High
level
overview!"#"$!"$%&()$)*"("$+
  28. 28. Organizing
ar(facts• group
ar(facts:
makes
them
manageable• two
levels:
feature
and
distribu(on• Analogy:
IKEA
catalog• data
is
kept
in
“store
repository” !"#$%&%(#)*"#$+ ,$-./0" 5%/"3$% 1*)"$*23-#4
  29. 29. Mapping
them
onto
targets• mapping
distribu(ons
to
targets• some(mes
done
by
an
external
system• data
kept
in
“license
repository” !"#$%&$($)*&"+*,- ."&+,"/01*% 23,4$+
  30. 30. User
Interface• retrieve,
modify
and
store• interact
with
OBR
  31. 31. High
level
overview!"#"$!"$%& !"#$%&"()()$)*"("$+ !""#$%&
  32. 32. High
level
overview!"#$%&"()
  33. 33. High
level
overview!"#$%&"() !"#$%&"()*+"#%,-)%.& /0.1") 2.3405)
  34. 34. Deployment
Repository&!"-)& ()"*+, !"#$!%& 1 0/12323 7/12323 4 0/12423 7/12323 8/42323.!"-)&/0 5 0/12423 8/42323 9/1232: 6 8/42323 9/52323 1 7/12323 9/52323.!"-)&/7 4 0/12123 7/12321 9/1232:
  35. 35. Topology !"#$%! 0"&"$%0%&!. "$%&! !"#$%!/2,%&! *#(+,-,(&,&$. 0"&"$%0%&!. &%!(#) -%#+%# "$%&! !"#$%! 0"&"$%0%&!. "$%&! /(0*(&%&!. #%*(-,!(#1
  36. 36. Management
Agent !"#"$%!%#&"$%#& *.#"/0#, (.#"#10)-2#$34 (/"!340)6 3(*5!"#$%&(%)$ "!*)+#,-
  37. 37. Deployment
Admin• deployment
packages• versioned
set
of
ar(facts• transac(onal
install/update• fix
packages
provide
deltas• signing
makes
them
secure• extensible
through
resource
processors • AutoConfig
defines
configura(on
admin
data
  38. 38. From
dependency
to
deployment !"#$%&%(#)*"#$+ 6*0%4)%&%(#)*"#$+ 1%(9#+:%4"&%(#)*"#$+,$-./0" 5%/"3$% 1*)"$*23-#4 + 1*)"$*23-#4 7/$8%" = 7/$8%" ,$-./0"
  39. 39. High
level
overview!"#"$!"$%& !"#$%&"()()$)*"("$+ !""#$%&
  40. 40. High
level
overview!""#$%&
  41. 41. 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*-
  42. 42. Demo?
Demo!
  43. 43. Apache
ACE
  44. 44. Apache
ACE Web
server
  45. 45. “The
Wild” Apache
ACE Web
server
  46. 46. Development“The
Wild” Apache
ACE Web
server
  47. 47. Apache
ACE “The
Wild”
  48. 48. Configura(onApache
ACE “The
Wild”
  49. 49. Configura(onApache
ACE Feedback “The
Wild”
  50. 50. • Deployment
informa(on • No
more
version
numbers
to
remember!• Remember
the
addi(onal
devices? • SoDware
on
the
fly
  51. 51. • Some
numbers • 100
bundles
of
10MB
total • 300
targets • 4
minutes
  52. 52. • Many
devices• New
features
  53. 53. Apache
ACE
  54. 54. Apache
ACE Relay
servers
  55. 55. Deployment metadataApache
ACE Relay
servers
  56. 56. Deployment Deployment package metadataApache
ACE Relay
servers
  57. 57. Deployment Deployment package metadataApache
ACE Feedback Relay
servers
  58. 58. Deployment Deployment package metadataApache
ACE Feedback Feedback Relay
servers
  59. 59. • hAp://incubator.apache.org/ace
• hAp://felix.apache.orgAngelo
van
der
Sijptangelos@apache.org
@_angelos

×