Local Microservice Development via Reverse Proxy Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing and debugging microservices in a microservice architecture is challenging due to the complexity of managing local and remote deployments, as it is impractical to run all microservices on a local data processing system due to size constraints, specific configurations, and dependencies on PaaS services like databases and message queues.

Innovation Solution

A computer-implemented method and system that allows a locally deployed microservice to interact with remotely deployed microservices by using a local reverse proxy, which routes requests through a single uniform resource locator, enabling interaction with remotely deployed microservices and managing session tokens for single sign-on, thus allowing local development and debugging without the need for full remote deployment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If all microservices are deployed remotely in a cloud environment, then the system achieves scalability and adaptability, but local development and debugging become impractical due to size constraints, configuration complexity, and dependency on PaaS services

Engineering Contradiction:
Improvecloud deployment scalabilityVSAvoidlocal development feasibility
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The system segments the microservice deployment into two distinct environments: a local development environment where individual microservices can be run independently for development and debugging, and a remote production environment where the complete microservice architecture is deployed. This segmentation allows developers to work locally without needing to replicate the entire remote infrastructure, resolving the contradiction between cloud scalability and local development feasibility

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary mechanism (local development environment with simulated PaaS services) that bridges the gap between local development needs and remote production requirements. This intermediary allows developers to interact with microservices locally while maintaining compatibility with the remote deployment architecture, enabling both local ease of operation and remote adaptability

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a complete microservice architecture is deployed locally for development, then all microservices can interact with each other, but the system becomes too complex to manage due to size, configuration, and dependency requirements

Engineering Contradiction:
Improvemicroservice interaction completenessVSAvoidlocal system management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system extracts individual microservices from the complete remote architecture and allows them to be developed and tested independently in the local environment. Developers can take out specific microservices that need modification or debugging, work on them locally with simulated dependencies, and then redeploy them to the remote environment. This extraction approach maintains microservice interaction reliability for the services being developed while avoiding the complexity of managing the entire architecture locally

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of deploying the complete microservice architecture locally (excessive action), the system enables partial deployment where only the specific microservice or minimal set of microservices needed for development are run locally. This partial action approach provides sufficient microservice interaction for development purposes without the overwhelming complexity of managing the full architecture, resolving the contradiction between interaction completeness and management complexity

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11184427B2Local microservice development for remote deployment
Publication Date: 2021.11.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11184427B2 patent drawing
  • US11184427B2 patent drawing
  • US11184427B2 patent drawing

AI summary

Managing microservice function requests is provided. A request originating from a browser of the computer to execute a function corresponding to a microservice locally deployed on the computer is received using a software development kit operating in the computer. The request to execute the function is routed to the microservice using a local reverse proxy running in the software development kit. Other requests originating from the browser of the computer to execute one or more other functions corresponding to one or more microservices in a remotely deployed microservice architecture that interact with the function corresponding to the microservice are received using the software development kit. The other requests to execute the one or more other functions corresponding to the one or more microservices in the remotely deployed microservice architecture are routed, via a single uniform resource locator corresponding to a remote reverse proxy, using the local reverse proxy.