SlideShare a Scribd company logo
1 of 25
Provisioning distributed OSGi
   applications in a cloud
         Guillaume Nodet, FuseSource
      gnodet@gmail.com, November 2011
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
The Challenge


                    Install, configure and run OSGi
                   based applications in large scale
                              deployments




A Progress Software Company
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 fabric

A Progress Software Company
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, ActiveMQ

A Progress Software Company
What is Fabric
     Registry
     Agents
     Profiles

     Provisioning
     Remoting
     … and more

A Progress Software Company
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



                                                     Agent




A Progress Software Company
ZooKeeper Data Model
     Hierarchical                /



      namespace
                                       fabric


     Each znode has
                                                config

      data and                                             agents

      children
                                                           versions

     Data is read and                          registry



      written in its                    ...


      entirety

A Progress Software Company
Agent
     Karaf instance
     Connected to the
      registry
     Listen to registry         Agent
                                                              Agent
      changes                            Clustered Registry


     Automatic                              Agent
      provisionning


A Progress Software Company
Profiles
     List of znodes
             OSGi configuration
             Other documents
     One or more profiles associated to an
      agent
     Support multiple inheritance
     Versioned


A Progress Software Company
Runtime agent data
         Alive (ephemeral)
         IP
         Parent agent
         JMX URL
         SSH URL
         JMX domains



A Progress Software Company
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 required


A Progress Software Company
Provisioning (cont.)
         Update features / bundles
         Update karaf bundles
         Update the OSGi framework
         Update system / osgi properties




A Progress Software Company
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 updates




A Progress Software Company
Deployment
     Fabric can create agents
               Locally
               Remotely as child instances
               Remotely from scratch using an SSH access
               In the cloud, creating the VM




A Progress Software Company
Deployment (cont.)
     Fabric can create agents
               Locally
               Remotely as child instances
               Remotely from scratch using an SSH access
               In the cloud, creating the VM




A Progress Software Company
Distributed OSGi
     Implementation of distributed OSGi
      defined in Enterprise OSGi v4.2
     Remoting mechanism for transparent
      calls between OSGi services
     Uses proxies on remote services




A Progress Software Company
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 laptop


A Progress Software Company
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 agent




A Progress Software Company
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-cluster


A Progress Software Company
Other features
         Camel, CXF, ActiveMQ extensions
         Centralized security configuration
         Metrics collections into RRD
         … and more to come …




A Progress Software Company
Demo




A Progress Software Company
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
Questions




A Progress Software Company
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

More Related Content

Similar to Provisioning Distributed OSGi Applications in the Cloud with Fuse Fabric

Part6 introducing the jas forge collaborative project
Part6   introducing the jas forge collaborative projectPart6   introducing the jas forge collaborative project
Part6 introducing the jas forge collaborative projectJasmine Conseil
 
Presentazione resin.io
Presentazione resin.ioPresentazione resin.io
Presentazione resin.ioGianluca Leo
 
Compiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSICompiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSIWojciech Lichota
 
UShareSoft Virtualization & Cloud Factory
UShareSoft Virtualization & Cloud FactoryUShareSoft Virtualization & Cloud Factory
UShareSoft Virtualization & Cloud FactoryUShareSoft
 
Social ent. with java on heroku
Social ent. with java on herokuSocial ent. with java on heroku
Social ent. with java on herokuAnand B Narasimhan
 
OGCE MSI Presentation
OGCE MSI PresentationOGCE MSI Presentation
OGCE MSI Presentationmarpierc
 
JavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In DepthJavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In DepthDanno Ferrin
 
SkyeCORE - Rev Up Your OSGi Services!
SkyeCORE - Rev Up Your OSGi Services!SkyeCORE - Rev Up Your OSGi Services!
SkyeCORE - Rev Up Your OSGi Services!Wayne Williams
 
Heroku for-team-collaboration
Heroku for-team-collaborationHeroku for-team-collaboration
Heroku for-team-collaborationJohn Stevenson
 
Heroku for team collaboration
Heroku for team collaborationHeroku for team collaboration
Heroku for team collaborationJohn Stevenson
 
FIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2Pascal Rapicault
 
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?ukdpe
 
A microservice architecture based on golang
A microservice architecture based on golangA microservice architecture based on golang
A microservice architecture based on golangGianfranco Reppucci
 
OGCE SciDAC2010 Tutorial
OGCE SciDAC2010 TutorialOGCE SciDAC2010 Tutorial
OGCE SciDAC2010 Tutorialmarpierc
 
Part 3 JasForge the collaborative and agile project v1.0
Part 3   JasForge the collaborative and agile project v1.0Part 3   JasForge the collaborative and agile project v1.0
Part 3 JasForge the collaborative and agile project v1.0Jasmine Conseil
 
Jasforge Agile Collaborative Platform
Jasforge Agile Collaborative PlatformJasforge Agile Collaborative Platform
Jasforge Agile Collaborative PlatformJasmine Conseil
 
Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Skytap Cloud
 
XebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs
 
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...XebiaLabs
 

Similar to Provisioning Distributed OSGi Applications in the Cloud with Fuse Fabric (20)

Part6 introducing the jas forge collaborative project
Part6   introducing the jas forge collaborative projectPart6   introducing the jas forge collaborative project
Part6 introducing the jas forge collaborative project
 
Presentazione resin.io
Presentazione resin.ioPresentazione resin.io
Presentazione resin.io
 
Compiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSICompiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSI
 
UShareSoft Virtualization & Cloud Factory
UShareSoft Virtualization & Cloud FactoryUShareSoft Virtualization & Cloud Factory
UShareSoft Virtualization & Cloud Factory
 
Social ent. with java on heroku
Social ent. with java on herokuSocial ent. with java on heroku
Social ent. with java on heroku
 
OGCE MSI Presentation
OGCE MSI PresentationOGCE MSI Presentation
OGCE MSI Presentation
 
JavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In DepthJavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In Depth
 
SkyeCORE - Rev Up Your OSGi Services!
SkyeCORE - Rev Up Your OSGi Services!SkyeCORE - Rev Up Your OSGi Services!
SkyeCORE - Rev Up Your OSGi Services!
 
Heroku for-team-collaboration
Heroku for-team-collaborationHeroku for-team-collaboration
Heroku for-team-collaboration
 
Heroku for team collaboration
Heroku for team collaborationHeroku for team collaboration
Heroku for team collaboration
 
FIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT Agents
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2
 
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
 
A microservice architecture based on golang
A microservice architecture based on golangA microservice architecture based on golang
A microservice architecture based on golang
 
OGCE SciDAC2010 Tutorial
OGCE SciDAC2010 TutorialOGCE SciDAC2010 Tutorial
OGCE SciDAC2010 Tutorial
 
Part 3 JasForge the collaborative and agile project v1.0
Part 3   JasForge the collaborative and agile project v1.0Part 3   JasForge the collaborative and agile project v1.0
Part 3 JasForge the collaborative and agile project v1.0
 
Jasforge Agile Collaborative Platform
Jasforge Agile Collaborative PlatformJasforge Agile Collaborative Platform
Jasforge Agile Collaborative Platform
 
Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development
 
XebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs Overview Slides
XebiaLabs Overview Slides
 
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
 

Recently uploaded

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

Provisioning Distributed OSGi Applications in the Cloud with Fuse Fabric

  • 1. Provisioning distributed OSGi applications in a cloud Guillaume Nodet, FuseSource gnodet@gmail.com, November 2011
  • 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. The Challenge Install, configure and run OSGi based applications in large scale deployments A Progress Software Company
  • 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 fabric A Progress Software Company
  • 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, ActiveMQ A Progress Software Company
  • 6. What is Fabric  Registry  Agents  Profiles  Provisioning  Remoting  … and more A Progress Software Company
  • 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 Agent A Progress Software Company
  • 8. ZooKeeper Data Model  Hierarchical / namespace fabric  Each znode has config data and agents children versions  Data is read and registry written in its ... entirety A Progress Software Company
  • 9. Agent  Karaf instance  Connected to the registry  Listen to registry Agent Agent changes Clustered Registry  Automatic Agent provisionning A Progress Software Company
  • 10. Profiles  List of znodes  OSGi configuration  Other documents  One or more profiles associated to an agent  Support multiple inheritance  Versioned A Progress Software Company
  • 11. Runtime agent data  Alive (ephemeral)  IP  Parent agent  JMX URL  SSH URL  JMX domains A Progress Software Company
  • 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 required A Progress Software Company
  • 13. Provisioning (cont.)  Update features / bundles  Update karaf bundles  Update the OSGi framework  Update system / osgi properties A Progress Software Company
  • 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 updates A Progress Software Company
  • 15. Deployment  Fabric can create agents  Locally  Remotely as child instances  Remotely from scratch using an SSH access  In the cloud, creating the VM A Progress Software Company
  • 16. Deployment (cont.)  Fabric can create agents  Locally  Remotely as child instances  Remotely from scratch using an SSH access  In the cloud, creating the VM A Progress Software Company
  • 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 services A Progress Software Company
  • 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 laptop A Progress Software Company
  • 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 agent A Progress Software Company
  • 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-cluster A Progress Software Company
  • 21. Other features  Camel, CXF, ActiveMQ extensions  Centralized security configuration  Metrics collections into RRD  … and more to come … A Progress Software Company
  • 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
  • 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