Customizable Router for Microservice Traffic Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Managing traffic between microservice applications in a cloud-based architecture is challenging, especially in large hybrid/multi-cloud environments, where rolling out new versions of microservices can disrupt other dependent services, and there is a need for dynamic routing capabilities to support testing and operational features like A/B testing and Canary releases.
Innovation Solution
A customizable router that allows administrators to route traffic between microservice applications and their versions based on predefined rules, using graphical user interfaces for configuration and monitoring, enabling weighted routing, sticky routing, experience-based routing, and real-time configuration management to manage traffic efficiently and effectively.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traffic is routed to a new version of microservice application, then new features and improvements are deployed, but service disruption and downtime occur affecting dependent services
Solution Approach 1:
The router dynamically adjusts traffic routing based on real-time conditions, allowing seamless transition between microservice versions. The system can switch routing configurations on-the-fly without service interruption, enabling continuous deployment while maintaining service availability through automated health checks and conditional routing rules
Solution Approach 2:
The router acts as an intermediary layer between clients and microservice applications, absorbing the impact of version transitions. By introducing this mediation layer, the system can route traffic to different versions based on predefined rules and conditions, preventing direct service disruption while enabling controlled rollout of new versions
2Ease of operation
If traffic routing is manually configured, then routing control is achieved, but operational complexity and time consumption increase
Solution Approach 1:
The router implements self-service capabilities through automated health checking, version detection, and conditional routing rule generation. The system automatically monitors microservice health status and adjusts traffic routing based on predefined conditions without requiring manual intervention, significantly reducing configuration time while maintaining operational control
Solution Approach 2:
The system manages routing configuration through parameter-based rules that can be dynamically adjusted. By using configurable parameters such as health thresholds, version priorities, and traffic splitting ratios, the system enables rapid routing changes without complex manual reconfiguration, reducing operational time while preserving control flexibility
3Stability of the object's composition
If all traffic is routed to a single microservice version, then service consistency is maintained, but testing capabilities and operational flexibility are reduced
Solution Approach 1:
The router implements partial traffic routing where only a portion of traffic is directed to new microservice versions for testing, while the remainder continues to flow to stable versions. This allows service consistency to be maintained for the majority of traffic while enabling controlled testing and validation of new features with a subset of users or requests
Solution Approach 2:
Different routing strategies are applied to different portions of traffic based on local conditions. The system can apply specific routing rules to particular user groups, geographic regions, or request types, allowing service consistency for standard operations while enabling targeted testing and experimentation for specific segments without affecting overall system stability
Data Source
AI summary
A customizable router manages traffic between application programming interfaces (APIs) of microservice applications (apps) that make up various features of a website. Various datastores may also be used to store information, such as information related to certain products, pricing, users, etc. In order for the website to function properly, the microservice apps communicate with one another and with the datastores. The customizable router is used to manage and route traffic between the microservice apps and/or datastores. The customizable router may, for example, route a universal resource indicator (URI) request for a webpage of a website to particular versions or revisions of a microservice app based on rules established for the customizable router. For example, a certain percentage of traffic may be routed to a first version of a microservice app, while a different percentage of traffic may be routed to a second version of the microservice app.


