Your SlideShare is downloading. ×
Architecture, Flow and Terminology
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Architecture, Flow and Terminology

42,646
views

Published on

Presentation detailing the architecture, middleware use, components and terminology of MCollective. …

Presentation detailing the architecture, middleware use, components and terminology of MCollective.

Additionally data flow and packet details of a full RPC request is shown.

Published in: Technology

2 Comments
10 Likes
Statistics
Notes
No Downloads
Views
Total Views
42,646
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
115
Comments
2
Likes
10
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide





























  • Transcript

    • 1. The Marionette Collective Middleware Concepts and Message Flow http://marionette-collective.org
    • 2. The Marionette Collective Connectivity
    • 3. Traditional Multi-Threaded
    • 4. Delegate comms to Middleware
    • 5. Delegate comms to Middleware
    • 6. Delegate comms to Middleware
    • 7. Delegate comms to Middleware
    • 8. The Marionette Collective Types of Message
    • 9. Types of Message - Queued
    • 10. Types of Message - Queued
    • 11. Types of Message - Broadcast
    • 12. The Marionette Collective Components and Terminology
    • 13. Nodes Physical servers being managed mcollective-0.4.7.noarch.rpm mcollective-common-0.4.7.noarch.rpm
    • 14. Server mcollectived The ruby based daemon on every node mcollective-0.4.7.noarch.rpm mcollective-common-0.4.7.noarch.rpm
    • 15. Agent service.rb Small ruby classes that manage services, packages, etc. Hosted by the mcollective-0.4.7.noarch.rpm server mcollective-common-0.4.7.noarch.rpm
    • 16. Client Include MCollective::RPC Any component that sends requests to servers. mcollective-client-0.4.7.noarch.rpm mcollective-common-0.4.7.noarch.rpm
    • 17. Collective Combination of nodes, servers, agents, middleware and clients
    • 18. Connectivity Plugin Communication between all components. Many possible. rubygem stomp
    • 19. The Marionette Collective Anatomy of a RPC request
    • 20. The Marionette Collective * Discover with filter * Send request with filter * Wait for responses matching discovery mc-service -W country=za httpd status
    • 21. Request - Discovery - Request ID {:msgtime=>1280270404, :requestid=>"a48b4f84d66ff0c30c621d544750a081", :msgtarget=>"/topic/mcollective.discovery.command", :callerid=>"cert=rip", :filter=> {"identity"=>[], "fact"=>[{:fact=>"country", :value=>"za"}], "agent"=>[“service”], "cf_class"=>[]}, :senderid=>"nephilim.ml.org", :body=>"ping", :hash=> "xxxxx"} mc-service -W country=za httpd status
    • 22. Request - Discovery - Target {:msgtime=>1280270404, :requestid=>"a48b4f84d66ff0c30c621d544750a081", :msgtarget=>"/topic/mcollective.discovery.command", :callerid=>"cert=rip", :filter=> {"identity"=>[], "fact"=>[{:fact=>"country", :value=>"za"}], "agent"=>[“service”], "cf_class"=>[]}, :senderid=>"nephilim.ml.org", :body=>"ping", :hash=> "xxxxx"} mc-service -W country=za httpd status
    • 23. Request - Discovery - Filter {:msgtime=>1280270404, :requestid=>"a48b4f84d66ff0c30c621d544750a081", :msgtarget=>"/topic/mcollective.discovery.command", :callerid=>"cert=rip", :filter=> {"identity"=>[], "fact"=>[{:fact=>"country", :value=>"za"}], "agent"=>[“service”], "cf_class"=>[]}, :senderid=>"nephilim.ml.org", :body=>"ping", :hash=> "xxxxx"} mc-service -W country=za httpd status
    • 24. Request - Discovery - Body {:msgtime=>1280270404, :requestid=>"a48b4f84d66ff0c30c621d544750a081", :msgtarget=>"/topic/mcollective.discovery.command", :callerid=>"cert=rip", :filter=> {"identity"=>[], "fact"=>[{:fact=>"country", :value=>"za"}], "agent"=>[“service”], "cf_class"=>[]}, :senderid=>"nephilim.ml.org", :body=>"ping", :hash=> "xxxxx"} mc-service -W country=za httpd status
    • 25. Request - Discovery - Reply {:msgtime=>1280270802, :requestid=>"a48b4f84d66ff0c30c621d544750a081", :senderagent=>"discovery", :body=>"pong", :senderid=>"my.machine.co.za", :msgtarget=>"/topic/mcollective.discovery.reply", :hash=> "xxx"} mc-service -W country=za httpd status
    • 26. Request - RPC Request - Filter {:msgtime=>1280271069, :filter=> {"identity"=>[], "fact"=>[{:value=>"za", :fact=>"country"}], "agent"=>["service"], "cf_class"=>[]}, :requestid=>"3b57f528746828c9f77d2d1956b94eb9", :msgtarget=>"/topic/mcollective.service.command", :callerid=>"cert=rip", :body=> {:agent => “service" :action => “status”, :service => “httpd”}, :senderid=>"nephilim.ml.org", :hash=> "xxxx"} mc-service -W country=za httpd status
    • 27. Request - RPC Request - Target {:msgtime=>1280271069, :filter=> {"identity"=>[], "fact"=>[{:value=>"za", :fact=>"country"}], "agent"=>["service"], "cf_class"=>[]}, :requestid=>"3b57f528746828c9f77d2d1956b94eb9", :msgtarget=>"/topic/mcollective.service.command", :callerid=>"cert=rip", :body=> {:agent => “service" :action => “status”, :service => “httpd”}, :senderid=>"nephilim.ml.org", :hash=> "xxxx"} mc-service -W country=za httpd status
    • 28. Request - RPC Request - RPC Body {:msgtime=>1280271069, :filter=> {"identity"=>[], "fact"=>[{:value=>"za", :fact=>"country"}], "agent"=>["service"], "cf_class"=>[]}, :requestid=>"3b57f528746828c9f77d2d1956b94eb9", :msgtarget=>"/topic/mcollective.service.command", :callerid=>"cert=rip", :body=> {:agent => “service" :action => “status”, :service => “httpd”}, :senderid=>"nephilim.ml.org", :hash=> "xxxx"} mc-service -W country=za httpd status
    • 29. Request - RPC Reply {:msgtime=>1280272138, :requestid=>"3b57f528746828c9f77d2d1956b94eb9", :body=> {:statuscode => 0, :statusmsg => “OK”, :data{:status => “running"}} :senderagent=>"service", :senderid=>"my.machine.co.za", :hash=> "xxxxx", :msgtarget=>"/topic/mcollective.service.reply"} mc-service -W country=za httpd status