Jump to: navigation, search

Difference between revisions of "Oslo/blueprints/message-proxy-server"

(Use Cases: more figures)
(design/implementation)
Line 39: Line 39:
  
 
== design/implementation ==
 
== design/implementation ==
To be filled
+
 
 +
=== what's added to oslo.messaging ===
 +
* RPC proxy server which relays RPC from one message queue server to another message queue server
 +
[[File:Proxy-server.svg]]
 +
 
 +
* new transport support over unix domain socket. Although it supports only support unix domain socket, it's easy to add support with file-like object. like unix pipe.
 +
[[File:File-like-transport.svg]]
 +
 
 
=== supported RPC semantics ===
 
=== supported RPC semantics ===
 
The RPC cast/call/fanout is supported. But notification isn't supported because I don't need it. However it is easy to add it.
 
The RPC cast/call/fanout is supported. But notification isn't supported because I don't need it. However it is easy to add it.
 
+
A tricky part is timeout with call semantics because there is no timeout information in the message.
=== what's added to oslo.messaging ===
 
to be filled
 

Revision as of 07:28, 7 April 2014

Oslo.messaging: message proxy

proxy message between two messaging servers or transports

One message server is in openstack control network which openstack servers connect to and another message server is in openstack tenant network which agents connect to. Openstack server wants to send RPC message to agents in tenant networks. The control network isn't directly connected to tenant network. So proxy server relays RPC message over unix domain socket to bypass Linux netns. The supported RPC is cast, call and fanout. notification isn't supported because it's not needed at this moment. But it's easy to add it.

Use Cases

Many openstack projects uses server<-> guest agent pattern. Murano, Heat, savanna,

  • Heat, Savanna, Trove, Murano, Solum

Guest Agent Architecture.svg

Murano architecture diagram.png

  • Neutron for NFV(Network Function Virtualization)

Neutron also wants similar communication to guest agent for NFV support.

https://blueprints.launchpad.net/neutron/+spec/adv-services-in-vms

Amqp-per-guest-agent.svg

Single-amqp.svg

Virtio-serial.svg

Security-with-guest-agent.svg

design/implementation

what's added to oslo.messaging

  • RPC proxy server which relays RPC from one message queue server to another message queue server

Proxy-server.svg

  • new transport support over unix domain socket. Although it supports only support unix domain socket, it's easy to add support with file-like object. like unix pipe.

File-like-transport.svg

supported RPC semantics

The RPC cast/call/fanout is supported. But notification isn't supported because I don't need it. However it is easy to add it. A tricky part is timeout with call semantics because there is no timeout information in the message.