The central resources of a data center are servers, network, and storage.
OpenStack, like many other clouds, has a second type of storage named Object Storage.
Don't worry if you don't understand that term right now.
The management of operating system images, which are used to provision
servers, is a separate service in OpenStack.
In addition to components that manage data center resources,
a mechanism to manage access of the cloud is required,
access from human users, but also from programs.
Therefore, OpenStack has a sixth service that manages identities and
provides sign-in methods. The components that manage these resources
are to a large extend independent in OpenStack.
This means that you could, for example, set up a cloud without
storage, or the opposite, a cloud that only offers storage,
in particular, Object Storage. Other combinations of those six
services are possible. The six core components have official names
after their function. The servers service is named Compute,
the renaming services are simply named Network, Block Storage,
Object Storage, Image, and Identity, but very often their nicknames
are used, Nova, Neutron, Cinder, Swift, Glance, and Keystone.
No need to remember these names right now.
These are the six core services, but there are many more projects in
the OpenStack community. Some of them will be covered in this course,
so let's have a look. You have already made acquaintance with the web interface, Horizon.
To pass the EX210 exam, you need to use the Red Hat Director,
which is based on a number of additional services,
Ceilometer for measuring, remember, one of the NIST characteristics of
a cloud was metering, Ironic for managing physical servers rather than
virtual machines, Heat for orchestrating complex cloud applications,
Mistral to create workflows, and Zaqar, a message queue service.
Ceilometer and Heat cooperate to automatic scale an application up
when it starts getting overloaded. This is a prime example for elasticity.
Many of the other OpenStack services provide additional infrastructure
functions like Designate for managing DNS servers.
Most, however, can be considered Platform as a Service, such as Trove,
which provisions database servers, and Magnum, which provision servers
that run Docker containers, and there are many more.
All these non-core services are sometimes referred to as members of
OpenStack's Big Tent.
Is OpenStack a hypervisor? The title of this slide comes from an
actual forum discussion that I stumbled upon.
The central purpose of OpenStack is to manage servers and their connections.
Let's see how this is done by Nova, the compute service.
Nova's interface has many functions. Among other things,
it allows you to create, update, and delete servers,
and retrieve information about them. Nova's interface is a RESTful API.
In a nutshell, this means that it uses the hypertext protocol, HTTP,
just like a web server, the commandline, GUI, and software development
kits for what various languages communicate with Nova using HTTP
requests and responses. Now Nova does not directly create and manage
virtual or physical machines. Why should it?
There are many hypervisors on the market that perform this task very well.
Thus you could say that Nova translates the RESTful API requests into
commands it sends to hypervisors like KVM, Xen, or Hyper-V, or to a
driver that manages physical machines rather than virtual ones.
So please keep this in mind, OpenStack services all have a RESTful
API, and most services implement the API requests with the help of underlying technologies.
In the case of Nova, with the help of hypervisors or drivers of physical machines.