OpenStack architecture
The following figure (from: https://docs.openstack.org/arch-design/design.html) represents the logical architecture of OpenStack and how users can connect to various services. OpenStack has multiple components for different purposes such as Nova for managing compute resources, Glance for managing OS images, and so on. We will learn about each component in detail in the upcoming sections.
In very simple terms, if a user requests to provision a VM using CLI or the APIs, the request is handled by Nova. Nova then talks to KeyStone to authenticate the request, Glance for the OS image, and Neutron for setting up the network resources. Then, after receiving responses from each component, it boots the VM and returns a response to the user: