-
Notifications
You must be signed in to change notification settings - Fork 4
Federated Config Servers
Federated Config Servers
Federated Config Servers describes an environment where two or more Audrey Config Servers are able to share instance configurations between each other to facilitate the configuration of guests in disparate back ends.
{{toc}}
- Federation: allow interoperability and information sharing between decentralized components in an architecture
- Federated deployment: a deployment of virtual machines across multiple unique back end cloud providers that must share configuration information
- Federated Config Server: one or more Audrey Config Servers deployed to otherwise disconnected environments that must cooperate in the configuration of federated deployments
- Topic: an artifact of a message driven architecture over which participants can publish and subscribe to messages
The purpose of federated config servers is to provide a mechanism for instances launched as part of the same deployment but in separate back ends to still share deployment configuration information through their respective config servers. The assumption is that the Config Servers in disparate back ends would be connected to a shared network via a VPN or something similar (see LINK_ME((Assumptions))LINK_ME below).
The implementation is summarized as two parts:
- Changes to Config Server to broadcast configuration changes received from guests in a particular deployment
- The addition of Qpid as a messaging service to transmit the configuration changes that Config Server broadcasts
- additional logic to broadcast “PUT /params/$version/$uuid”
- additional logic for Config Server to register with Qpid broker
- additional logic for Config Server to register as publisher/subscriber to each topic
Introducing Qpid as a messaging service provides three key pieces of functionality:
- message broadcast from sender to multiple receivers
- reliable delivery of durable messages
- federation through dynamic exchange routes
- new topic would be created for each deployment
- dynamic exchange routes are established between brokers to provide federation of messages from config servers
- Data transmission encryption
- Config Server authentication with Qpid broker
This proposal assumes two key factors about network connectivity:
- Federated Config Servers are connected to a shared network
- this document does not propose a specific solution to the shared networking problem
- The deployed instances are not connected to a shared network
- if all deployed instances are connected to a shared network (e.g., VPN), then there is no need for Federated Config Servers since all guests could reach a single shared Config Server
This proposal assumes that Conductor will provide a way to separate out the instances in a single deployment to launch in multiple back ends. And example of such a deployment could be a multi-tiered application where the application servers and database servers should be launched on RHEV running internally, while the proxy web servers should be launched in EC2 externally.
- How does conductor launch a single deployment across multiple back ends?