Provisioning distributed OSGi   applications in a cloud         Guillaume Nodet, FuseSource      gnodet@gmail.com, Novembe...
My Background     Guillaume Nodet     Software Fellow at FuseSource     ASF member     PMC member of ActiveMQ, Camel, ...
The Challenge                    Install, configure and run OSGi                   based applications in large scale      ...
Fuse Fabric     http://fabric.fusesource.org/     Open source software for configuring,      provisioning and running OS...
Fuse Fabric: what does it do?     Remote deployment and config             Provisioning of features across machines     ...
What is Fabric     Registry     Agents     Profiles     Provisioning     Remoting     … and moreA Progress Software ...
Registry     Based on Apache ZooKeeper             A highly available, scalable, distributed,              configuration...
ZooKeeper Data Model     Hierarchical                /      namespace                                       fabric     E...
Agent     Karaf instance     Connected to the      registry     Listen to registry         Agent                       ...
Profiles     List of znodes             OSGi configuration             Other documents     One or more profiles associ...
Runtime agent data         Alive (ephemeral)         IP         Parent agent         JMX URL         SSH URL        ...
Provisioning     fabric-agent uses a know config PID     At boot time and each time the profiles      are updated, provi...
Provisioning (cont.)         Update features / bundles         Update karaf bundles         Update the OSGi framework  ...
Versioning     All profiles are stored in a version     An agent points to a given version     All updates on the curre...
Deployment     Fabric can create agents               Locally               Remotely as child instances               ...
Deployment (cont.)     Fabric can create agents               Locally               Remotely as child instances        ...
Distributed OSGi     Implementation of distributed OSGi      defined in Enterprise OSGi v4.2     Remoting mechanism for ...
Distributed OSGi (cont.)         Using ZooKeeper for discovery         Accessible remotely outside OSGi         Full su...
Distributed OSGi (cont.)     Service is queried, looked       up in the registry, and                         Service is e...
Commands     Registry             zk-cluster zk:create     zk:delete              zk:set     zk:get              zk:impo...
Other features         Camel, CXF, ActiveMQ extensions         Centralized security configuration         Metrics colle...
DemoA Progress Software Company
Wrap up    Open source software for configuring,    provisioning and running OSGi    deployments on any machines.    Featu...
QuestionsA Progress Software Company
Links     Fuse Fabric            • http://fabric.fusesource.org/            • https://github.com/fusesource/fabric     A...
Upcoming SlideShare
Loading in …5
×

Apache con 2011 provisioning distributed os-gi applications in a cloud

1,222 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,222
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Apache con 2011 provisioning distributed os-gi applications in a cloud

  1. 1. Provisioning distributed OSGi applications in a cloud Guillaume Nodet, FuseSource gnodet@gmail.com, November 2011
  2. 2. My Background  Guillaume Nodet  Software Fellow at FuseSource  ASF member  PMC member of ActiveMQ, Camel, CXF, Felix, Geronimo, Karaf, Mina, ODE, ServiceMix  OSGi Enterprise Expert Group Twitter: http://twitter.com/gnodet/ LinkedIn: http://www.linkedin.com/in/guillaumenodet Blog: http://gnodet.blogspot.com/A Progress Software Company
  3. 3. The Challenge Install, configure and run OSGi based applications in large scale deploymentsA Progress Software Company
  4. 4. Fuse Fabric  http://fabric.fusesource.org/  Open source software for configuring, provisioning and running OSGi deployments on any machines  physical, virtual, private, public clouds  Keeps you DRY from those rainy clouds   Weave your container into an easy to manage fabricA Progress Software Company
  5. 5. Fuse Fabric: what does it do?  Remote deployment and config  Provisioning of features across machines  Distributed configurations  Profiling of features / configs  Distributed applications  Distributed OSGi  Middleware / integration support  CXF, Camel, ActiveMQA Progress Software Company
  6. 6. What is Fabric  Registry  Agents  Profiles  Provisioning  Remoting  … and moreA Progress Software Company
  7. 7. Registry  Based on Apache ZooKeeper  A highly available, scalable, distributed, configuration, consensus, group membership, leader election, naming, and coordination service ZooKeeper  Proven track record Agent  Support network splits Agent Clustered Registry AgentA Progress Software Company
  8. 8. ZooKeeper Data Model  Hierarchical / namespace fabric  Each znode has config data and agents children versions  Data is read and registry written in its ... entiretyA Progress Software Company
  9. 9. Agent  Karaf instance  Connected to the registry  Listen to registry Agent Agent changes Clustered Registry  Automatic Agent provisionningA Progress Software Company
  10. 10. Profiles  List of znodes  OSGi configuration  Other documents  One or more profiles associated to an agent  Support multiple inheritance  VersionedA Progress Software Company
  11. 11. Runtime agent data  Alive (ephemeral)  IP  Parent agent  JMX URL  SSH URL  JMX domainsA Progress Software Company
  12. 12. Provisioning  fabric-agent uses a know config PID  At boot time and each time the profiles are updated, provisioning is applied  List of repositories, features, bundles  Using OBR internally to compute the set of bundles to deploy  Update / install / uninstall as requiredA Progress Software Company
  13. 13. Provisioning (cont.)  Update features / bundles  Update karaf bundles  Update the OSGi framework  Update system / osgi propertiesA Progress Software Company
  14. 14. Versioning  All profiles are stored in a version  An agent points to a given version  All updates on the current version are propagated immediately  Rolling updatesA Progress Software Company
  15. 15. Deployment  Fabric can create agents  Locally  Remotely as child instances  Remotely from scratch using an SSH access  In the cloud, creating the VMA Progress Software Company
  16. 16. Deployment (cont.)  Fabric can create agents  Locally  Remotely as child instances  Remotely from scratch using an SSH access  In the cloud, creating the VMA Progress Software Company
  17. 17. Distributed OSGi  Implementation of distributed OSGi defined in Enterprise OSGi v4.2  Remoting mechanism for transparent calls between OSGi services  Uses proxies on remote servicesA Progress Software Company
  18. 18. Distributed OSGi (cont.)  Using ZooKeeper for discovery  Accessible remotely outside OSGi  Full support for OSGi filters  No change for the client  Add service.exported.interfaces=* on the service  Optimized IO  HawtDispatch, tcp pool, multiplexing, optimized protocol, support for protobuf, support for asynchronous calls  > 25000 req/s on my laptopA Progress Software Company
  19. 19. Distributed OSGi (cont.) Service is queried, looked up in the registry, and Service is exported and imported as a proxy registered in the registry Agent Agent DOSGi Agent Proxy used to send direct calls to the remote agentA Progress Software Company
  20. 20. Commands  Registry  zk-cluster zk:create zk:delete zk:set zk:get zk:import zk:export zk:list  Profile  fabric:create-profile fabric:edit-profile fabric:display-profile fabric:domains fabric:list-profiles  Agent  fabric:create-agent fabric:delete-agent fabric:list-agent fabric:connect fabric:start fabric:stop fabric:zk-clusterA Progress Software Company
  21. 21. Other features  Camel, CXF, ActiveMQ extensions  Centralized security configuration  Metrics collections into RRD  … and more to come …A Progress Software Company
  22. 22. DemoA Progress Software Company
  23. 23. Wrap up Open source software for configuring, provisioning and running OSGi deployments on any machines. Featuring various components for integration based projects and an optimized distributed OSGi implementation.A Progress Software Company
  24. 24. QuestionsA Progress Software Company
  25. 25. Links  Fuse Fabric • http://fabric.fusesource.org/ • https://github.com/fusesource/fabric  Apache ZooKeeper • http://zookeeper.apache.org/  Apache Karaf • http://karaf.apache.org/  Guillaume Nodet • http://gnodet.blogspot.com/ • gnodet@gmail.com  FuseSource • http://fusesource.com/A Progress Software Company

×