Programmable environments for quick orchestration of deployments

Detalhes bibliográficos
Autor(a) principal: Poleri, Maria Helena Ribeiro
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