Repository logo
 
No Thumbnail Available
Publication

Evaluating Ballerina's impact on performance and elasticity in distributed applications: a comparison with Java

Use this identifier to reference this record.
Name:Description:Size:Format: 
Tese_5372_v2.pdf4.47 MBAdobe PDF Download

Abstract(s)

Nowadays, there are many programming languages, some quite versatile and others developed for a specific purpose [1]. Ballerina, a new programming language recently launched, is, according to its development team, an innovative language designed specifically for the development of cloud applications [2]. Although Ballerina has emerged on the market as a solution for the development and integration of distributed applications [3], aspects such as its performance and elasticity compared to more traditional languages in application development remain slightly explored. As such, its impact as a language and platform for developing these applications is still unknown, along with its potential and limitations. Furthermore, in one of its most recent versions, it was announced that the language supports the creation of native GraalVM executables, promising “performance improvements and a reduction in start-up times” [4], aspects which, apart from being very promising, have not yet been examined to draw a concise conclusion. In response to these gaps, this study analysed the impact of Ballerina as a language and platform for developing applications compared to a more traditional programming language, Java. An open-source project, based on a microservices architecture, was migrated to Ballerina in order to collect data from both the original and newly migrated applications. Performance and elasticity tests determined that, with the use of GraalVM and Ahead-Of-Time (AOT) compilation, Ballerina applications were able to improve their start-up times by around 90% and their performance in aspects such as response times, throughput and resilience in managing greater number of simultaneous users. In addition, Ballerina applications were able to outperform Java applications in various scenarios, particularly under high-load conditions. Based on the results obtained, it was concluded that the use of Ballerina brings several advantages in terms of performance and elasticity, which makes it an option to be considered for both application development and integration.
Atualmente, existem inúmeras linguagens de programação, algumas mais versáteis e outras criadas com propósitos específicos [1]. Ballerina, uma nova linguagem de programação que surgiu recentemente, é, segundo a sua equipa de desenvolvimento, uma linguagem inovadora projetada especificamente para o desenvolvimento de aplicações na cloud [2]. Apesar de Ballerina surgir no mercado como uma solução para o desenvolvimento e integração de aplicações distribuídas [3], aspetos como a sua performance e elasticidade em comparação com linguagens mais tradicionais no desenvolvimento de aplicações, permanecem pouco explorados. Assim, o seu impacto como linguagem e plataforma para o desenvolvimento dessas aplicações ainda é desconhecida, juntamente com as suas potencialidades e limitações. Além disso, numa das suas versões mais recentes foi anunciado que a linguagem suporta a criação de executáveis nativos GraalVM prometendo “melhorias de desempenho e redução nos tempos de inicialização” [4], aspetos esses que para além de serem bastante promissores ainda não foram examinados para se tirar uma conclusão concisa. Tendo em conta estas incógnitas, analisou-se o impacto de Ballerina como linguagem e plataforma para o desenvolvimento de aplicações comparativamente com uma linguagem de programação mais tradicional, Java. Um projeto open-source, baseado numa arquitetura em microsserviços, foi migrado para Ballerina para depois se recolherem dados, quer das aplicações originais, quer das novas aplicações migradas. Os testes de performance e elasticidade determinaram que, com o uso de GraalVM e a compilação Ahead-Of-Time (AOT), as aplicações Ballerina conseguem melhorar os seus tempos de arranque em cerca de 90% e a sua performance em aspetos como tempos de resposta, rendimento e resiliência em gerir um maior número de utilizadores simultâneos. Para além disso, as aplicações Ballerina conseguiram superar os resultados das aplicações em Java em vários cenários, particularmente em condições de carga altas. Com base nos resultados obtidos, concluiu-se que o uso de Ballerina traz várias vantagens em termos de performance e elasticidade, o que faz dela uma opção a ser considerada quer para o desenvolvimento ou integração de aplicações.

Description

Keywords

Ballerina Java GraalVM Performance Elasticity Distributed applications Elasticidade Aplicações distribuídas

Citation

Research Projects

Organizational Units

Journal Issue

Publisher

CC License