Divide and conquer
OpenStack was designed to be horizontally scalable; we have already seen how its functions have been widely distributed into multiple services. The services themselves are composed of the API server, schedulers, workers, and agents. While the OpenStack controller runs the API services, the compute, storage, and network nodes run the agents and workers.