Programmable environments for quick orchestration of deployments
Autor(a) principal: | |
---|---|
Data de Publicação: | 2020 |
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: | https://hdl.handle.net/1822/84131 |
Resumo: | Dissertação de mestrado integrado em Engenharia Informática |
id |
RCAP_4f6e9fe37fa99f78ca86d6ddab5f347c |
---|---|
oai_identifier_str |
oai:repositorium.sdum.uminho.pt:1822/84131 |
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 |
Programmable environments for quick orchestration of deploymentsAmbientes programáveis para a rápida orquestração de deploymentsAutomaçãoContainerisaçãoIntegração contínuaOrquestração de containersAutomationContainer orchestrationContainerisationContinuous integrationEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaDissertação de mestrado integrado em Engenharia InformáticaCom o surgimento da computação em cloud, tem havido uma crescente adoção da containerisação (containerisation) e orquestração de containers para o desenvolvimento de software. As empresas que aderem a práticas de ContinuousIntegration/ContinuousDelivery(CI/CD)e microserviços beneficiam muito da adoção destas tecnologias, pois os containerstem permitido o aprovisionamento mais rápido e automatizado de aplicações, melhorando a sua escalabilidade e capacidade de tolerância a faltas. A Feedzai é uma empresa que usa algoritmos de machine learning para combater a fraude financeira, usando um sistema distribuído complexo constituído por múltiplas tecnologias. Escrever configurações para ambientes de teste nestas condições é frequentemente um desafio para o engenheiro de testes, especialmente se feito manualmente, resultando num maior custo em horas-humano necessárias para desempenhar esta tarefa. Quando se trata de ambientes de teste, estas configurações dependem muito da topologia requerida pelo teste, o que resulta num potencialmente grande e crescente número de ficheiros de configuração para gerir. É obrigatório resolver este problema cedo, de forma a antecipar uma stack tecnológica difícil de gerir à medida que os casos de teste que terão de ser cobertos crescem. Este problema foi alvo de várias tentativas de solução por parte de engenheiros na Feedzai, mas as soluções resultantes provaram, com o passar do tempo, ser insuficientes, resolvendo apenas parte do problema. Esta dissertação apresenta a arquitetura e principais decisões de implementação do ProgrammableEnvironmentsforQuickOrchestrationofDeployments(Pequod), uma framework que se propõe a resolver o problema supramencionado ao permitir ao programador lançar um ambiente composto por uma stack tecnológica arbitrária usando uma qualquer tecnologia de containerisação/orquestração escolhida pelo mesmo. Com esta ferramenta, o programador apenas escolhe quais os componentes que serão lançados e descreve as dependências entre os mesmos; a lógica de configurar estes componentes usando a tecnologia escolhida é executada pelo Pequod, sem que o programador tenha de ficar familiarizado com esta. O desenho da Domain-SpecificLanguage(DSL)que permite ao programador definir o ambiente de forma transparente é também discutido aqui. O presente documento apresenta também uma avaliação das capacidades desta framework usando dois produtos distintos da Feedzai. Os resultados desta avaliação revelaram que esta nova framework está em conformidade com os objetivos delineados de início, resolvendo os problemas que as soluções antecessoras não resolviam.There has been an ever growing adoption of containerisation and container orchestration for software development. The enterprises that adhere to CI/CD and microservices practices benefit a lot from the adoption of these technologies, since containers allow for faster and automated provisioning of applications, as well as improved scalability and fault tolerance. Feedzai is a company that uses machine learning algorithms for fighting financial fraud, using a complex distributed system consisting of multiple technologies. Writing test environment configurations in these conditions is often a challenge for the testing engineer, especially if done manually, resulting in a high cost in human hours needed. When it comes to testing environments, these configurations depend a lot on the topology required by the test, which results in a potentially large and growing number of configuration files to manage. It is essential to tackle this problem early on, anticipating an unmanageable technological stack as the growing number of test cases will need to be covered. Solving this problem has been attempted by engineers at Feedzai multiple times in the past, but these solutions proved to be insufficient over time, solving only part of the bigger problem. This dissertation presents the architecture and main implementation decisions of Pequod, a framework that proposes to solve the aforementioned problem by allowing the developer to launch an environment composed of an arbitrary technological stack using a given containerisation/orchestration technology chosen by the developer. With this tool, the developer only has to choose the components that are to be launched and the dependencies between them; the logic of configuring these components using the technology chosen is carried out by the framework itself, without the developer having to become familiar with it. The design of the DSL that allows the developer to define the environment transparently is also discussed here. This document also presents the evaluation of the capabilities of this framework with two distinct Feedzai products. The outcomes of this evaluation revealed that the new framework conforms with the objectives initially outlined, solving the problems that its predecessor solutions were unable to.Ribeiro, António NestorUniversidade do MinhoPoleri, Maria Helena Ribeiro2020-12-222020-12-22T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1822/84131eng203254210info: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-07-21T12:38:05Zoai:repositorium.sdum.uminho.pt:1822/84131Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T19:34:28.032766Repositó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 |
Programmable environments for quick orchestration of deployments Ambientes programáveis para a rápida orquestração de deployments |
title |
Programmable environments for quick orchestration of deployments |
spellingShingle |
Programmable environments for quick orchestration of deployments Poleri, Maria Helena Ribeiro Automação Containerisação Integração contínua Orquestração de containers Automation Container orchestration Containerisation Continuous integration Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
title_short |
Programmable environments for quick orchestration of deployments |
title_full |
Programmable environments for quick orchestration of deployments |
title_fullStr |
Programmable environments for quick orchestration of deployments |
title_full_unstemmed |
Programmable environments for quick orchestration of deployments |
title_sort |
Programmable environments for quick orchestration of deployments |
author |
Poleri, Maria Helena Ribeiro |
author_facet |
Poleri, Maria Helena Ribeiro |
author_role |
author |
dc.contributor.none.fl_str_mv |
Ribeiro, António Nestor Universidade do Minho |
dc.contributor.author.fl_str_mv |
Poleri, Maria Helena Ribeiro |
dc.subject.por.fl_str_mv |
Automação Containerisação Integração contínua Orquestração de containers Automation Container orchestration Containerisation Continuous integration Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
topic |
Automação Containerisação Integração contínua Orquestração de containers Automation Container orchestration Containerisation Continuous integration Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
description |
Dissertação de mestrado integrado em Engenharia Informática |
publishDate |
2020 |
dc.date.none.fl_str_mv |
2020-12-22 2020-12-22T00: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 |
https://hdl.handle.net/1822/84131 |
url |
https://hdl.handle.net/1822/84131 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.relation.none.fl_str_mv |
203254210 |
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_ |
1799132866533130240 |