diff --git a/doc/source/architecture.rst b/doc/source/architecture.rst index 3c4a5ca48bf3..be3293992bc0 100644 --- a/doc/source/architecture.rst +++ b/doc/source/architecture.rst @@ -27,25 +27,15 @@ Components Below you will find a helpful explanation of the different components. -:: +.. image:: ./images/architecture.svg + :width: 100% - /- ( LDAP ) - [ Auth Manager ] --- - | \- ( DB ) - | - | - | - [ Web Dashboard ] -> [ api ] -- < AMQP > ------ [ network ] - ( Flat/Vlan ) - | \ - < HTTP > [ scheduler ] - [ compute ] - ( libvirt/xen ) - | | - [ objectstore ] < - retrieves images +* DB: sql database for data storage. +* API: component that receives HTTP requests, converts commands and communicates with other components via the **oslo.messaging** queue or HTTP +* Scheduler: decides which host gets each instance +* Network: manages ip forwarding, bridges, and vlans +* Compute: manages communication with hypervisor and virtual machines. +* Conductor: handles requests that need coordination(build/resize), acts as a + database proxy, or handles object conversions. -* DB: sql database for data storage. Used by all components (LINKS NOT SHOWN) -* Web Dashboard: potential external component that talks to the api -* api: component that receives http requests, converts commands and communicates with other components via the queue or http (in the case of objectstore) -* Auth Manager: component responsible for users/projects/and roles. Can backend to DB or LDAP. This is not a separate binary, but rather a python class that is used by most components in the system. -* objectstore: http server that replicates s3 api and allows storage and retrieval of images -* scheduler: decides which host gets each vm -* network: manages ip forwarding, bridges, and vlans -* compute: manages communication with hypervisor and virtual machines. +While all services are designed to be horizontally scalable, you should have significantly more computes then anything else. diff --git a/doc/source/image_src/architecture.dia b/doc/source/image_src/architecture.dia new file mode 100644 index 000000000000..4e09c9e3968e Binary files /dev/null and b/doc/source/image_src/architecture.dia differ diff --git a/doc/source/images/architecture.svg b/doc/source/images/architecture.svg new file mode 100644 index 000000000000..e1a758b1de5f --- /dev/null +++ b/doc/source/images/architecture.svg @@ -0,0 +1,457 @@ + + + + + + + + + + + + + + + + + + + + + + + + + API + + + Conductor + + + + + + + + API + + + + + + + + API + + + + + + + + Conductor + + + + + + + + Conductor + + + Scheduler + + + + + + + + Scheduler + + + + + + + + Scheduler + + + + + + + + + + + + + DB + + + + + + + + + + + + + + + + + + + + + + + Compute + + + + + + + + Compute + + + + + + + + Compute + + + + + + + + + + + + + + + + + + Keystone + + + + + + + + + + + + + + + + + + + Network + + + + + + + + + + + + + + + + + + + + + + + Glance & + Cinder + + + + + + + + + + + + + + + + + + + + + + + + + + + + oslo.messaging + + + DB + + + + + + HTTP + + + + + + + + Nova service + + + + + + + + External service + + + + + + + + + + + + + Hypervisor + + + Nova-Networking + + + + + + + + + + + + API + + + Conductor + + + + + + + + API + + + + + + + + API + + + + + + + + Conductor + + + + + + + + Conductor + + + Scheduler + + + + + + + + Scheduler + + + + + + + + Scheduler + + + + + + + + + + + + + DB + + + + + + + + + + + + + + + + + + + + + + + Compute + + + + + + + + Compute + + + + + + + + Compute + + + + + + + + + + + + + + + + + + Keystone + + + + + + + + + + + + + + + + + + + + + + + Glance & + Cinder + + + + + + + + + + + + + + + + + + + + + + + Hypervisor + + + Neutron + + + + + + + + Neutron + +