Create IT - Análise Comparativa de Micro-serviços e Monólitos

Detalhes bibliográficos
Autor(a) principal: Banha, Gonçalo Diogo de Almeida
Data de Publicação: 2019
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/10362/147386
Resumo: Existem diferentes tipos de arquiteturas para desenvolver software. A mais utilizada é a arquitetura monolítica, que defende que toda a parte lógica da aplicação, seja gerida apenas por um processo, tornando-a fortemente acoplada. Esta arquitetura possibilita uma maior rapidez no desenvolvimento, que permite a criação de protótipos funcionais o mais cedo possível. Porém, esta arquitetura apresenta algumas desvantagens, por exem- plo, o aumento da escalabilidade, sendo que é apenas possível replicar o produto como um todo e não por funcionalidade. Para combater os problemas desta arquitetura, as empresas começam a estudar uma arquitetura baseada em micro-serviços, que tem como base, desenvolver uma aplicação dividindo-a em pequenos serviços, que são completa- mente independentes entre si. Cada serviço implementa uma funcionalidade, permitindo realizar o deploy e ajustar a escalabilidade, de forma desacoplada. Esta arquitetura tam- bém apresenta desvantagens como a complexidade de implementação, sendo o número de micro-serviços criados e a sua comunicação, um dos grandes desafios. Escolher a melhor arquitetura para utilizar num certo produto, depende de alguns fatores, como, por exem- plo, o tamanho da equipa ou necessidade de um melhor desempenho contra a rapidez na implementação. O objetivo do trabalho consistiu na realização de uma prova de conceito num ambiente de desenvolvimento de uma aplicação real, de forma a perceber, até que ponto seria viável, modificá-la na sua totalidade para uma arquitetura de micro-serviços. Foi escolhido uma funcionalidade para ser extraída e implementada como um micro-serviço, tendo sido conectada à camada cliente, com uma API Gateway. Para este protótipo, utilizaram-se tecnologias como Docker, Kubernetes e Kong, sendo este último uma API Gateway. De forma a ter sido tomada uma decisão, realizou-se uma análise comparativa entre as duas soluções, em termos de desempenho e em termos de, com a política de Chaos Engineering utilizada pela Netflix, tolerância a falhas.
id RCAP_87ece5d9375c98c3104bdcd5938b2abc
oai_identifier_str oai:run.unl.pt:10362/147386
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 Create IT - Análise Comparativa de Micro-serviços e MonólitosMicro-ServiçosArquitetura MonolíticaContainerDevOpsDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaExistem diferentes tipos de arquiteturas para desenvolver software. A mais utilizada é a arquitetura monolítica, que defende que toda a parte lógica da aplicação, seja gerida apenas por um processo, tornando-a fortemente acoplada. Esta arquitetura possibilita uma maior rapidez no desenvolvimento, que permite a criação de protótipos funcionais o mais cedo possível. Porém, esta arquitetura apresenta algumas desvantagens, por exem- plo, o aumento da escalabilidade, sendo que é apenas possível replicar o produto como um todo e não por funcionalidade. Para combater os problemas desta arquitetura, as empresas começam a estudar uma arquitetura baseada em micro-serviços, que tem como base, desenvolver uma aplicação dividindo-a em pequenos serviços, que são completa- mente independentes entre si. Cada serviço implementa uma funcionalidade, permitindo realizar o deploy e ajustar a escalabilidade, de forma desacoplada. Esta arquitetura tam- bém apresenta desvantagens como a complexidade de implementação, sendo o número de micro-serviços criados e a sua comunicação, um dos grandes desafios. Escolher a melhor arquitetura para utilizar num certo produto, depende de alguns fatores, como, por exem- plo, o tamanho da equipa ou necessidade de um melhor desempenho contra a rapidez na implementação. O objetivo do trabalho consistiu na realização de uma prova de conceito num ambiente de desenvolvimento de uma aplicação real, de forma a perceber, até que ponto seria viável, modificá-la na sua totalidade para uma arquitetura de micro-serviços. Foi escolhido uma funcionalidade para ser extraída e implementada como um micro-serviço, tendo sido conectada à camada cliente, com uma API Gateway. Para este protótipo, utilizaram-se tecnologias como Docker, Kubernetes e Kong, sendo este último uma API Gateway. De forma a ter sido tomada uma decisão, realizou-se uma análise comparativa entre as duas soluções, em termos de desempenho e em termos de, com a política de Chaos Engineering utilizada pela Netflix, tolerância a falhas.There are different types of architectures to develop software. The most used is mono- lithic architecture, which has the principle that all the application logic should be man- aged by one process, making this architecture strongly coupled. This architecture enables faster development, which allows the prototyping phase to happen quickly. However, this architecture has some disadvantages, particularly in order to scale, instead of only repli- cating the functionalities needed, it is only possible to scale this kind of by replicating the whole monolith on multiple servers. Due to that and the evolution of technologies, micro-service architecture is becoming more and more popular. The microservices architecture is a design approach to build a single application as a set of small independent services. Microservices architecture puts each functionality into a separate service, allowing those components to be indepen- dently deployable and scalable. Despite these advantages, there are some drawbacks like the complexity of implementation, especially the amount of services and their commu- nication. Choosing the best architecture to use in a certain product is not always easy because it depends on several factors like the team size, their skill and the need for a better performance against the faster development. The thesis goal was testing a proof of concept on a real application in a development environment on the value of migrating the whole solution to a micro-services architecture. To this extent, our work evaluated a set of possible functionalities as candidates to be migrated and developed into a micro-service and elected a relevant functionality with low coupling as an initial case study. To accomplish this migration, this work uses a set of new concepts like DevOps, Containers, Orchestration Cluster and API Gateway. After this migration is completed, the comparison between both architectures will be easier, because it will be possible to compare the performance of both architectures, when submitted to load tests. Another way to compare them is to use a Netflix tool called Chaos Monkey to analyze failure tolerance. When the migration is completed, it is possible to compare the performance of both architectures, when submitted to load tests. It was also used a Netflix concept called Chaos Monkey to analyze failure tolerance.Vala, PedroGomes, Maria CecíliaRUNBanha, Gonçalo Diogo de Almeida2023-01-12T19:27:10Z2019-122019-12-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/147386porinfo: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:28:30Zoai:run.unl.pt:10362/147386Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:52:54.257794Repositó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 Create IT - Análise Comparativa de Micro-serviços e Monólitos
title Create IT - Análise Comparativa de Micro-serviços e Monólitos
spellingShingle Create IT - Análise Comparativa de Micro-serviços e Monólitos
Banha, Gonçalo Diogo de Almeida
Micro-Serviços
Arquitetura Monolítica
Container
DevOps
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Create IT - Análise Comparativa de Micro-serviços e Monólitos
title_full Create IT - Análise Comparativa de Micro-serviços e Monólitos
title_fullStr Create IT - Análise Comparativa de Micro-serviços e Monólitos
title_full_unstemmed Create IT - Análise Comparativa de Micro-serviços e Monólitos
title_sort Create IT - Análise Comparativa de Micro-serviços e Monólitos
author Banha, Gonçalo Diogo de Almeida
author_facet Banha, Gonçalo Diogo de Almeida
author_role author
dc.contributor.none.fl_str_mv Vala, Pedro
Gomes, Maria Cecília
RUN
dc.contributor.author.fl_str_mv Banha, Gonçalo Diogo de Almeida
dc.subject.por.fl_str_mv Micro-Serviços
Arquitetura Monolítica
Container
DevOps
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Micro-Serviços
Arquitetura Monolítica
Container
DevOps
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Existem diferentes tipos de arquiteturas para desenvolver software. A mais utilizada é a arquitetura monolítica, que defende que toda a parte lógica da aplicação, seja gerida apenas por um processo, tornando-a fortemente acoplada. Esta arquitetura possibilita uma maior rapidez no desenvolvimento, que permite a criação de protótipos funcionais o mais cedo possível. Porém, esta arquitetura apresenta algumas desvantagens, por exem- plo, o aumento da escalabilidade, sendo que é apenas possível replicar o produto como um todo e não por funcionalidade. Para combater os problemas desta arquitetura, as empresas começam a estudar uma arquitetura baseada em micro-serviços, que tem como base, desenvolver uma aplicação dividindo-a em pequenos serviços, que são completa- mente independentes entre si. Cada serviço implementa uma funcionalidade, permitindo realizar o deploy e ajustar a escalabilidade, de forma desacoplada. Esta arquitetura tam- bém apresenta desvantagens como a complexidade de implementação, sendo o número de micro-serviços criados e a sua comunicação, um dos grandes desafios. Escolher a melhor arquitetura para utilizar num certo produto, depende de alguns fatores, como, por exem- plo, o tamanho da equipa ou necessidade de um melhor desempenho contra a rapidez na implementação. O objetivo do trabalho consistiu na realização de uma prova de conceito num ambiente de desenvolvimento de uma aplicação real, de forma a perceber, até que ponto seria viável, modificá-la na sua totalidade para uma arquitetura de micro-serviços. Foi escolhido uma funcionalidade para ser extraída e implementada como um micro-serviço, tendo sido conectada à camada cliente, com uma API Gateway. Para este protótipo, utilizaram-se tecnologias como Docker, Kubernetes e Kong, sendo este último uma API Gateway. De forma a ter sido tomada uma decisão, realizou-se uma análise comparativa entre as duas soluções, em termos de desempenho e em termos de, com a política de Chaos Engineering utilizada pela Netflix, tolerância a falhas.
publishDate 2019
dc.date.none.fl_str_mv 2019-12
2019-12-01T00:00:00Z
2023-01-12T19:27:10Z
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/147386
url http://hdl.handle.net/10362/147386
dc.language.iso.fl_str_mv por
language por
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_ 1799138120115945472