Federation of private cloud providers has been promoted as a way to increase the efficiency of the federated providers mainly because: i) they may require less aggregated capacity to jointly serve their aggregated workloads; ii) they can take advantage of a geographically distributed set of providers to serve geo-sensitive workloads and provide tolerance to site failures; and, iii) they may rely on fellow members to provide access to specialized hardware or services, that are rarely used locally. However, allowing effective cooperation of providers with heterogeneous hardware and software infrastructures, diverse security and allocation policies, as well as distinct business models is not a trivial task. Previous attempts to federate IaaS cloud providers follows either the single cloud orchestrator approach, or the enhanced multi-orchestrator approach. The first approach is simple and sustainable, but requires all providers that join the federation to use the same cloud orchestrator, which is not always feasible. The multi-orchestrator approach relaxes the requirement for a single orchestrator, but relies on implementing compatible federation services in each of the supported cloud orchestrators. This approach is not very sustainable because it is difficult to keep the embedded federated services up-to-date with the other services of each particular cloud orchestrator, as well as across different cloud orchestrators. Fogbow takes a best-of-two-worlds approach by introducing the notion of a cloud federation middleware that is completely decoupled from the cloud orchestrator. This way, it retains the simplicity of the single middleware approach, at the same time that allows multiple cloud orchestrators to be used. It judiciously defines an interface between the federation middleware and the underlying cloud orchestrator that is implemented by appropriate plugins for the different orchestrator technologies. This allows a much more sustainable way to keep the federation middleware consistent and compatible with different cloud orchestrators.
Fogbow is an open source middleware that comprises a suite of microservices, allowing the simple, efficient, and as non-intrusive as possible federation of IaaS providers. Fogbow was designed to allow additional functionalities to be easily and reliably incorporated to the suite of microservices, thus adding an important asset to the open source community and to software development professionals. The availability of the middleware can also open new opportunities to be explored by Startups, SMEs and IT vendors with interest to develop solutions and new services atop a federation of IaaS cloud providers. Finally, Cloud Service Providers can readily use Fogbow to take advantage of the benefits of federation.