haku: @supervisor Vuorimaa, Petri / yhteensä: 191
viite: 6 / 191
Tekijä:Nguyen, Thuy
Työn nimi:Benchmarking Performance of Data Serialization and RPC Frameworks in Microservices Architecture: gRPC vs. Apache Thrift vs. Apache Avro
Julkaisutyyppi:Diplomityö
Julkaisuvuosi:2016
Sivut:(6) + 53      Kieli:   eng
Koulu/Laitos/Osasto:Perustieteiden korkeakoulu
Oppiaine:Digital Media Technology   (SCI3023)
Valvoja:Vuorimaa, Petri
Ohjaaja:Gurel, Tayfun
Elektroninen julkaisu: http://urn.fi/URN:NBN:fi:aalto-201611025487
Sijainti:P1 Ark Aalto  4766   | Arkisto
Avainsanat:microservices
RPC
performance
gRPC
Apache Thrift
Apache Avro
Tiivistelmä (eng):Microservices Architecture is becoming an prominent standard when it comes to designing high-level architecture of complex applications.
Each microservice addresses one small part of the application with very specific functionalities for very specific business requirements.
With such limited scope, it can be deployed as a standalone service.
Different microservices in the same system can be written in different programming languages, depending on the tasks they need to accomplish.
Despite its popularity, microservices architecture also has challenging issues and communication between the microservices is one of those.
RPC has been universally adopted in large distributed software systems with the client-server model of computing and is suitable for use in microservices architecture.
IDT Messaging Oy's MagicWords system consists of several microservices written in Java and Python and uses MsgPack RPC to facilitate inter-services communication.
However, MsgPack is outdated, not widely adopted and hence lacks continuous updates, bug fixes, as well as community support.
The goal of this thesis is to investigate which RPC framework I should implement to replace MsgPack.

I choose three popular open-source data serialization and RPC frameworks for my investigation, they are gRPC, Apache Thrift, and Avro.
I perform extensive benchmarking tests to evaluate their performance in terms of message serialization and end-to-end communication for both Java and Python implementations.
The execution time, CPU usage and memory usage are recorded.
I then analyze the performance results as well as the implementation style of each framework.
The performance of gRPC even though is not the best in all scenarios, it is in general very good.
Furthermore, gRPC has comprehensive documentation, follows modern style, and is still actively developed and therefore the conclusion is to adopt gRPC for MagicWords.
ED:2016-11-13
INSSI tietueen numero: 55018
+ lisää koriin
INSSI