The word cloud has suffered from an unfortunate bout of overuse and misuse in recent years, so before we talk about what the components look like, we need to define what we're actually talking about in the first place.
Salt Cloud is designed to operate with compute cloud providers. This means that they offer computing resources, often in the form of virtual machines. A number of cloud providers also offer other resources, such as storage space, DNS, and load balancing. While Salt Cloud isn't explicitly designed to manage these resources, it is possible to add support for them.
For our purposes, we will discuss creating cloud drivers with a focus on managing virtual machines. Some of the techniques can be used for adding other resources, so if you're planning on going in that direction, this chapter will still be useful to you.