Openstack can be considered a set of projects which can control compute,storage & networking resources.
Each of this projects have a list of components which are required for running the system.
This have been classified into a host of agents, services and apis which help power the openstack.
The biggest challenge for anyone starting on openstack is to understand various components and how do they interact with each other. The services that are necessary to make it running. The openstack documentation helps in understanding various services but thought of putting it in a single spreadsheet.
Few of the important components/agents are listed in the below:
**Source of Information: Openstack documentation