Architecture Design Guide Restructure

Problem description

The current Architecture Design Guide is primarily organized by use case. However, a combination of features from different use cases is often used when designing an OpenStack cloud.

It is recommended to restructure content so the user can consider all the requirements when designing an OpenStack cloud. Additional information should be provided when designing an OpenStack cloud in a development, staged or production environment. The proposal is to revise the content structure to refine use cases to the most common OpenStack deployments, and also create an abstraction between cloud architecture concepts and various OpenStack projects. This will make it easier to maintain the guide.

Proposed change

The proposed structure of the guide is to first describe common cloud use cases, then general architectural concepts, followed by cloud architecture design with a detailed breakdown of the major cloud architecture components.

Proposed table of contents

The proposed structure for the updated Architecture Design Guide is as follows:

  1. Overview

  2. Use cases

    1. Development cloud
    2. General compute cloud
    3. Web scale cloud
    4. Storage cloud
    5. Network Function Virtualization (NFV) cloud
  3. High Availability

  4. Capacity planning and scaling

    1. Adding cloud controller nodes
    2. Segregating your cloud
    3. Scalable hardware
  5. Design

    1. Compute

      Implementation of the compute platform including hypervisors, nova, and ironic

    2. Storage

      Storage choices and the implementation of projects such as cinder and manila.

    3. Networking

      Networking design choices such as SDN, LBaaS, and neutron.

    4. Identity

      Authentication, authorisation, and assignment at all levels for keystone and related projects.

    5. Image

      Management, creation, distribution, and deployment of images for glance and related projects.

    6. Control Plane

      General implementation of the OpenStack control components and the decision making that goes into the choices that need to be made.

    7. Dashboard and APIs

      Interaction with cloud services using a graphical interface or the OpenStack APIs. This would include horizon and other Cloud Management Platform (CMP) tools.

The Use Cases chapter will contain the five most common OpenStack use cases. It will describe the scope and requirements, which will be a precursor for reference architecture information. For each use case, the section headings would be as follows:

  1. Design model
  2. Requirements
  3. Reference architecture

The sub-section headings in the Design chapter would be as follows:

  1. Technical detail
  2. Capacity and scale
  3. High availability
  4. Operator requirements
  5. Deployment considerations
  6. Maintenance considerations

The headings are intended as a guideline to the type of information that should be provided. It will be used only when there is a specific need to provide information.

Alternatives

Leave the guide as is.

Implementation

Assignee(s)

Primary assignee:
  • dazzachan
Other contributors:
  • shaunom
  • tersian
  • alexandra-settle

Work items

  • Migrate the Architecture chapter in the Operations Guide to the Architecture Design Guide
  • Multiple contributors to write content
  • Identify information gaps and submit patches

Dependencies

Contributions and input from cloud solution architects.

Testing

Testing will follow the standard documentation review process.

References

  • Discussion can occur using any official medium including IRC in #openstack-doc, the openstack-docs mailing list with [arch-guide] in the subject, biweekly Ops Guide specialty team meeting, weekly documentation team meeting, and the Arch Guide working group meeting.
  • Draft Architecture Design Guide
  • Etherpad