Safe API Evolution in a Microservice Architecture with a Pluggable and Transactionless Solution
Autor(a) principal: | |
---|---|
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 |