Software Versioning with Microservices through the API Gateway Desing Pattern - AKBULUT, AKHAN (My University, 2019)
he microservices architecture is a relatively new approach in implementing service-oriented systems. This cloud native architectural style enables the implementation of loosely coupled, agile, reuse-oriented, and lightweight services instead of monoliths. It also eliminates vendor and/or technology lock-ins. A modification to a small code segment for monoliths may require the building and deployment of a completely new version of the software. However, the modular form of microservices allows solving software versioning in a polyglot manner. In this paper, we extend the well-known microservice design pattern API gateway with a view to managing the virtual hardware configuration of containers. Specifically, using the proposed approach, the service capacity in the requested version of the service is orchestrated adaptively in compliance with a service-level agreement. In our tests, we found that the proposed version management approach reduced the hosting cost by 27% compared to static or rule-based scaling.
Keywords: Microservices; Software Versioning; Version Management; API Gateway; Design Pattern; Container Sizing; Scaling