Infrastructure as a service intra-platform interoperability: an exploratory study with OpenStack - Queiroz, Samuel de Medeiros (2018)
The emergence of new digital technologies comes with challenging technical and business requirements. The traditional approach to provide computational infrastructure to application workloads, which relies on in-house management of hardware, does not present technical and cost-effective attributes to deliver high-performance, reliability and scalability. As one of the biggest technologic paradigms shift in the history of humanity, cloud computing allows diverse deployment and service model alternatives, suitable to diverse requirements, such as security, latency, computational performance, availability and cost. Therefore, numerous companies distribute hundreds of clouds worldwide, creating an equitable market through competition, where players create unique features to differentiate from competitors. Consequently, in the consumer side, picking a vendor typically translates into vendor lock-in, a situation where the applications heavily depend on the vendor’s approach of exposing features, making it difficult to switch between vendors whenever convenient or to support complex scenarios across multiple distributed heterogeneous clouds, such as federation. An immediate work-around for users is to pick cloud solutions that implement standards or post-facto open source platforms, such as OpenStack, which are assumed to provide native interoperability between installations. In the industry, however, OpenStack proves that the lack of interoperability is a real concern even between its deployments, due the high flexibility and complexity of supported use cases. Therefore, this investigation documents intra-platform interoperability, as in OpenStack, starting by presenting in detail the Python client library created by the community to abstract deployment differences, counting with numerous and significant contributions from the author of this dissertation. Afterwards, an extensive validation of that library was performed across one testing and five production clouds from different vendors worldwide, because despite the fact the library is extensively used by the community, it had never been validated in detail. The validation unveiled bugs, functionality and documentation gaps. Since intra-platform interoperability had never been documented in this context, a systematic literature review followed, allowing a deep comparison of the state of the art of vendor lock-in in opposition to that library, presenting its advantages, disadvantages and recommendations for users. Lastly, the suggestions for future work include support for multiple programming languages and the adoption of the client library as a standard for inter-platform interoperability.