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.
Image 1. OpenStack Glance Architecture
The Glance architecture consists of several components: