Loading [MathJax]/extensions/MathMenu.js
PiCoP: Service Mesh for Sharing Microservices in Multiple Environments Using Protocol-Independent Context Propagation | IEEE Journals & Magazine | IEEE Xplore

PiCoP: Service Mesh for Sharing Microservices in Multiple Environments Using Protocol-Independent Context Propagation


Abstract:

Continuous integration and continuous delivery require many production-like environments in a cluster for testing, staging, debugging, and previewing. In applications bui...Show More

Abstract:

Continuous integration and continuous delivery require many production-like environments in a cluster for testing, staging, debugging, and previewing. In applications built on microservice architecture, sharing common microservices in multiple environments is an effective way to reduce resource consumption. Previous methods extend application layer protocols like HTTP and gRPC to propagate contexts including environment identifiers and to route requests. However, microservices also use other protocols such as MySQL, Redis, Memcached, and AMQP, and extending each protocol requires lots of effort to implement the extensions. This paper proposes PiCoP, a framework to share microservices in multiple environments by propagating contexts and routing requests independently of application layer protocols. PiCoP provides a protocol that propagates contexts by appending them to the front of each TCP byte stream and constructs a service mesh that uses the protocol to route requests. We design the protocol to make it easy to instrument into a system. We demonstrate that PiCoP can reduce resource usage and that it applies to a real-world application, enabling the sharing of microservices in multiple environments using any application layer protocol.
Published in: IEEE Transactions on Cloud Computing ( Volume: 13, Issue: 1, Jan.-March 2025)
Page(s): 383 - 396
Date of Publication: 20 January 2025

ISSN Information:

Funding Agency:


I. Introduction

Continuous integration and continuous delivery have become crucial for cloud-native software development [1]. These practices require multiple production-like environments in a cluster for testing, staging, debugging, and previewing [2], [3]. The environments should be provided for each developer, team, git branch, feature development, and end-to-end testing [4], [5], [6], [7], [8], [9], [10]. Several tools facilitate their deployment [4], [5], [6]. However, these environments are accessed less frequently than the production environment, leading to wasted reserved resources. In particular, in a microservice architecture [11], where a single application consists of several microservices, a large number of microservices can significantly increase resource wastage.

Contact IEEE to Subscribe

References

References is not available for this document.