Proceedings of the XXth Conference of Open Innovations Association FRUCT (Apr 2022)
Automated Testing and Resilience of Microservice's Network-link using Istio Service Mesh
Abstract
Microservices technology has gained considerable popularity in software design to deploy complex applications in the form of micro-modular microservice components. Each service is implemented as an autonomous system, and its internal constituent data can be accessed via a network interface. Such architecture increases the complexity of the network because each module is a separate entity for development and operations. A fault in any service affects the operation of another service and could completely break the application. It is, therefore, necessary to create a framework for the systematic testing and resilience of the network link in microservices, independent of the programming language and business logic. It helps the network administrator track the cause of the fault. In this paper, we have shown the use of the service mesh Istio to monitor communication between microservices and to develop automated testing and resilience. Istio provides various types of fault injectors for communication links between services. A Locust load testing tool is used to exert a microservice load. The faulty link is located via the Jaeger and Grafana dashboard within the Istio frame. For resilience or correction of the fault, a new connection is temporarily established between the affected microservice by deploying redundant services. In addition, microservices scaling and the implementation of the circuit breaker have been shown to remedy network congestion. The setup is demonstrated in the Kubernetes cluster with the Hipster shop e-commerce application.
Keywords