~0x44/nova/bug838466

« back to all changes in this revision

Viewing changes to doc/source/service.architecture.rst

  • Committer: Brian Waldon
  • Date: 2011-07-29 16:54:55 UTC
  • mto: This revision was merged to the branch mainline in revision 1364.
  • Revision ID: brian.waldon@rackspace.com-20110729165455-4ebqwv8s5pkscmmg
one last change

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
..
 
2
      Copyright 2010-2011 OpenStack LLC
 
3
 
 
4
      All Rights Reserved.
 
5
 
 
6
      Licensed under the Apache License, Version 2.0 (the "License"); you may
 
7
      not use this file except in compliance with the License. You may obtain
 
8
      a copy of the License at
 
9
 
 
10
          http://www.apache.org/licenses/LICENSE-2.0
 
11
 
 
12
      Unless required by applicable law or agreed to in writing, software
 
13
      distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 
14
      WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 
15
      License for the specific language governing permissions and limitations
 
16
      under the License.
 
17
 
 
18
Service Architecture
 
19
====================
 
20
 
 
21
Nova’s Cloud Fabric is composed of the following major components:
 
22
 
 
23
* API Server
 
24
* Message Queue
 
25
* Compute Worker
 
26
* Network Controller
 
27
* Volume Worker
 
28
* Scheduler
 
29
* Image Store
 
30
 
 
31
 
 
32
.. image:: /images/fabric.png
 
33
   :width: 790
 
34
 
 
35
API Server 
 
36
--------------------------------------------------
 
37
At the heart of the cloud framework is an API Server.  This API Server makes command and control of the hypervisor, storage, and networking programmatically available to users in realization of the definition of cloud computing.
 
38
 
 
39
The API endpoints are basic http web services which handle authentication, authorization, and basic command and control functions using various API interfaces under the Amazon, Rackspace, and related models.  This enables API compatibility with multiple existing tool sets created for interaction with offerings from other vendors.  This broad compatibility prevents vendor lock-in.
 
40
 
 
41
Message Queue
 
42
--------------------------------------------------
 
43
A messaging queue brokers the interaction between compute nodes (processing), volumes (block storage), the networking controllers (software which controls network infrastructure), API endpoints, the scheduler (determines which physical hardware to allocate to a virtual resource), and similar components.  Communication to and from the cloud controller is by HTTP requests through multiple API endpoints.
 
44
 
 
45
A typical message passing event begins with the API server receiving a request from a user.  The API server authenticates the user and ensures that the user is permitted to issue the subject command.  Availability of objects implicated in the request is evaluated and, if available, the request is routed to the queuing engine for the relevant workers.  Workers continually listen to the queue based on their role, and occasionally their type hostname.  When such listening produces a work request, the worker takes assignment of the task and begins its execution.  Upon completion, a response is dispatched to the queue which is received by the API server and relayed to the originating user.  Database entries are queried, added, or removed as necessary throughout the process.
 
46
 
 
47
Compute Worker
 
48
--------------------------------------------------
 
49
Compute workers manage computing instances on host machines.  Through the API, commands are dispatched to compute workers to:
 
50
 
 
51
* Run instances
 
52
* Terminate instances
 
53
* Reboot instances
 
54
* Attach volumes
 
55
* Detach volumes
 
56
* Get console output
 
57
 
 
58
Network Controller
 
59
--------------------------------------------------
 
60
The Network Controller manages the networking resources on host machines.  The API server dispatches commands through the message queue, which are subsequently processed by Network Controllers.  Specific operations include:
 
61
 
 
62
* Allocate Fixed IP Addresses
 
63
* Configuring VLANs for projects
 
64
* Configuring networks for compute nodes
 
65
 
 
66
Volume Workers
 
67
--------------------------------------------------
 
68
Volume Workers interact with iSCSI storage to manage LVM-based instance volumes.  Specific functions include:
 
69
 
 
70
* Create Volumes
 
71
* Delete Volumes
 
72
* Establish Compute volumes
 
73
 
 
74
Volumes may easily be transferred between instances, but may be attached to only a single instance at a time.
 
75
 
 
76
 
 
77
.. todo:: P2: image store description