Energy Consumption of Software Architectures - A comparison between microservice- and monolithic architectures in C# and Java
Studenteropgave: Kandidatspeciale og HD afgangsprojekt
- Kristian Theilmann Gregersen
- Daniél Garrido-Y Martinez Nielsen
4. semester, Software, Kandidat (Kandidatuddannelse)
We explore the energy consumption of architectures of software applications. We investigate two architectures, namely the microservice and monolithic architecture. We implement the well described test-application, Pet Store in the languages C# and Java, following each architecture. We utilize JMeter, Docker and a wrapper implementation of Running Average Power Limit (RAPL) by Intel, to setup a test suite where controlled tests are run. Docker Compose and NGINX are used for scaling microservice testing. We setup a set of shell scripts to automatically conduct the tests. We use a test protocol and a minimal install of an operating system, for a consistent test setup. We find that the energy consumption per transaction in a non-scaling environment for C# is 43,79% to 38,80% higher in the microservice architecture compared to the monolithic architecture depending on the use of individual databases for each service. For Java it is 0,86% to 40,30% higher.
Sprog | Engelsk |
---|---|
Udgivelsesdato | 9 jun. 2022 |
Antal sider | 64 |
Emneord | Energi, Programmering, Arkitektur, Strøm, Software |
---|