Exploring maintainability and performance in Ballerina Microservices
Autor(a) principal: | |
---|---|
Data de Publicação: | 2023 |
Tipo de documento: | Dissertação |
Idioma: | eng |
Título da fonte: | Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
Texto Completo: | http://hdl.handle.net/10400.22/23737 |
Resumo: | Microservices architecture currently is the industry norm for creating applications since it allows teams to focus on individual services related to specific business functionalities, reducing the overall application complexity and improving its maintainability. However, microservices architecture has liabilities regarding service integration, communication, governance, and data management. To solve these liabilities, the industry and academic community have focused on creating new frameworks and solutions. More recently, the focus changed to creating new programming languages focused on microservices. This study aims to investigate the effects of language-oriented approaches in developing microservices. The work focuses on Ballerina, a programming language created to simplify the creation and integration of microservices. From the literature’s analysis, Ballerina demonstrates the ability to be more beneficial than the most common implementations of microservices that use more common frameworks. To further investigate these statements, an experience based on the migration of existing microservices developed in Java with the use of the framework Spring Boot was conducted. This experience used a migration strategy created based on the language’s specificities. The resulting Ballerina microservice is compared with its original counterpart. The experience focused on analyzing both solutions in terms of maintainability and performance. Therefore, the Goals, Questions, Metrics (GQM) approach was used to obtain metrics for the mentioned quality attributes. From the obtained results, it was concluded that the Ballerina solution presents differences from the Spring Boot solution, being superior regarding maintainability and inferior in performance. |
id |
RCAP_ec9d923dd0a74c19de222fb002e052ea |
---|---|
oai_identifier_str |
oai:recipp.ipp.pt:10400.22/23737 |
network_acronym_str |
RCAP |
network_name_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository_id_str |
7160 |
spelling |
Exploring maintainability and performance in Ballerina MicroservicesMicroservice ArchitectureBallerinaLanguage-Based ApproachSpring BootMicroservices architecture currently is the industry norm for creating applications since it allows teams to focus on individual services related to specific business functionalities, reducing the overall application complexity and improving its maintainability. However, microservices architecture has liabilities regarding service integration, communication, governance, and data management. To solve these liabilities, the industry and academic community have focused on creating new frameworks and solutions. More recently, the focus changed to creating new programming languages focused on microservices. This study aims to investigate the effects of language-oriented approaches in developing microservices. The work focuses on Ballerina, a programming language created to simplify the creation and integration of microservices. From the literature’s analysis, Ballerina demonstrates the ability to be more beneficial than the most common implementations of microservices that use more common frameworks. To further investigate these statements, an experience based on the migration of existing microservices developed in Java with the use of the framework Spring Boot was conducted. This experience used a migration strategy created based on the language’s specificities. The resulting Ballerina microservice is compared with its original counterpart. The experience focused on analyzing both solutions in terms of maintainability and performance. Therefore, the Goals, Questions, Metrics (GQM) approach was used to obtain metrics for the mentioned quality attributes. From the obtained results, it was concluded that the Ballerina solution presents differences from the Spring Boot solution, being superior regarding maintainability and inferior in performance.A arquitetura baseada em microserviços atualmente é dentro da indústria considerada a norma para a criação de aplicações. A arquitetura baseada em microserviços apresenta diversas vantagens, como a possibilidade de distribuir as diferentes funcionalidades da aplicação por diversas equipas, possibilitando também o desenvolvimento dos seus serviços em linguagens de programação diferentes. Esta modularização traduz-se num acréscimo à independência das equipas, possibilitando a implementação dos seus próprios processos de trabalho como também reduz a complexidade total da aplicação, aumentando a sua manutenibilidade. Contudo, a arquitetura baseada em microserviços, dado o aumento na sua utilização, deu origem a novas questões e preocupações para as equipas de desenvolvimento e para as organizações. As equipas de desenvolvimento encontraram dificuldades na integração e comunicação dos seus serviços, principalmente quando estes eram desenvolvidos em linguagens de programação bastante divergentes. Apesar da modularidade e desacoplamento dos serviços, começou a ser detetada uma grande dependência com metodologias de implantação do código, onde o sucesso de microserviços encontrava-se fortemente dependente do uso de contentores e sistemas de orquestração. As organizações identificaram um aumento nos seus custos devido ao aumento de processos, armazenamento em servidores e de software para suporte às diversas equipas. Estas dificuldades advêm do facto de as linguagens de programação habitualmente usadas para a criação de microserviços não terem sido edificadas com o objetivo de suportar microserviços bem como não salvaguardam algumas das preocupações identificadas anteriormente. De forma a combater estas dificuldades, a indústria e a comunidade académica incidiram as suas investigações em novas frameworks e soluções. Recentemente, dado o novo foco na otimização para o "desenvolvimento", surgiram novas linguagens de programação orientadas a microserviços. Este estudo tem como objetivo investigar os efeitos da utilização de linguagens de programação orientadas a microserviços e subsequentemente a análise do seu impacto relativamente a atributos de qualidade relevantes para os mesmos. O foco deste estudo incidirá na linguagem de programação Ballerina, uma linguagem de programação criada com o intuito de facilitar a criação de serviços resilientes capazes de se integrarem e orquestrarem através de pontos de saída distribuídos. Foi realizada uma investigação à literatura existente sobre microserviços e sobre Ballerina, com especial atenção na literatura referente à utilização de Ballerina em microserviços. Esta investigação objetivou a identificação dos atributos de qualidade relevantes, de onde se precisou a manutenibilidade e a performance como sendo os atributos a avaliar. Derivada da análise da literatura, quando confrontada com implementações de linguagens de programação mais tradicionais, Ballerina demonstra a capacidade de proporcionar benefícios aquando da sua utilização em microserviços. Ballerina apresenta vantagens tais como o suporte nativo para a utilização de contentores, suporte a DevOps e funcionalidades focadas na segurança e resiliência das aplicações. De forma a aferir estas afirmações, foi efetuada uma experiência controlada baseada na migração de microserviços desenvolvidos na linguagem de programação Java com recurso à framework Spring Boot para a linguagem Ballerina. Para a realização desta experiência, primeiramente foi escolhido um projeto base do qual se realizaria a migração. O projeto a migrar teria de cumprir alguns requisitos, tais como: ser open-source, ter atividade recente e um número significativo de microserviços. Com base nestes requisitos, foi selecionado o projeto Lakeside Mutual, um projeto sobre uma companhia de seguros fictícia, desenvolvido com o propósito de demonstrar a utilização de padrões sobre APIs e design orientado ao domínio. Seguidamente, foi desenhada uma estratégia de migração com base nas especificidades da linguagem. Dada a implementação da estratégia, foi edificado um serviço em Ballerina à semelhança do original implementado em Java, mantendo todos os seus atributos e funcionalidades. As soluções foram comparadas em termos de manutenibilidade e performance, em que para tal foi utilizada a abordagem Goal, Question, Metrics (GQM) de forma a obter métricas para os atributos de qualidade previamente mencionados. Em termos de manutenibilidade, foram analisados os números de linhas de código existentes e a complexidade calculada através dos níveis de indentação dado que Ballerina ainda não suporta ferramentas como o Sonarqube. Relativamente à performance, foi desenhado e implementado um plano de testes com um número variado de utilizadores virtuais que executavam um conjunto de pedidos REST. Dos resultados obtidos, foi concluído que existem diferenças notáveis entre ambas as soluções. A solução em Ballerina apresenta melhores resultados do que a solução em Spring Boot relativamente à manutenibilidade. Contudo, relativamente à performance, a solução em Spring Boot demonstra obter melhores resultados.Azevedo, Isabel de Fátima SilvaRepositório Científico do Instituto Politécnico do PortoAlves, André Filipe Ribeiro2023-10-23T11:10:13Z20232023-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10400.22/23737TID:203371534enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-01T01:46:16Zoai:recipp.ipp.pt:10400.22/23737Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T20:39:28.293063Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse |
dc.title.none.fl_str_mv |
Exploring maintainability and performance in Ballerina Microservices |
title |
Exploring maintainability and performance in Ballerina Microservices |
spellingShingle |
Exploring maintainability and performance in Ballerina Microservices Alves, André Filipe Ribeiro Microservice Architecture Ballerina Language-Based Approach Spring Boot |
title_short |
Exploring maintainability and performance in Ballerina Microservices |
title_full |
Exploring maintainability and performance in Ballerina Microservices |
title_fullStr |
Exploring maintainability and performance in Ballerina Microservices |
title_full_unstemmed |
Exploring maintainability and performance in Ballerina Microservices |
title_sort |
Exploring maintainability and performance in Ballerina Microservices |
author |
Alves, André Filipe Ribeiro |
author_facet |
Alves, André Filipe Ribeiro |
author_role |
author |
dc.contributor.none.fl_str_mv |
Azevedo, Isabel de Fátima Silva Repositório Científico do Instituto Politécnico do Porto |
dc.contributor.author.fl_str_mv |
Alves, André Filipe Ribeiro |
dc.subject.por.fl_str_mv |
Microservice Architecture Ballerina Language-Based Approach Spring Boot |
topic |
Microservice Architecture Ballerina Language-Based Approach Spring Boot |
description |
Microservices architecture currently is the industry norm for creating applications since it allows teams to focus on individual services related to specific business functionalities, reducing the overall application complexity and improving its maintainability. However, microservices architecture has liabilities regarding service integration, communication, governance, and data management. To solve these liabilities, the industry and academic community have focused on creating new frameworks and solutions. More recently, the focus changed to creating new programming languages focused on microservices. This study aims to investigate the effects of language-oriented approaches in developing microservices. The work focuses on Ballerina, a programming language created to simplify the creation and integration of microservices. From the literature’s analysis, Ballerina demonstrates the ability to be more beneficial than the most common implementations of microservices that use more common frameworks. To further investigate these statements, an experience based on the migration of existing microservices developed in Java with the use of the framework Spring Boot was conducted. This experience used a migration strategy created based on the language’s specificities. The resulting Ballerina microservice is compared with its original counterpart. The experience focused on analyzing both solutions in terms of maintainability and performance. Therefore, the Goals, Questions, Metrics (GQM) approach was used to obtain metrics for the mentioned quality attributes. From the obtained results, it was concluded that the Ballerina solution presents differences from the Spring Boot solution, being superior regarding maintainability and inferior in performance. |
publishDate |
2023 |
dc.date.none.fl_str_mv |
2023-10-23T11:10:13Z 2023 2023-01-01T00:00:00Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/10400.22/23737 TID:203371534 |
url |
http://hdl.handle.net/10400.22/23737 |
identifier_str_mv |
TID:203371534 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.source.none.fl_str_mv |
reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação instacron:RCAAP |
instname_str |
Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
instacron_str |
RCAAP |
institution |
RCAAP |
reponame_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
collection |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository.name.fl_str_mv |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
repository.mail.fl_str_mv |
|
_version_ |
1799133656067866624 |