Cloud agnosticism – Part 2
Foundation
Multi-cloud cost-aware resource scheduling has been proven to yield 90.8% savings in VM subscriptions, 99.2% in egress network traffic and quadrupling data transfers (Jiang et al., 2020).
Cloud agnosticism emerges from the price of cloud computing as well as vendor lock-in. Cloud expenses are a big source of worry for all customers. As CSPs raise the price of their offerings, the TCO of IT rises. As a consequence, end users end up paying more for their subscriptions or have their service delivery hindered due to lower SLAs. To guarantee that services are utilized as required, companies must ensure that cloud computing assets are effectively managed and monitored.
Avoiding vendor lock-in is achieved through infrastructure-as-code tools like Terraform. This enables the firm to set up a cloud environment with a different provider as required, for example, if price or SLAs are improved. Such agnosticism enables the organization to save expenses while increasing the availability of its offerings to the broader population. Furthermore, cloud agnosticism may enable the company to build a multi cloud architecture, allowing the business to operate services on various cloud providers. Additionally, the partitioning of a large application into small microservices allows increased portability and scalability over a distributed cloud platform.
Practices adopted by Cloud providers
CSPs run background processes in underutilized environments, thus improving the resource utilization. However, this practice can hinder the QoS of online services. The study conducted by Liu and Yu (2018) reviewed a 24-hour trace from a production cluster in Alibaba to understand the balance between resource utilization and QoS. The dataset demonstrated that each online applications is containerized, whilst background jobs run on physical servers, whereby online applications and background jobs are managed by two different schedulers. The background jobs use the spare resources that containerized applications reserve but not use. These underlying jobs have resource limits to guarantee QoS of co-located containerized applications. The findings demonstrate that through excessive resource provisioning, overbooking and overcommitment, CSPs can provide elasticity. This study demonstrates that whereby organizations pay unnecessary amounts for overprovisioning, CSPs utilize these mistakes to provide elasticity. By means of monitoring and IaC, organizations can easily modify the provisioning attributes and mitigate overbooking, thus reducing costs. Furthermore, through a IaC-built containerized platform, organization can obtain elasticity amongst various CSPs.
Towards cloud agnosticism
The utilization of Cloud Orchestration Tools (COTs) allows organizations to avoid vendor lock-in. The cloud agnostic orchestration tool presented by Baur (et al. 2018) addresses the existing limitation in cloud orchestration tools, whereby they are dependent on provider dependent models. This limitation is addressed through previous knowledge and lack of flexibility when errors are encountered. The major difference between the proposed model by Baur (et al., 2018) and COTs such as Terraform is that users need to explicitly reference service providers for the latter.
Existing IaC require previous knowledge and explicit referencing to cloud providers which can result in increased costs and vendor lock-in unless careful planning is not properly undertaken during the architecture stage. Ideally, engineers need to identify two or more CSPs which offer the required compute power within the required location to leverage multi-cloud architecture. Imran (et al., 2020) defines the notion of multi-cloud as the ability to use autonomous cloud platforms with a central administrative interface. The study reviews existing literature with regards to such multi-cloud platforms. The main attributes sought by users are performance, security, reliability, and scalability, thus allowing the development teams to focus on functional testing rather than performance testing. With such attributes in mind, extensive research has been undertaken whereby different prototypes have been proposed such as TOSCA, soCloud and CloudSME. These tools are aimed at reducing cloud computing costs, time efficiency, portability, elasticity, and load balancing.
Tundo (et al., 2019) proposed a technology-agnostic monitoring framework to monitor KPIs from multiple cloud environments. In a single or multi-cloud environments, monitoring the health of applications is of paramount importance. Solutions like Elastic Stack and Prometheus require a high degree of configuration and manual effort. Conversely, a Monitoring-as-a-Service (MaaS) solutions address the automation and flexibility through a framework which utilizes declarative configuration, thereby allowing users to specify the KPIs that must be monitored, and the framework configures the solution automatically. The proposed solution, VARYS, allows users to declaratively manage and monitor KPIs amongst multiple cloud providers including EC2, OpenStack, Kubernetes, Prometheus exporters and Elastic Stack beats. New KPIs required the engineer to configure the MaaS architecture. However, this configuration applies to all cloud service providers. This study is relevant because it provides my proposed solution a centralized, easy-configurable solution to monitor key KPIs in containerized or IaaS infrastructures in a multi-cloud environment.
The prototype (PIVOT) developed by Jiang (et al, 2020) demonstrate that containerized applications which consume or generate high amount of data can benefit from PIVOT to improve cost-efficiency and speed, whilst utilizing multi-cloud architecture for increased scalability and reduction in vendor lock-in. Furthermore, this study further demonstrates the feasibility to implement multi-cloud for containerized applications, since the tool itself leverages such a technology.
Conclusion
In the third and final post, cloud agnostic practices are proposed. These include infrastructure as code, containerization, and leveraging a multi cloud setup towards the achievement of cloud agnosticism.
References
Baur, D., Seybold, D., Griesinger, F., Masata, H., & Domaschka, J. (2018). A provider-agnostic approach to multi-cloud orchestration using a constraint language. 2018 18th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID). https://doi.org/10.1109/ccgrid.2018.00032
Imran, H. A., Latif, U., Ikram, A. A., Ehsan, M., Ikram, A. J., Khan, W. A., & Wazir, S. (2020). Multi-Cloud: A comprehensive review. 2020 IEEE 23rd International Multitopic Conference (INMIC). https://doi.org/10.1109/inmic50486.2020.9318176
Jiang, F., & Castillo, C. (2019). A Cloud-Agnostic Framework for Geo-Distributed Data-Intensive Applications. Retrieved November 21, 2021, from https://www.semanticscholar.org/paper/A-Cloud-Agnostic-Framework-for-Geo-Distributed-Jiang-Castillo/dec851cfe2c443a95bf113ed39fae9505231b45a
Jiang, F., Ferriter, K., & Castillo, C. (2020). A cloud-agnostic framework to enable cost-aware scheduling of applications in a multi-cloud environment. NOMS 2020 – 2020 IEEE/IFIP Network Operations and Management Symposium. https://doi.org/10.1109/noms47738.2020.9110325
Liu, Q., & Yu, Z. (2018). The elasticity and plasticity in semi-containerized co-locating cloud workload. Proceedings of the ACM Symposium on Cloud Computing. https://doi.org/10.1145/3267809.3267830
Tundo, A., Mobilio, M., Orrù, M., Riganelli, O., Guzmàn, M., & Mariani, L. (2019). VARYS: An Agnostic model-driven monitoring as a service framework for the cloud. Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. https://doi.org/10.1145/3338906.3341185