Sidecar proxy-based approach to change microservice communication strategy at runtime
Loading...
Date
2024
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Microservice architecture is becoming popular for most application development in modern, rapid, requirement-changing systems. Although the ideal situation in this architecture is to develop loosely coupled systems with possibly zero interservice communication, it is practically unavoidable in most cases. Selecting the right communication strategy is one of the hardest decisions [1][2][3][4][23][24], and most often, if that decision is made incorrectly during the initial phase, it becomes harder to change afterward. Things are getting even more difficult because of the emerging new techniques in microservice communication. Selecting the right solution depends on many factors, such as personal preferences, tradeoff analysis, and experience. It is difficult to decide whether the correct communication strategy will be chosen until the application runs in the production environment with a real load. Most solutions and suggestions come from experience or after a failure. Since the development effort is high, developing different solutions and then comparing them to select the right solution is impossible. No proper prototyping techniques are available to evaluate such strategies without spending too much time and cost. Most applications might not need the flexibility of changing the communication strategies at the runtime, but when needed, it becomes a very hard challenge to get success. These things are sometimes never addressed due to cost factors, even if they are identified in the first place. Hence, a proper solution decoupled from the application logic is required. A solution is developed to address the adding dynamic behaviors to communication in this research. This solution tries isolating the communication strategy from the microservice by introducing a sidecar proxy object and the core microservice module. The sidecar proxy is a pattern that involves deploying a helper service (proxy) alongside each microservice instance in a distributed application to manage network communications, security, and observability. This proxy handles cross-cutting concerns such as service discovery, load balancing, and traffic routing, allowing the main microservice to focus solely on its core logic. Most applications use static application configurations to implement a particular communication strategy. Another major outcome of this method is the introduction of the ability to change the communication strategy at runtime using a dynamic application configuration management system. This allows the configurations associated with the communication strategies to change at runtime. It is also necessary to evaluate this approach's suitability using characteristics like security and performance. This proposed solution is not coupled to any programming language or framework. It is also a hybrid approach that can only be applied to the selected applications. This can also be used to develop prototype applications quickly and evaluate the available solutions quickly.
Description
Citation
Yapa, Y.M.V.M. (2024). Sidecar proxy-based approach to change microservice communication strategy at runtime [Master’s theses, University of Moratuwa]. , University of Moratuwa]. Institutional Repository University of Moratuwa. https://dl.lib.uom.lk/handle/123/23973
