OpenStack Glance has a client-server architecture that provides a REST API to the user through which requests to the server can be performed.
OpenStack Glance具有客户端-服务器架构，该架构为用户提供REST API，通过该API可以执行对服务器的请求。
A Glance Domain Controller manages the internal server operations that is divided into layers. Specific tasks are implemented by each layer.
All the file (Image data) operations are performed using glance_store library, which is responsible for interaction with external storage back ends and (or) local filesystem(s). The glance_store library provides a uniform interface to access the backend stores.
Glance uses a central database (Glance DB) that is shared amongst all the components in the system and is sql-based by default. Other types of database backends are somewhat supported and used by operators but are not extensively tested upstream.
Glance使用中央数据库（Glance DB），该数据库在系统中的所有组件之间共享，并且默认情况下基于sql。 其他类型的数据库后端在某种程度上受到运营商的支持和使用，但并未在上游进行广泛的测试。
Image 1. OpenStack Glance（镜像服务） Architecture
Following components are present in the Glance architecture:
- A client - any application that makes use of a Glance server.
- REST API - Glance functionalities are exposed via REST.
Database Abstraction Layer (DAL) - an application programming interface
(API) that unifies the communication between Glance and databases.
Glance Domain Controller - middleware that implements the main
Glance functionalities such as authorization, notifications, policies, database connections.
Glance Store - used to organize interactions between Glance and various
Registry Layer - optional layer that is used to organise secure
communication between the domain and the DAL by using a separate service.