Language-Agnostic Gray Deployment via Proxy Plugin Labeling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing deployment techniques for microservices in production environments are costly and resource-intensive, particularly for larger applications, and lack support for language-agnostic traffic routing between microservices and middleware, leading to inefficiencies in communication pathways.
Innovation Solution
The implementation of a language-agnostic full link gray deployment method that uses a plugin within a proxy to propagate and route traffic, assigning custom labels to requests based on trace IDs to manage traffic between different versions of microservices and middleware.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If two versions of the entire application are run in production for seamless migration and rollback, then deployment flexibility is improved, but resource consumption and cost increase significantly
Solution Approach 1:
The patent segments the application into independent microservices that can be deployed and managed separately. Instead of running two complete application versions, individual microservices are versioned and routed independently, reducing the resource overhead from duplicating entire applications to duplicating only specific service components.
Solution Approach 2:
The patent applies local quality by enabling different routing strategies for different microservices within the same application. Traffic can be routed to specific versions of individual services based on local service requirements rather than globally versioning the entire application, allowing precise control over resource allocation.
2Ease of operation
If traffic splitting is implemented only at the entry point, then routing simplicity is maintained, but independent microservice management becomes challenging
Solution Approach 1:
The patent introduces an intermediary routing layer (service mesh/proxy) that sits between the entry point and microservices. This intermediary handles complex routing logic internally while presenting a simple interface at the entry point, enabling both routing simplicity and microservice independence simultaneously.
Solution Approach 2:
The patent adds a new dimension to routing by implementing multi-dimensional routing capabilities. Traffic can be routed not only at the entry point but also dynamically at each service boundary using trace identifiers and custom labels, creating a multi-layered routing architecture that maintains simplicity while enabling fine-grained control.
3Productivity
If language-specific deployment methods are used, then deployment efficiency for specific stacks is improved, but flexibility and integration complexity decrease when using diverse technologies
Solution Approach 1:
The patent implements a universal deployment approach using language-agnostic protocols and standards (HTTP, gRPC, trace identifiers). The routing mechanism works across different programming languages and frameworks through standardized interfaces, enabling multi-functionality that handles both language-specific efficiency and cross-language integration simultaneously.
4Device complexity
If traffic routing between services and middleware is not supported, then system complexity is reduced, but communication pathway optimization is hindered
Solution Approach 1:
The patent applies preliminary action by pre-configuring routing rules and policies for service-to-middleware communication. Trace identifiers and custom labels are attached to requests in advance, enabling the routing system to automatically direct traffic through optimized pathways without adding complex runtime decision-making logic.
Data Source
AI summary
According to one or more aspects, apparatus, systems, and methods may be provided for language agnostic full link gray deployment of microservices and middleware. According to an aspect a method may be provided for propagating and routing traffic between microservices of an application. The method includes receiving, at a plugin of a proxy corresponding to a service of the application, an outbound request from the service. The outbound request may indicate a trace identifier (ID) identifying a trace of the outbound request in the application. The method may further include assigning, by the plugin, a custom label to the outbound request. The custom label may be associated with the trace ID and indicate a version of the application towards which the outbound request is to be routed. The method may further include sending, by the plugin to a router of the proxy, the outbound request for routing.


