diff --git a/docs/source/_static/Node-components.png b/docs/source/_static/Node-components.png new file mode 100644 index 00000000..cd086073 Binary files /dev/null and b/docs/source/_static/Node-components.png differ diff --git a/docs/source/index.rst b/docs/source/index.rst index 0cd85788..8b498ffa 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -9,7 +9,6 @@ Table of Contents introduction quickstart - node-cluster-fed cloud-deployment-starter-templates/index nodes/index dev-and-test/index diff --git a/docs/source/nodes/index.rst b/docs/source/nodes/index.rst index 528d176a..1c3671f0 100644 --- a/docs/source/nodes/index.rst +++ b/docs/source/nodes/index.rst @@ -4,6 +4,7 @@ Production Node Assumptions, Components & Requirements .. toctree:: :maxdepth: 1 + node-assumptions node-components node-requirements setup-run-node diff --git a/docs/source/nodes/node-assumptions.md b/docs/source/nodes/node-assumptions.md new file mode 100644 index 00000000..46d45ca7 --- /dev/null +++ b/docs/source/nodes/node-assumptions.md @@ -0,0 +1,13 @@ +# Production Node Assumptions + +If you're not sure what we mean by a BigchainDB *node*, *cluster*, *federation*, or *production node*, then see [the section in the Introduction where we defined those terms](../introduction.html#some-basic-vocabulary). + +We make some assumptions about production nodes: + +1. **Each production node is set up and managed by an experienced professional system administrator (or a team of them).** + +2. Each production node in a federation's cluster is managed by a different person or team. + +Because of the first assumption, we don't provide a detailed cookbook explaining how to secure a server, or other things that a sysadmin should know. (We do provide some [starter templates](../cloud-deployment-starter-templates/index.html), but those are just a starting point.) + + diff --git a/docs/source/nodes/node-components.md b/docs/source/nodes/node-components.md index 4c36ade2..9d6b41ec 100644 --- a/docs/source/nodes/node-components.md +++ b/docs/source/nodes/node-components.md @@ -1,4 +1,4 @@ -# Node Components +# Production Node Components A BigchainDB node must include, at least: @@ -7,10 +7,17 @@ A BigchainDB node must include, at least: When doing development and testing, it's common to install both on the same machine, but in a production environment, it may make more sense to install them on separate machines. -In a production environment, a BigchainDB node can have several other components, including: +In a production environment, a BigchainDB node should have several other components, including: -* nginx or similar, as a reverse proxy and/or load balancer for the web server +* nginx or similar, as a reverse proxy and/or load balancer for the Gunicorn server(s) inside the node * An NTP daemon running on all machines running BigchainDB code, and possibly other machines * A RethinkDB proxy server +* A RethinkDB "wire protocol firewall" (in the future: this component doesn't exist yet) * Scalable storage for RethinkDB (e.g. using RAID) * Monitoring software, to monitor all the machines in the node +* Configuration management agents (if you're using a configuration managment system that uses agents) +* Maybe more + +The relationship between these components is illustrated below. + +![Components of a node](../_static/Node-components.png) diff --git a/docs/source/nodes/node-requirements.md b/docs/source/nodes/node-requirements.md index 7edbd2b5..bd72b9f4 100644 --- a/docs/source/nodes/node-requirements.md +++ b/docs/source/nodes/node-requirements.md @@ -1,4 +1,7 @@ -# Node Requirements (OS, Memory, Storage, etc.) +# Production Node Requirements + +Note: This section will be broken apart into several pages, e.g. NTP requirements, RethinkDB requirements, BigchainDB requirements, etc. and those pages will add more details. + ## OS Requirements diff --git a/docs/source/nodes/setup-run-node.md b/docs/source/nodes/setup-run-node.md index e0fb2394..5b6f5c47 100644 --- a/docs/source/nodes/setup-run-node.md +++ b/docs/source/nodes/setup-run-node.md @@ -1,8 +1,6 @@ # Set Up and Run a Cluster Node -If you want to set up a BigchainDB node that's intended to be one of the nodes in a BigchainDB cluster (i.e. where each node is operated by a different member of a federation), then this page is for you, otherwise see [elsewhere](../introduction.html). - -This is a page of general guidelines for setting up a node. It says nothing about how to upgrade software, storage, processing, etc. or other details of node management. That will be added in the future, in [the section on production node setup & management](../prod-node-depl-tplt/index.html). Once that section is more complete, this page will probably be deleted. +This is a page of general guidelines for setting up a production node. It says nothing about how to upgrade software, storage, processing, etc. or other details of node management. It will be expanded more in the future. ## Get a Server