Scalable invoice-based B2B payments with microservices

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Master's thesis

Date

2020-01-20

Department

Major/Subject

Cloud Computing and Services

Mcode

SCI3081

Degree programme

Master's Programme in ICT Innovation

Language

en

Pages

66 + 4

Series

Abstract

Paying by invoice has several advantages for businesses over conventional payment methods such as Debit/Credit cards. An invoice not only allows a buyer to make the purchase on credit but also contains the tax information for each purchased item. Businesses need to save this information in their financial records and report it to the authorities. The core challenge in an invoice-based payment method is the ability to make an accurate credit decision for a given purchase. Such a credit decision requires information about the buying company such as their credit rating. The company information is gathered in real time from different third-party sources. In this context, Enterpay Oy provides an invoiced-based B2B payment solution and is growing its payment service to European countries. In order to support this expansion, Enterpay needs to develop new capabilities such as the ability to detect fraudulent purchases. These new features require the application architecture to be flexible in terms of technology. For example, different components of the service should be built with the most suited programming language, libraries, and frameworks. The goal of this thesis is to enable efficient scaling and high availability for Enterpay's payment service. Thus, we have migrated from a monolithic a microservice-based architecture. This transition allows us to choose the best suited technology for the business case of the given microservice. We extracted various modules from the original monolithic application, which have different scalability criteria. We built these modules as Docker containers, which run as independent microservices. We used Kubernetes as the container orchestration framework and deployed the microservice in Amazon Web Services (AWS). Finally, we conducted experiments to measure the performance of the service with the new architecture. We found that this architecture not only scales faster but also recovers from instance failures quicker than the previous solution. Additionally, we noticed that the average response time of service request is similar in both architectures. Finally, we observed that new microservices can be built using different technology stack and deployed conveniently in the same Kubernetes cluster.

Description

Supervisor

Di Francesco, Mario

Thesis advisor

Premsankar, Gopika

Keywords

microservices, docker, kubernetes, B2B payments, monolithic architecture, virtualization

Other note

Citation