Safe API Evolution in a Microservice Architecture with a Pluggable and Transactionless Solution

Detalhes bibliográficos
Autor(a) principal: Ribeiro, Rodrigo Jorge
Data de Publicação: 2022
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/10362/151779
Resumo: In contrast to monolithic system designs, microservice architectures provide greater scala- bility, availability, and delivery by separating the elements of a large project into indepen- dent entities linked through a network of services. Because services are tied to one another via their interfaces, they can only evolve separately if their contracts remain consistent. There is a scarcity of mechanisms for safely evolving and discontinuing functionalities of services. In monolithic system design’s, changing the definition of an element can be accom- plished quickly with the aid of developer tools (such as IDE refactoring toolkits). In distributed systems there is a lack of comparable tools, developers are left with the burden of manually tracking down and resolving problems caused by uncontrolled updates. To ensure that microservices are working properly the general approach is to validate their behaviour through empirical tests. This thesis aims to supplement the conventional approach by providing mechanisms that support the automatic validation of deployment operations, and the evolution of mi- croservice interfaces. It ́s presented a microservice management system that verifies the safety of modifications to service interfaces and that enables the evolution of service con- tracts without impacting consumer services. The system use runtime-generated proxies, that dynamically convert the data sent between services to the format expected by static code, thereby relieving the developer of the need to manually adapt existing services.
id RCAP_b87ae85d85044221d688d1a95258dc7c
oai_identifier_str oai:run.unl.pt:10362/151779
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 Safe API Evolution in a Microservice Architecture with a Pluggable and Transactionless Solutionmicroservicessoftware evolutionservice compatibilityAPIinterface adaptationDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaIn contrast to monolithic system designs, microservice architectures provide greater scala- bility, availability, and delivery by separating the elements of a large project into indepen- dent entities linked through a network of services. Because services are tied to one another via their interfaces, they can only evolve separately if their contracts remain consistent. There is a scarcity of mechanisms for safely evolving and discontinuing functionalities of services. In monolithic system design’s, changing the definition of an element can be accom- plished quickly with the aid of developer tools (such as IDE refactoring toolkits). In distributed systems there is a lack of comparable tools, developers are left with the burden of manually tracking down and resolving problems caused by uncontrolled updates. To ensure that microservices are working properly the general approach is to validate their behaviour through empirical tests. This thesis aims to supplement the conventional approach by providing mechanisms that support the automatic validation of deployment operations, and the evolution of mi- croservice interfaces. It ́s presented a microservice management system that verifies the safety of modifications to service interfaces and that enables the evolution of service con- tracts without impacting consumer services. The system use runtime-generated proxies, that dynamically convert the data sent between services to the format expected by static code, thereby relieving the developer of the need to manually adapt existing services.Em contraste com sistemas tradicionais monoliticos, as arquiteturas de microsserviços permitem grande escalabilidade, disponibilidade e capacidade de entrega, separando os elementos de um grande projeto em entidades independentes ligadas através de uma rede serviços. Como os serviços estão ligados uns aos outros através das suas interfaces, só podem evoluir separadamente se os seus contratos se mantiverem consistentes. Existe uma escassez de mecanismos para evoluir e descontinuar as funcionalidades dos serviços em segurança. Nos sistemas tradicionais monoliticos, a alteração da definição de um elemento pode ser realizada rapidamente com a ajuda de ferramentas automatizadas (tais como kits de ferramentas de refactoring IDE). Em sistemas distribuídos, existe falta de ferramentas comparáveis, os programadores ficam normalmente sobrecarregados com a resolução ma- nual de problemas causados por atualizações e pela validação do correcto funcionamento do sistema através de testes empíricos. O trabalho desenvolvido nesta tese procura complementar a abordagem convencional, fornecendo mecanismos que suportam a validação das operações de deployment. É apre- sentado um sistema de gestão de microsserviços que verifica a segurança das modificações das interfaces de serviço e a evolução dos contratos. A abordagem utiliza proxies, que convertem dinamicamente os dados enviados entre serviços ao formato esperado pelo código de serviço estático, minimizando a intervenção manual do programador.Ferreira, CarlaSeco, JoãoRUNRibeiro, Rodrigo Jorge2023-04-13T09:41:01Z2022-122022-12-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/151779enginfo: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:RCAAP2024-03-11T05:34:09Zoai:run.unl.pt:10362/151779Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:54:41.621506Repositó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 Safe API Evolution in a Microservice Architecture with a Pluggable and Transactionless Solution
title Safe API Evolution in a Microservice Architecture with a Pluggable and Transactionless Solution
spellingShingle Safe API Evolution in a Microservice Architecture with a Pluggable and Transactionless Solution
Ribeiro, Rodrigo Jorge
microservices
software evolution
service compatibility
API
interface adaptation
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Safe API Evolution in a Microservice Architecture with a Pluggable and Transactionless Solution
title_full Safe API Evolution in a Microservice Architecture with a Pluggable and Transactionless Solution
title_fullStr Safe API Evolution in a Microservice Architecture with a Pluggable and Transactionless Solution
title_full_unstemmed Safe API Evolution in a Microservice Architecture with a Pluggable and Transactionless Solution
title_sort Safe API Evolution in a Microservice Architecture with a Pluggable and Transactionless Solution
author Ribeiro, Rodrigo Jorge
author_facet Ribeiro, Rodrigo Jorge
author_role author
dc.contributor.none.fl_str_mv Ferreira, Carla
Seco, João
RUN
dc.contributor.author.fl_str_mv Ribeiro, Rodrigo Jorge
dc.subject.por.fl_str_mv microservices
software evolution
service compatibility
API
interface adaptation
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic microservices
software evolution
service compatibility
API
interface adaptation
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description In contrast to monolithic system designs, microservice architectures provide greater scala- bility, availability, and delivery by separating the elements of a large project into indepen- dent entities linked through a network of services. Because services are tied to one another via their interfaces, they can only evolve separately if their contracts remain consistent. There is a scarcity of mechanisms for safely evolving and discontinuing functionalities of services. In monolithic system design’s, changing the definition of an element can be accom- plished quickly with the aid of developer tools (such as IDE refactoring toolkits). In distributed systems there is a lack of comparable tools, developers are left with the burden of manually tracking down and resolving problems caused by uncontrolled updates. To ensure that microservices are working properly the general approach is to validate their behaviour through empirical tests. This thesis aims to supplement the conventional approach by providing mechanisms that support the automatic validation of deployment operations, and the evolution of mi- croservice interfaces. It ́s presented a microservice management system that verifies the safety of modifications to service interfaces and that enables the evolution of service con- tracts without impacting consumer services. The system use runtime-generated proxies, that dynamically convert the data sent between services to the format expected by static code, thereby relieving the developer of the need to manually adapt existing services.
publishDate 2022
dc.date.none.fl_str_mv 2022-12
2022-12-01T00:00:00Z
2023-04-13T09:41:01Z
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/10362/151779
url http://hdl.handle.net/10362/151779
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_ 1799138135349657600