Create IT - Análise Comparativa de Micro-serviços e Monólitos
Autor(a) principal: | |
---|---|
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 |