![Olena Logvinova](/assets/img/avatar_default.png)
Adds a basic architecture description section to the Glance Developer guide. Change-Id: I782490bb8757cd67d83057176f8e3eeffa007b84 Co-Authored-By: Mike Fedosin <mfedosin@mirantis.com> Co-Authored-By: Olena Logvinova <ologvinova@mirantis.com> Co-Authored-By: Alexander Adamov <aadamov@mirantis.com>
59 lines
2.1 KiB
ReStructuredText
59 lines
2.1 KiB
ReStructuredText
..
|
|
Copyright 2015 OpenStack Foundation
|
|
All Rights Reserved.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
not use this file except in compliance with the License. You may obtain
|
|
a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
License for the specific language governing permissions and limitations
|
|
under the License.
|
|
|
|
==================
|
|
Basic architecture
|
|
==================
|
|
|
|
OpenStack Glance has a client-server architecture and provides a user
|
|
REST API through which requests to the server are performed.
|
|
|
|
Internal server operations are managed by a Glance Domain Controller
|
|
divided into layers. Each layer implements its own task.
|
|
|
|
All the files operations are performed using glance_store library
|
|
which is responsible for interaction with external storage back ends or
|
|
local filesystem, and provides a uniform interface to access.
|
|
|
|
Glance uses an sql-based central database (Glance DB) that is shared
|
|
with all the components in the system.
|
|
|
|
.. figure:: /images/architecture.png
|
|
:figwidth: 100%
|
|
:align: center
|
|
:alt: OpenStack Glance Architecture
|
|
|
|
.. centered:: Image 1. OpenStack Glance Architecture
|
|
|
|
The Glance architecture consists of several components:
|
|
|
|
* **A client** — any application that uses Glance server.
|
|
|
|
* **REST API** — exposes Glance functionality via REST.
|
|
|
|
* **Database Abstraction Layer (DAL)** — an application programming interface
|
|
which unifies the communication between Glance and databases.
|
|
|
|
* **Glance Domain Controller** — middleware that implements the main
|
|
Glance functionalities: authorization, notifications, policies,
|
|
database connections.
|
|
|
|
* **Glance Store** — organizes interactions between Glance and various
|
|
data stores.
|
|
|
|
* **Registry Layer** — optional layer organizing secure communication between
|
|
the domain and the DAL by using a seperate service.
|