Bainomugisha, EngineerMwotil, Alex2023-01-262023-01-262022Bainomugisha, E., & Mwotil, A. (2022). Crane Cloud: A resilient multi-cloud service abstraction layer for resource-constrained settings. Development Engineering, 7, 100102. https://doi.org/10.1016/j.deveng.2022.100102https://doi.org/10.1016/j.deveng.2022.100102https://nru.uncst.go.ug/handle/123456789/7267Developers and users situated in low-resource settings are faced with unique contextual and infrastructure challenges when accessing and consuming cloud-based services. In low-resource settings, access to cloud services and platforms is usually characterized by low-end computing devices and often unreliable and slow mobile broadband Internet connections. In this paper, we discuss key challenges for developing for and accessing cloud services in resource constrained settings, namely, (1) Frequent Internet partitions and bandwidth constraints, (2) Data jurisdiction restrictions, (3) Vendor lock-in, and (4) Poor quality of service. Inspired by these challenges, we propose a set of important design considerations and properties for a resilient multi-cloud service layer, that includes: (1) Containerization and orchestration of applications, (2) Application placement and replication, (3) Portability and multi-cloud migration, (4) Resilience to network partitions and bandwidth constraints, (5) Automated service discovery and load balancing, (6) Localized image registry, and (7) Support for platform monitoring and management. We present an implementation and validation case study, Crane Cloud, an open source multi-cloud service abstraction layer built on-top of Kubernetes that is designed with inherent support for resilience to network partitions, microservice orchestration (deployment, scaling and management of containerized applications), a localized image registry, support for migration of services between private and public clouds to avoid vendor lock-in issues and platform monitoring. We evaluate the performance and user experience of Crane Cloud by implementing and deploying a computational and bandwidth intensive machine learning system. The results show lower response times of the system on Crane Cloud compared with hosting on other public clouds. The Crane Cloud platform is serving as a cloud-service for students and developers in low-resource settings and also as an education platform for cloud computing.enMicroservicesKubernetesContainersOrchestrationLow-resource settingsPortable cloud appsCloud native platformsCrane Cloud: A resilient multi-cloud service abstraction layer for resource-constrained settingsArticle