Metodologia para conteinerização de micro-serviços

Detalhes bibliográficos
Autor(a) principal: Brinza, Andrei
Data de Publicação: 2022
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10174/33057
Resumo: Nas últimas décadas a internet tem experienciado um crescimento exponencial. Para acompanhar esse crescimento, as aplicações web têm vindo a ser cada vez mais complexas. As aplicações, que inicialmente começaram com uma arquitetura monolítica, tornaram-se ingeríveis devido ao seu grande crescimento. Para mitigar este problema, tem-se optado cada vez mais por arquiteturas em microsserviços. Esta arquitetura, ao contrário da monolítica, permite ter as funcionalidades desacopladas, facilitando a escalabilidade individual. No entanto, devido ao facto de muitas vezes os microsserviços correrem em ambientes ou máquinas diferentes, surgiu a necessidade de uniformizar os ambientes de execução. Inicialmente a solução passou por usar máquinas virtuais e posteriormente evoluiu para containers. Um container é um package independente que contém apenas o que é estritamente necessário para correr a aplicação. Devido ao grande número de microsserviços que algumas aplicações têm, surgiu a necessidade de automatizar o processo de orquestração de containers, ou seja, escalar e alocar recursos automaticamente a cada instância do microsserviço. Esta dissertação estuda e aplica uma metodologia de conteinerizar à uma aplicação com uma arquitetura de microsserviços, que corre em máquinas virtuais. Adicionalmente, também são discutidos e aplicados conceitos de Continuous Integration (CI)/Continuous Delivery (CD) e DevOps, criando uma pipeline automatizada com Git Actions; Abstract: Methodology for containerization of microservices In the last decades, we have witnessed an exponential growth in internet usage in our lives. This led to increasingly more complex web applications. The applications usually start as a monolithic architecture that naturally grows in size, making them hard to maintain and understand. To mitigate this problem, microservices-based architectures have seen an increase in popularity. In contrast to the monolithic architecture, microservices architectures allow the development of decoupled functionalities, which can be then scaled individually. However, since most of the time the microservices run in different environments or machines, there is the need to unify the runtime environments. Initially, the solution was to use virtual machines, and then the trend transitioned to containers, which is just a small package that only has what is absolutely needed to run the application. Due to the high number of microservices that some applications have, orchestration tools that automatically scale and allocate resources to the microservices are needed. This thesis studies and applies a containerization methodology to a real-world microservices application that currently runs on virtual machines. Furthermore, it also introduces and applies the concept of CI/CD pipelines and DevOps, using Git Actions.
id RCAP_2f541e9154455b625d9bab0308c9fca1
oai_identifier_str oai:dspace.uevora.pt:10174/33057
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 Metodologia para conteinerização de micro-serviçosMicrosserviçosConteinerizaçãoOrquestraçãoDockerKubernetesContinuous IntegrationContinuous DeliveryMicroservicesContainerizationOrchestrationDockerKubernetesContinuous IntegrationContinuous DeliveryNas últimas décadas a internet tem experienciado um crescimento exponencial. Para acompanhar esse crescimento, as aplicações web têm vindo a ser cada vez mais complexas. As aplicações, que inicialmente começaram com uma arquitetura monolítica, tornaram-se ingeríveis devido ao seu grande crescimento. Para mitigar este problema, tem-se optado cada vez mais por arquiteturas em microsserviços. Esta arquitetura, ao contrário da monolítica, permite ter as funcionalidades desacopladas, facilitando a escalabilidade individual. No entanto, devido ao facto de muitas vezes os microsserviços correrem em ambientes ou máquinas diferentes, surgiu a necessidade de uniformizar os ambientes de execução. Inicialmente a solução passou por usar máquinas virtuais e posteriormente evoluiu para containers. Um container é um package independente que contém apenas o que é estritamente necessário para correr a aplicação. Devido ao grande número de microsserviços que algumas aplicações têm, surgiu a necessidade de automatizar o processo de orquestração de containers, ou seja, escalar e alocar recursos automaticamente a cada instância do microsserviço. Esta dissertação estuda e aplica uma metodologia de conteinerizar à uma aplicação com uma arquitetura de microsserviços, que corre em máquinas virtuais. Adicionalmente, também são discutidos e aplicados conceitos de Continuous Integration (CI)/Continuous Delivery (CD) e DevOps, criando uma pipeline automatizada com Git Actions; Abstract: Methodology for containerization of microservices In the last decades, we have witnessed an exponential growth in internet usage in our lives. This led to increasingly more complex web applications. The applications usually start as a monolithic architecture that naturally grows in size, making them hard to maintain and understand. To mitigate this problem, microservices-based architectures have seen an increase in popularity. In contrast to the monolithic architecture, microservices architectures allow the development of decoupled functionalities, which can be then scaled individually. However, since most of the time the microservices run in different environments or machines, there is the need to unify the runtime environments. Initially, the solution was to use virtual machines, and then the trend transitioned to containers, which is just a small package that only has what is absolutely needed to run the application. Due to the high number of microservices that some applications have, orchestration tools that automatically scale and allocate resources to the microservices are needed. This thesis studies and applies a containerization methodology to a real-world microservices application that currently runs on virtual machines. Furthermore, it also introduces and applies the concept of CI/CD pipelines and DevOps, using Git Actions.Universidade de Évora2022-12-29T17:32:44Z2022-12-292022-11-29T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://hdl.handle.net/10174/33057http://hdl.handle.net/10174/33057TID:203109554porDepartamento de Engenharia Informáticaandrei.brinza@hotmail.com498Brinza, Andreiinfo: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-01-03T19:34:36Zoai:dspace.uevora.pt:10174/33057Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T01:22:00.721817Repositó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 Metodologia para conteinerização de micro-serviços
title Metodologia para conteinerização de micro-serviços
spellingShingle Metodologia para conteinerização de micro-serviços
Brinza, Andrei
Microsserviços
Conteinerização
Orquestração
Docker
Kubernetes
Continuous Integration
Continuous Delivery
Microservices
Containerization
Orchestration
Docker
Kubernetes
Continuous Integration
Continuous Delivery
title_short Metodologia para conteinerização de micro-serviços
title_full Metodologia para conteinerização de micro-serviços
title_fullStr Metodologia para conteinerização de micro-serviços
title_full_unstemmed Metodologia para conteinerização de micro-serviços
title_sort Metodologia para conteinerização de micro-serviços
author Brinza, Andrei
author_facet Brinza, Andrei
author_role author
dc.contributor.author.fl_str_mv Brinza, Andrei
dc.subject.por.fl_str_mv Microsserviços
Conteinerização
Orquestração
Docker
Kubernetes
Continuous Integration
Continuous Delivery
Microservices
Containerization
Orchestration
Docker
Kubernetes
Continuous Integration
Continuous Delivery
topic Microsserviços
Conteinerização
Orquestração
Docker
Kubernetes
Continuous Integration
Continuous Delivery
Microservices
Containerization
Orchestration
Docker
Kubernetes
Continuous Integration
Continuous Delivery
description Nas últimas décadas a internet tem experienciado um crescimento exponencial. Para acompanhar esse crescimento, as aplicações web têm vindo a ser cada vez mais complexas. As aplicações, que inicialmente começaram com uma arquitetura monolítica, tornaram-se ingeríveis devido ao seu grande crescimento. Para mitigar este problema, tem-se optado cada vez mais por arquiteturas em microsserviços. Esta arquitetura, ao contrário da monolítica, permite ter as funcionalidades desacopladas, facilitando a escalabilidade individual. No entanto, devido ao facto de muitas vezes os microsserviços correrem em ambientes ou máquinas diferentes, surgiu a necessidade de uniformizar os ambientes de execução. Inicialmente a solução passou por usar máquinas virtuais e posteriormente evoluiu para containers. Um container é um package independente que contém apenas o que é estritamente necessário para correr a aplicação. Devido ao grande número de microsserviços que algumas aplicações têm, surgiu a necessidade de automatizar o processo de orquestração de containers, ou seja, escalar e alocar recursos automaticamente a cada instância do microsserviço. Esta dissertação estuda e aplica uma metodologia de conteinerizar à uma aplicação com uma arquitetura de microsserviços, que corre em máquinas virtuais. Adicionalmente, também são discutidos e aplicados conceitos de Continuous Integration (CI)/Continuous Delivery (CD) e DevOps, criando uma pipeline automatizada com Git Actions; Abstract: Methodology for containerization of microservices In the last decades, we have witnessed an exponential growth in internet usage in our lives. This led to increasingly more complex web applications. The applications usually start as a monolithic architecture that naturally grows in size, making them hard to maintain and understand. To mitigate this problem, microservices-based architectures have seen an increase in popularity. In contrast to the monolithic architecture, microservices architectures allow the development of decoupled functionalities, which can be then scaled individually. However, since most of the time the microservices run in different environments or machines, there is the need to unify the runtime environments. Initially, the solution was to use virtual machines, and then the trend transitioned to containers, which is just a small package that only has what is absolutely needed to run the application. Due to the high number of microservices that some applications have, orchestration tools that automatically scale and allocate resources to the microservices are needed. This thesis studies and applies a containerization methodology to a real-world microservices application that currently runs on virtual machines. Furthermore, it also introduces and applies the concept of CI/CD pipelines and DevOps, using Git Actions.
publishDate 2022
dc.date.none.fl_str_mv 2022-12-29T17:32:44Z
2022-12-29
2022-11-29T00: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 http://hdl.handle.net/10174/33057
http://hdl.handle.net/10174/33057
TID:203109554
url http://hdl.handle.net/10174/33057
identifier_str_mv TID:203109554
dc.language.iso.fl_str_mv por
language por
dc.relation.none.fl_str_mv Departamento de Engenharia Informática
andrei.brinza@hotmail.com
498
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade de Évora
publisher.none.fl_str_mv Universidade de Évora
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_ 1799136701566681088