Scalable invoice-based B2B payments with microservices
Loading...
URL
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu |
Master's thesis
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Authors
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, MarioThesis advisor
Premsankar, GopikaKeywords
microservices, docker, kubernetes, B2B payments, monolithic architecture, virtualization