Microservices architecture and containerization are promising software development approaches. In spite of their claimed autonomy, microservices often depend on other microservices to complete their tasks. Since each microservice of an application has its own life-cycle, dependencies may cause faults if they are not satisfied due to the unreadiness of target microservices. To address this problem, we argue the necessity of a mechanism to synchronize microservices according to their running states: dependent microservices should wait for unready ones, so avoiding useless and faulty interactions. In this paper, we propose a new framework, implemented as a service at platform level, able to support synchronization among microservices by exploiting distributed registries for collecting health/state information about deployed containers and related microservices. The service has been implemented for the OpenShift/Kubernetes platform and experimented with different use cases. We mainly focus on avoiding faults due to dangling dependencies during the bootstrap of microservices applications. The valuable effects of the proposed service provided us useful feedback to extend its adoption to other use cases even through its integration in existing microservices frameworks.
Avoiding Faults due to Dangling Dependencies by Synchronization in Microservices Applications
DE IASIO, ANTONIO;Eugenio Zimeo
2019-01-01
Abstract
Microservices architecture and containerization are promising software development approaches. In spite of their claimed autonomy, microservices often depend on other microservices to complete their tasks. Since each microservice of an application has its own life-cycle, dependencies may cause faults if they are not satisfied due to the unreadiness of target microservices. To address this problem, we argue the necessity of a mechanism to synchronize microservices according to their running states: dependent microservices should wait for unready ones, so avoiding useless and faulty interactions. In this paper, we propose a new framework, implemented as a service at platform level, able to support synchronization among microservices by exploiting distributed registries for collecting health/state information about deployed containers and related microservices. The service has been implemented for the OpenShift/Kubernetes platform and experimented with different use cases. We mainly focus on avoiding faults due to dangling dependencies during the bootstrap of microservices applications. The valuable effects of the proposed service provided us useful feedback to extend its adoption to other use cases even through its integration in existing microservices frameworks.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.