Please use this identifier to cite or link to this item:
https://hdl.handle.net/1822/84131
Title: | Programmable environments for quick orchestration of deployments |
Other titles: | Ambientes programáveis para a rápida orquestração de deployments |
Author(s): | Poleri, Maria Helena Ribeiro |
Advisor(s): | Ribeiro, António Nestor |
Keywords: | Automação Containerisação Integração contínua Orquestração de containers Automation Container orchestration Containerisation Continuous integration |
Issue date: | 22-Dec-2020 |
Abstract(s): | Com 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. |
Type: | Master thesis |
Description: | Dissertação de mestrado integrado em Engenharia Informática |
URI: | https://hdl.handle.net/1822/84131 |
Access: | Open access |
Appears in Collections: | BUM - Dissertações de Mestrado DI - Dissertações de Mestrado |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
Maria Helena Ribeiro Poleri.pdf | 3,48 MB | Adobe PDF | View/Open |
This item is licensed under a Creative Commons License