From 262c039425151d78ee12da9f46a2d6eabcae3e0f Mon Sep 17 00:00:00 2001 From: Armon Dadgar Date: Wed, 19 Feb 2014 16:58:15 -0800 Subject: [PATCH] website: document the high level architecture --- .../docs/internals/architecture.html.markdown | 117 ++++++++++++++++++ .../docs/internals/consensus.html.markdown | 103 +++++++++++++++ .../source/docs/internals/index.html.markdown | 13 +- website/source/images/consul-arch.png | Bin 0 -> 78720 bytes website/source/layouts/docs.erb | 14 ++- 5 files changed, 234 insertions(+), 13 deletions(-) create mode 100644 website/source/docs/internals/architecture.html.markdown create mode 100644 website/source/docs/internals/consensus.html.markdown create mode 100644 website/source/images/consul-arch.png diff --git a/website/source/docs/internals/architecture.html.markdown b/website/source/docs/internals/architecture.html.markdown new file mode 100644 index 0000000000..4046508c27 --- /dev/null +++ b/website/source/docs/internals/architecture.html.markdown @@ -0,0 +1,117 @@ +--- +layout: "docs" +page_title: "Consul Architecture" +sidebar_current: "docs-internals-architecture" +--- + +# Consul Architecture + +Consul is a complex system that has many different moving parts. To help +users and developers of Consul form a mental model of how it works, this +page documents the system architecture. + +
+Advanced Topic! This page covers technical details of +the internals of Consul. You don't need to know these details to effectively +operate and use Consul. These details are documented here for those who wish +to learn about them without having to go spelunking through the source code. +
+ +## Glossary + +Before describing the architecture, we provide a glossary of terms to help +clarify what is being discussed: + +* Agent - An agent is the long running daemon on every member of the Consul cluster. +It is started by running `consul agent`. The agent is able to run in either *client*, +or *server* mode. Since all nodes must be running an agent, it is simpler to refer to +the node as either being a client or server, but other are instances of the agent. All +agents can run the DNS or HTTP interfaces, and are responsible for running checks and +keeping services in sync. + +* Client - A client is an agent that forwards all RPC's to a server. The client is relatively +stateless. The only background activity a client performs is taking part of LAN gossip pool. +This has a minimal resource overhead and consumes only a small amount of network bandwidth. + +* Server - An agent that is server mode. When in server mode, there is an expanded set +of responsibilities including participated in the Raft quorum, maintaining cluster state, +responding to RPC queries, WAN gossip to other datacenters, forwarding of queries to leaders +or remote datacenters. + +* Datacenter - A data center seems obvious, but there are subtle details such as multiple +availability zones in EC2. We define a data center to be a networking environment that is +private, low latency, and high badwidth. This excludes communication that would traverse +the public internet. + +* Consensus - When used in our documentation we use consensus to mean agreement upon +the elected leader as well as agreement on the ordering of transactions. Since these +transactions are applied to a FSM, we implicitly include the consistency of a replicated +state machine. Consensus is described in more detail on [Wikipedia](http://en.wikipedia.org/wiki/Consensus_(computer_science)), +as well as our [implementation here](/docs/internals/consensus.html). + +* Gossip - Consul is built on top of [Serf](http://www.serfdom.io/), which provides a full +[gossip protocol](http://en.wikipedia.org/wiki/Gossip_protocol) that is used for multiple purposes. +Serf provides membership, failure detection, and event broadcast mechanisms. Our use of these +is described more in the [gossip documentation](/docs/internals/gossip.html). It is enough to know +gossip involves random node-to-node communication, primary over UDP. + +* LAN Gossip - This is used to mean that there is a gossip pool, containing nodes that +are all located on the same local area network or datacenter. + +* WAN Gossip - This is used to mean that there is a gossip pool, containing servers that +are primary located in different datacenters and must communicate over the internet or +wide area network. + +* RPC - RPC is short for a Remote Procedure Call. This is a request / response mechanism +allowing a client to make a request from a server. + +## 10,000 foot view + +From a 10,000 foot altitude the architecture of Consul looks like this: + +![Consul Architecture](/images/consul-arch.png) + +Lets break down this image and describe each piece. First of all we can see +that there are two datacenters, one and two respectively. Consul has first +class support for multiple data centers and expects this to be the common case. + +Within each datacenter we have a mixture of clients, and servers. It is expected +that there be between three and five servers. This strikes a balance between +availability in the case of failure and performance, as consensus gets progressively +slower as more machines are added. However, there is no limit to the number of clients, +and they can easily scale into the thousands or tens of thousands. + +All the nodes that are in a datacenter participate in a [gossip protocol](/docs/internals/gossip.html). +This means is there is a Serf cluster that contains all the nodes for a given datacenter. This serves +a few purposes: first, there is no need to configure clients with the addresses of servers, +that discovery is done automatically using Serf. Second, the work of detecting node failures +is not placed on the servers but is distributed. This makes the failure detection much more +scalable than naive heartbeating schemes. Thirdly, it is used as a messaging layer to notify +when important events such as leader election take place. + +The servers in each datacenter are all part of a single Raft peer set. This means that +they work together to elect a leader, which has extra duties. The leader is responsible for +processing all queries and transactions. Transactions must also be replicated to all peers +as part of the [consensus protocol](/docs/internals/consensus.html). Because of this requirement, +when a non-leader server receives an RPC request it forwards it to the cluster leader. + +The server nodes also operate as part of a WAN gossip. This pool is different from the LAN pool, +as it is optimized for the higher latency of the internet, and is expected to only contain +other Consul server nodes. The purpose of this pool is to allow datacenters to discover each +other in a low touch manner. Bringing a new datacenter online is as easy as joining the existing +WAN gossip. Because the servers are all operating in this pool, it also enables cross-dc requests. +When a server receives a request for a different datacenter, it forwards it to a random server +in the correct datacenter. That server may then forward to the local leader. + +This results in a very low coupling between datacenters, but because of a Serf failure detection, +connection caching and multiplexing, cross-dc requests are relatively fast and reliable. + +## Getting in depth + +At this point we've covered the high level architecture of Consul, but there are much +more details to each of the sub-systems. The [consensus protocol](/docs/internals/consensus.html) is +documented in detail, as is the [gossip protocol](/docs/internals/gossip.html). The [documentation](/docs/internals/security.html) +for the security model and protocols used for is also available. + +For other details, either consult the code, ask in IRC or reach out to the mailing list. + diff --git a/website/source/docs/internals/consensus.html.markdown b/website/source/docs/internals/consensus.html.markdown new file mode 100644 index 0000000000..0477b369a7 --- /dev/null +++ b/website/source/docs/internals/consensus.html.markdown @@ -0,0 +1,103 @@ +--- +layout: "docs" +page_title: "Consensus Protocol" +sidebar_current: "docs-internals-consensus" +--- + +# Consensus Protocol + +Serf uses a [gossip protocol](http://en.wikipedia.org/wiki/Gossip_protocol) +to broadcast messages to the cluster. This page documents the details of +this internal protocol. The gossip protocol is based on +["SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol"](http://www.cs.cornell.edu/~asdas/research/dsn02-swim.pdf), +with a few minor adaptations, mostly to increase propagation speed +and convergence rate. + +
+Advanced Topic! This page covers the technical details of +the internals of Serf. You don't need to know these details to effectively +operate and use Serf. These details are documented here for those who wish +to learn about them without having to go spelunking through the source code. +
+ +## SWIM Protocol Overview + +Serf begins by joining an existing cluster or starting a new +cluster. If starting a new cluster, additional nodes are expected to join +it. New nodes in an existing cluster must be given the address of at +least one existing member in order to join the cluster. The new member +does a full state sync with the existing member over TCP and begins gossiping its +existence to the cluster. + +Gossip is done over UDP with a configurable but fixed fanout and interval. +This ensures that network usage is constant with regards to number of nodes. +Complete state exchanges with a random node are done periodically over +TCP, but much less often than gossip messages. This increases the likelihood +that the membership list converges properly since the full state is exchanged +and merged. The interval between full state exchanges is configurable or can +be disabled entirely. + +Failure detection is done by periodic random probing using a configurable interval. +If the node fails to ack within a reasonable time (typically some multiple +of RTT), then an indirect probe is attempted. An indirect probe asks a +configurable number of random nodes to probe the same node, in case there +are network issues causing our own node to fail the probe. If both our +probe and the indirect probes fail within a reasonable time, then the +node is marked "suspicious" and this knowledge is gossiped to the cluster. +A suspicious node is still considered a member of cluster. If the suspect member +of the cluster does not dispute the suspicion within a configurable period of +time, the node is finally considered dead, and this state is then gossiped +to the cluster. + +This is a brief and incomplete description of the protocol. For a better idea, +please read the +[SWIM paper](http://www.cs.cornell.edu/~asdas/research/dsn02-swim.pdf) +in its entirety, along with the Serf source code. + +## SWIM Modifications + +As mentioned earlier, the gossip protocol is based on SWIM but includes +minor changes, mostly to increase propogation speed and convergence rates. + +The changes from SWIM are noted here: + +* Serf does a full state sync over TCP periodically. SWIM only propagates + changes over gossip. While both are eventually consistent, Serf is able to + more quickly reach convergence, as well as gracefully recover from network + partitions. + +* Serf has a dedicated gossip layer separate from the failure detection + protocol. SWIM only piggybacks gossip messages on top of probe/ack messages. + Serf uses piggybacking along with dedicated gossip messages. This + feature lets you have a higher gossip rate (for example once per 200ms) + and a slower failure detection rate (such as once per second), resulting + in overall faster convergence rates and data propagation speeds. + +* Serf keeps the state of dead nodes around for a set amount of time, + so that when full syncs are requested, the requester also receives information + about dead nodes. Because SWIM doesn't do full syncs, SWIM deletes dead node + state immediately upon learning that the node is dead. This change again helps + the cluster converge more quickly. + +## Serf-Specific Messages + +On top of the SWIM-based gossip layer, Serf sends some custom message types. + +Serf makes heavy use of [lamport clocks](http://en.wikipedia.org/wiki/Lamport_timestamps) +to maintain some notion of message ordering despite being eventually +consistent. Every message sent by Serf contains a lamport clock time. + +When a node gracefully leaves the cluster, Serf sends a _leave intent_ through +the gossip layer. Because the underlying gossip layer makes no differentiation +between a node leaving the cluster and a node being detected as failed, this +allows the higher level Serf layer to detect a failure versus a graceful +leave. + +When a node joins the cluster, Serf sends a _join intent_. The purpose +of this intent is solely to attach a lamport clock time to a join so that +it can be ordered properly in case a leave comes out of order. + +For custom events, Serf sends a _user event_ message. This message contains +a lamport time, event name, and event payload. Because user events are sent +along the gossip layer, which uses UDP, the payload and entire message framing +must fit within a single UDP packet. diff --git a/website/source/docs/internals/index.html.markdown b/website/source/docs/internals/index.html.markdown index 72e7caf794..01374e44ce 100644 --- a/website/source/docs/internals/index.html.markdown +++ b/website/source/docs/internals/index.html.markdown @@ -4,16 +4,13 @@ page_title: "Internals" sidebar_current: "docs-internals" --- -# Serf Internals +# Consul Internals -This section goes over some of the internals of Serf, such as the gossip -protocol, ordering of messages via lamport clocks, etc. This section -also contains a useful [convergence simulator](/docs/internals/simulator.html) -that can be used to see how fast a Serf cluster will converge under -various conditions with specific configurations. +This section goes over some of the internals of Consul, such as the architecture, +consensus and gossip protocol, security model, etc.
-Note that knowing about the internals of Serf is not necessary to +Note that knowing about the internals of Consul is not necessary to successfully use it, but we document it here to be completely transparent -about how the "magic" of Serf works. +about how Consul works.
diff --git a/website/source/images/consul-arch.png b/website/source/images/consul-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..f4afa600083453a63a96eb340955ceb6b12fbc92 GIT binary patch literal 78720 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 j>nyF>dC$v~nhmC1r*8g?O=P=I2mkc6jkSt2Yy> Consul Internals -