Fabric Controller Proxy for Microservice Traffic Routing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Sidecar proxies in service meshes for microservices are inefficient in obtaining information about application instances on other nodes, lack central repository for application information, and can be a single point of failure, failing to provide efficient Layer 7 services, multi-tenancy, and end-to-end encryption.
Innovation Solution
Implementing a datacenter fabric managed by a fabric controller with virtual fabric edges on host nodes, which provides global visibility and routes application traffic, enabling efficient service discovery, health checking, and rate limiting, while using VxLAN overlays for multi-tenancy and end-to-end encryption through API interactions with the container orchestrator.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If sidecar proxies are used to provide Layer 7 services for microservices, then reliability and distributed information source are improved, but efficiency in obtaining information regarding application instances on other nodes deteriorates
Solution Approach 1:
The patent introduces a fabric controller as an intermediary component that mediates between sidecar proxies and application instances. The fabric controller maintains a centralized repository of application information and serves this information to sidecar proxies, eliminating the need for sidecar proxies to directly query each application instance node. This resolves the contradiction by providing reliable distributed information access while improving efficiency through centralized information serving.
2Reliability
If sidecar proxies communicate with sidecar proxies on each node to obtain application information, then distributed information source is achieved, but network traffic and complexity increase
Solution Approach 1:
The fabric controller serves as an intermediary that consolidates information requests from multiple sidecar proxies. Instead of sidecar proxies directly communicating with each other to obtain application information, all queries are routed through the fabric controller which maintains a centralized repository. This reduces network traffic complexity while preserving the distributed architecture's reliability benefits.
Solution Approach 2:
The fabric controller performs multiple functions: it serves as an information repository, an information distribution mechanism, and a traffic management component. By making the system multi-functional, the patent reduces the need for multiple specialized components and simplifies the overall system architecture while maintaining distributed reliability.
3Adaptability or versatility
If middle proxies are used to provide Layer 7 services, then service functionality is achieved, but single point of failure risk increases
Solution Approach 1:
The patent segments the proxy functionality into two distinct components: sidecar proxies that are deployed alongside each application instance (providing local service functionality) and a fabric controller that provides centralized management and information serving. This segmentation ensures that the failure of the fabric controller does not affect the operational capability of individual application instances, as each has its own sidecar proxy. Meanwhile, the fabric controller provides reliable service discovery and information management without creating a single point of failure for service functionality.
Data Source
AI summary
A system for providing services for microservices applications is described herein. In an embodiment, a system comprises a plurality of container environments, each of which comprising a host node. A virtual fabric edge instance executes on each host node. The host nodes are interconnected through a plurality of switches. A fabric controller manages the plurality of switches and implements policies through the virtual fabric edge instances executing on each host node. The fabric controller additionally provides services for the application instances through the virtual fabric edge instances by routing traffic, data, queries from an application or proxy instance to another application or proxy instance in the container environment through the virtual fabric edge instances.


