Update Architecture Doc

Add new services and update descriptions, add a high-level
description of what Designate is.

New picture: http://i.imgur.com/UlDJi3t.png

Change-Id: I5750547486c2b69241c034a48940d8f28a7a3e56
This commit is contained in:
Tim Simmons 2017-02-22 19:20:59 +00:00
parent 14eec5dd3f
commit d67a33e017
3 changed files with 12 additions and 10 deletions

View File

@ -19,6 +19,8 @@
Architecture
============
Designate provides multi-tenant DNS as a Service. Designate provides a REST API, applies business logic, persists DNS data to a database, and orchestrates the propagation of the DNS data to configured pools of DNS servers. For a more detailed breakdown of responsibilities and components, see the components below.
.. index::
double: architecture; brief
@ -47,19 +49,19 @@ Designate MiniDNS
-----------------------
designate-mdns is the service that sends DNS NOTIFY and answers zone transfer (AXFR) requests. This allows Designate to integrate with any DNS server that supports these very standard methods of communicating. designate-mdns also encapsulates all other forms of DNS protocol that Designate performs. For example, sending SOA queries to check that a change is live.
.. _designate-pool-manager:
.. _designate-worker:
Designate Pool Manager
-----------------------
designate-pool-manager is a service that manages the states of the DNS servers Designate manages. The Pool Manager is configured to know which DNS servers Designate manages, and their type of backend (PowerDNS, BIND9, etc). It can also divide those servers into 'Pools' so that zones within Designate can be split across different sets of backend servers. The Pool Manager is also responsible for making sure that backend DNS servers are in sync with the Designate database.
Designate Worker
----------------
designate-worker is a service that manages state of the DNS servers Designate manages, and any other long-running or otherwise complicated piece of work. The worker reads configuration for DNS servers from the Designate database, which is populated via the pools.yaml file. These DNS server backends are loaded into the worker so it understands how to create, update, and delete zones and recordsets on each DNS server. The Worker is fully aware of DNS Server 'Pools', so a single worker process can manage many pools of DNS servers.
.. _designate-zone-manager:
.. _designate-producer:
Designate Zone Manager
-----------------------
designate-zone-manager is a service that handle all periodic tasks relating to the zone shard it is responsible for. A zone shard is a collection of zones allocated based on first three characters of zone UUID.
Designate Producer
------------------
designate-producer is a service that handles the invocation of long-running and potentially large jobs. Producer processes start work for an automatically assigned shard of the zones Designate manages. Shards are allocated based on the first three characters of the zone ID (a UUID field). The number of shards under management of a single producer process is equal to the total number of shards divided by the number of producer processes. This means the more producer processes are started, the less work is created at any one time.
The current implemented periodic tasks in zone manager include emitting dns.zone.exists events for Ceilometer, purging deleted zones from database, polling secondary zones at their refresh intervals, and generating delayed NOTIFY transactions.
The current implemented tasks in producer include emitting dns.zone.exists events for Ceilometer, purging deleted zones from database, polling secondary zones at their refresh intervals, generating delayed NOTIFY transactions, and invoking a periodic recovery of zones in an error state.
.. _designate-sink:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -18,7 +18,7 @@ Development Environment on Ubuntu
*********************************
Designate is comprised of four main components :ref:`designate-api`, :ref:`designate-central`,
:ref:`designate-mdns`, and :ref:`designate-pool-manager`, supported by a few
designate-mdns, and designate-pool-manager, supported by a few
standard open source components. For more information see :ref:`architecture`.
There are many different options for customizing Designate, and two of these options