In previous chapters, we looked at a bunch of popular cloud providers. One of the biggest advantages of using a third-party cloud provider is that we can get started in minutes; provisioning the actual hardware is no longer our problem. There are several other advantages of using a third-party cloud provider. However, there is a major drawback: the cloud is not customized to our needs. It may lack flexibility, which we can gain if we control the underlying hardware and network. OpenStack can help us address this problem.
OpenStack is software that can help us build a system similar to popular cloud providers, such as AWS or GCP. OpenStack provides an API and a dashboard to manage the resources that it controls. Basic operations, such as creating and managing virtual machines, block storage, object storage, identity management, and so on, are supported out of the box...