OpenStack tries to solve a very complex problem, which is to create an open source, flexible, extensible Infrastructure-as-a- Service (IaaS) datacenter. Imagine if you are creating an Amazon AWS or Microsoft Azure public cloud from your own bare metal server and off-the-shelf network equipment, and you can begin to see the complication that the process involves. In order to be scalable, the required components need to be broken off into self-contained components. Each of the component consists of sub-components and plugins that allow for more extension and community involvement. Let's take a look at the core and associated components at a high level in the next section.
In OpenStack, the overall components can be separated into the following core services:
- Compute, code named nova: It is the computing fabric controller for managing and controlling computing resources. It works with bare metal servers as well as hypervisor technologies, such as KVM, Xen, Hyper-V...