Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas
Autor(a) principal: | |
---|---|
Data de Publicação: | 2023 |
Tipo de documento: | Trabalho de conclusão de curso |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFRN |
Texto Completo: | https://repositorio.ufrn.br/handle/123456789/57057 |
Resumo: | A Internet das Coisas (IoT) tem emergido como um paradigma transformador, conectando dispositivos inteligentes e coletando dados em uma escala sem precedentes. Sua ampla adoção impulsionou a busca por arquiteturas que não apenas sejam eficientes, mas também escaláveis, para enfrentar os desafios inerentes a esse cenário dinâmico. Apesar de middlewares monolíticos atuais demonstrarem competência em lidar com volumes consideráveis de dados, a crescente aplicação da IoT em ambientes críticos, como na saúde, demanda um nível superior de resiliência e escalabilidade. A natureza complexa desses ambientes requer sistemas capazes de lidar com uma variedade de dados em tempo real, ao mesmo tempo em que oferecem confiabilidade e adaptabilidade a mudanças repentinas, garantindo operacionalidade contínua mesmo em circunstâncias adversas. Nesse contexto, surge a necessidade de arquiteturas mais flexíveis e modulares que possam distribuir o processamento de dados de forma otimizada, aumentando não apenas a eficiência de modo geral, mas também a capacidade de resposta a eventos críticos. Neste trabalho, projetamos e analisamos a utilização de uma arquitetura de microsserviços como solução para esses requisitos. Nela, o processamento dos dados é dividido entre múltiplas instâncias de serviços implantados em contêineres virtuais e coordenados através de mensageria. Para comprovar sua eficiência, foi implementado um protótipo utilizando todas as tecnologias propostas em seu planejamento. Os testes foram conduzidos em ambas as frentes: requisições HTTP e requisições MQTT. No primeiro caso, a análise de escalabilidade mostrou que o sistema escala de forma eficaz, ao aumentar o número de instâncias conforme sua carga de entrada também aumenta. No segundo, os testes variando taxas de envio de mensagens revelaram que o sistema é capaz de satisfazer os requisitos de latência máxima em ambientes críticos mesmo para taxas de envio bastante elevadas. |
id |
UFRN_4173728933dd8d0d75323114b02261e4 |
---|---|
oai_identifier_str |
oai:https://repositorio.ufrn.br:123456789/57057 |
network_acronym_str |
UFRN |
network_name_str |
Repositório Institucional da UFRN |
repository_id_str |
|
spelling |
Fernandes, Neuman Fabrício de Oliveirahttp://lattes.cnpq.br/1125827309642732Silva, Diego Rodrigo Cabralhttp://lattes.cnpq.br/1125827309642732Nogueira, Marcelo Borgeshttp://lattes.cnpq.br/5756014037071299Medeiros, Rex Antônio da Costahttp://lattes.cnpq.br/2840084735974670Silva, Diego Rodrigo Cabral2023-12-28T11:48:22Z2023-12-28T11:48:22Z2023-12-06FERNANDES, Neuman Fabrício de Oliveira. Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas. 2023. 52 f. Trabalho de Conclusão de Curso (Graduação em Engenharia de Computação) - Departamento de Engenharia da Computação, Universidade Federal do Rio Grande do Norte, Natal, 2023.https://repositorio.ufrn.br/handle/123456789/57057A Internet das Coisas (IoT) tem emergido como um paradigma transformador, conectando dispositivos inteligentes e coletando dados em uma escala sem precedentes. Sua ampla adoção impulsionou a busca por arquiteturas que não apenas sejam eficientes, mas também escaláveis, para enfrentar os desafios inerentes a esse cenário dinâmico. Apesar de middlewares monolíticos atuais demonstrarem competência em lidar com volumes consideráveis de dados, a crescente aplicação da IoT em ambientes críticos, como na saúde, demanda um nível superior de resiliência e escalabilidade. A natureza complexa desses ambientes requer sistemas capazes de lidar com uma variedade de dados em tempo real, ao mesmo tempo em que oferecem confiabilidade e adaptabilidade a mudanças repentinas, garantindo operacionalidade contínua mesmo em circunstâncias adversas. Nesse contexto, surge a necessidade de arquiteturas mais flexíveis e modulares que possam distribuir o processamento de dados de forma otimizada, aumentando não apenas a eficiência de modo geral, mas também a capacidade de resposta a eventos críticos. Neste trabalho, projetamos e analisamos a utilização de uma arquitetura de microsserviços como solução para esses requisitos. Nela, o processamento dos dados é dividido entre múltiplas instâncias de serviços implantados em contêineres virtuais e coordenados através de mensageria. Para comprovar sua eficiência, foi implementado um protótipo utilizando todas as tecnologias propostas em seu planejamento. Os testes foram conduzidos em ambas as frentes: requisições HTTP e requisições MQTT. No primeiro caso, a análise de escalabilidade mostrou que o sistema escala de forma eficaz, ao aumentar o número de instâncias conforme sua carga de entrada também aumenta. No segundo, os testes variando taxas de envio de mensagens revelaram que o sistema é capaz de satisfazer os requisitos de latência máxima em ambientes críticos mesmo para taxas de envio bastante elevadas.The Internet of Things (IoT) has emerged as a transformative paradigm, connecting smart devices and collecting data on an unprecedented scale. Its wide adoption has driven the search for architectures that are not only efficient, but also scalable, to face the challenges inherent to this dynamic scenario. Although current monolithic middlewares demonstrate competence in handling considerable volumes of data, the growing application of IoT in critical environments, such as healthcare, demands a higher level of resilience and scalability. The complex nature of these environments requires systems capable of handling a variety of data in real time, while offering reliability and adaptability to sudden changes, ensuring continuous operability even in adverse circumstances. In this context, there is a need for more flexible and modular architectures that can distribute data processing in an optimized way, increasing not only efficiency in general, but also the ability to respond to critical events. In this work, we have designed and analysed the use of a microservices architecture as a solution to these requirements. In it, data processing is divided between multiple instances of services deployed in virtual containers and coordinated through messaging. To prove its efficiency, a prototype was implemented using all the technologies proposed in its planning. Tests were conducted on both fronts: HTTP requests and MQTT requests. In the first case, the scalability analysis showed that the system scales optimally, by increasing the number of instances as its input load also increases. In the second, tests varying message sending rates revealed that the system is capable of satisfying maximum latency requirements in critical environments even for very high sending rates.Universidade Federal do Rio Grande do NorteEngenharia de ComputaçãoUFRNBrasilEngenharia da ComputaçãoCC0 1.0 Universalhttp://creativecommons.org/publicdomain/zero/1.0/info:eu-repo/semantics/openAccessCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO::ARQUITETURA DE SISTEMAS DE COMPUTACAOInternet das CoisasMicrosserviçosEscalabilidadeArquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisasMicroservices architecture for scalable and resilient applications in the internet of thingsinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisporreponame:Repositório Institucional da UFRNinstname:Universidade Federal do Rio Grande do Norte (UFRN)instacron:UFRNORIGINALTCC_Neuman_Fabricio.pdfTCC_Neuman_Fabricio.pdfapplication/pdf856636https://repositorio.ufrn.br/bitstream/123456789/57057/1/TCC_Neuman_Fabricio.pdf2e9ae312f19c9349cf8ba469d4278da7MD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8701https://repositorio.ufrn.br/bitstream/123456789/57057/2/license_rdf42fd4ad1e89814f5e4a476b409eb708cMD52LICENSElicense.txtlicense.txttext/plain; charset=utf-81484https://repositorio.ufrn.br/bitstream/123456789/57057/3/license.txte9597aa2854d128fd968be5edc8a28d9MD53123456789/570572023-12-28 08:48:22.804oai:https://repositorio.ufrn.br:123456789/57057Tk9OLUVYQ0xVU0lWRSBESVNUUklCVVRJT04gTElDRU5TRQoKCkJ5IHNpZ25pbmcgYW5kIGRlbGl2ZXJpbmcgdGhpcyBsaWNlbnNlLCBNci4gKGF1dGhvciBvciBjb3B5cmlnaHQgaG9sZGVyKToKCgphKSBHcmFudHMgdGhlIFVuaXZlcnNpZGFkZSBGZWRlcmFsIFJpbyBHcmFuZGUgZG8gTm9ydGUgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgb2YKcmVwcm9kdWNlLCBjb252ZXJ0IChhcyBkZWZpbmVkIGJlbG93KSwgY29tbXVuaWNhdGUgYW5kIC8gb3IKZGlzdHJpYnV0ZSB0aGUgZGVsaXZlcmVkIGRvY3VtZW50IChpbmNsdWRpbmcgYWJzdHJhY3QgLyBhYnN0cmFjdCkgaW4KZGlnaXRhbCBvciBwcmludGVkIGZvcm1hdCBhbmQgaW4gYW55IG1lZGl1bS4KCmIpIERlY2xhcmVzIHRoYXQgdGhlIGRvY3VtZW50IHN1Ym1pdHRlZCBpcyBpdHMgb3JpZ2luYWwgd29yaywgYW5kIHRoYXQKeW91IGhhdmUgdGhlIHJpZ2h0IHRvIGdyYW50IHRoZSByaWdodHMgY29udGFpbmVkIGluIHRoaXMgbGljZW5zZS4gRGVjbGFyZXMKdGhhdCB0aGUgZGVsaXZlcnkgb2YgdGhlIGRvY3VtZW50IGRvZXMgbm90IGluZnJpbmdlLCBhcyBmYXIgYXMgaXQgaXMKdGhlIHJpZ2h0cyBvZiBhbnkgb3RoZXIgcGVyc29uIG9yIGVudGl0eS4KCmMpIElmIHRoZSBkb2N1bWVudCBkZWxpdmVyZWQgY29udGFpbnMgbWF0ZXJpYWwgd2hpY2ggZG9lcyBub3QKcmlnaHRzLCBkZWNsYXJlcyB0aGF0IGl0IGhhcyBvYnRhaW5lZCBhdXRob3JpemF0aW9uIGZyb20gdGhlIGhvbGRlciBvZiB0aGUKY29weXJpZ2h0IHRvIGdyYW50IHRoZSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkbyBSaW8gR3JhbmRlIGRvIE5vcnRlIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdCB0aGlzIG1hdGVyaWFsIHdob3NlIHJpZ2h0cyBhcmUgb2YKdGhpcmQgcGFydGllcyBpcyBjbGVhcmx5IGlkZW50aWZpZWQgYW5kIHJlY29nbml6ZWQgaW4gdGhlIHRleHQgb3IKY29udGVudCBvZiB0aGUgZG9jdW1lbnQgZGVsaXZlcmVkLgoKSWYgdGhlIGRvY3VtZW50IHN1Ym1pdHRlZCBpcyBiYXNlZCBvbiBmdW5kZWQgb3Igc3VwcG9ydGVkIHdvcmsKYnkgYW5vdGhlciBpbnN0aXR1dGlvbiBvdGhlciB0aGFuIHRoZSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkbyBSaW8gR3JhbmRlIGRvIE5vcnRlLCBkZWNsYXJlcyB0aGF0IGl0IGhhcyBmdWxmaWxsZWQgYW55IG9ibGlnYXRpb25zIHJlcXVpcmVkIGJ5IHRoZSByZXNwZWN0aXZlIGFncmVlbWVudCBvciBhZ3JlZW1lbnQuCgpUaGUgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZG8gUmlvIEdyYW5kZSBkbyBOb3J0ZSB3aWxsIGNsZWFybHkgaWRlbnRpZnkgaXRzIG5hbWUgKHMpIGFzIHRoZSBhdXRob3IgKHMpIG9yIGhvbGRlciAocykgb2YgdGhlIGRvY3VtZW50J3MgcmlnaHRzCmRlbGl2ZXJlZCwgYW5kIHdpbGwgbm90IG1ha2UgYW55IGNoYW5nZXMsIG90aGVyIHRoYW4gdGhvc2UgcGVybWl0dGVkIGJ5CnRoaXMgbGljZW5zZQo=Repositório de PublicaçõesPUBhttp://repositorio.ufrn.br/oai/opendoar:2023-12-28T11:48:22Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)false |
dc.title.pt_BR.fl_str_mv |
Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas |
dc.title.alternative.pt_BR.fl_str_mv |
Microservices architecture for scalable and resilient applications in the internet of things |
title |
Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas |
spellingShingle |
Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas Fernandes, Neuman Fabrício de Oliveira CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO::ARQUITETURA DE SISTEMAS DE COMPUTACAO Internet das Coisas Microsserviços Escalabilidade |
title_short |
Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas |
title_full |
Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas |
title_fullStr |
Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas |
title_full_unstemmed |
Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas |
title_sort |
Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas |
author |
Fernandes, Neuman Fabrício de Oliveira |
author_facet |
Fernandes, Neuman Fabrício de Oliveira |
author_role |
author |
dc.contributor.advisorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/1125827309642732 |
dc.contributor.referees1.none.fl_str_mv |
Silva, Diego Rodrigo Cabral |
dc.contributor.referees1Lattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/1125827309642732 |
dc.contributor.referees2.none.fl_str_mv |
Nogueira, Marcelo Borges |
dc.contributor.referees2Lattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/5756014037071299 |
dc.contributor.referees3.none.fl_str_mv |
Medeiros, Rex Antônio da Costa |
dc.contributor.referees3Lattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/2840084735974670 |
dc.contributor.author.fl_str_mv |
Fernandes, Neuman Fabrício de Oliveira |
dc.contributor.advisor1.fl_str_mv |
Silva, Diego Rodrigo Cabral |
contributor_str_mv |
Silva, Diego Rodrigo Cabral |
dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO::ARQUITETURA DE SISTEMAS DE COMPUTACAO |
topic |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO::ARQUITETURA DE SISTEMAS DE COMPUTACAO Internet das Coisas Microsserviços Escalabilidade |
dc.subject.por.fl_str_mv |
Internet das Coisas Microsserviços Escalabilidade |
description |
A Internet das Coisas (IoT) tem emergido como um paradigma transformador, conectando dispositivos inteligentes e coletando dados em uma escala sem precedentes. Sua ampla adoção impulsionou a busca por arquiteturas que não apenas sejam eficientes, mas também escaláveis, para enfrentar os desafios inerentes a esse cenário dinâmico. Apesar de middlewares monolíticos atuais demonstrarem competência em lidar com volumes consideráveis de dados, a crescente aplicação da IoT em ambientes críticos, como na saúde, demanda um nível superior de resiliência e escalabilidade. A natureza complexa desses ambientes requer sistemas capazes de lidar com uma variedade de dados em tempo real, ao mesmo tempo em que oferecem confiabilidade e adaptabilidade a mudanças repentinas, garantindo operacionalidade contínua mesmo em circunstâncias adversas. Nesse contexto, surge a necessidade de arquiteturas mais flexíveis e modulares que possam distribuir o processamento de dados de forma otimizada, aumentando não apenas a eficiência de modo geral, mas também a capacidade de resposta a eventos críticos. Neste trabalho, projetamos e analisamos a utilização de uma arquitetura de microsserviços como solução para esses requisitos. Nela, o processamento dos dados é dividido entre múltiplas instâncias de serviços implantados em contêineres virtuais e coordenados através de mensageria. Para comprovar sua eficiência, foi implementado um protótipo utilizando todas as tecnologias propostas em seu planejamento. Os testes foram conduzidos em ambas as frentes: requisições HTTP e requisições MQTT. No primeiro caso, a análise de escalabilidade mostrou que o sistema escala de forma eficaz, ao aumentar o número de instâncias conforme sua carga de entrada também aumenta. No segundo, os testes variando taxas de envio de mensagens revelaram que o sistema é capaz de satisfazer os requisitos de latência máxima em ambientes críticos mesmo para taxas de envio bastante elevadas. |
publishDate |
2023 |
dc.date.accessioned.fl_str_mv |
2023-12-28T11:48:22Z |
dc.date.available.fl_str_mv |
2023-12-28T11:48:22Z |
dc.date.issued.fl_str_mv |
2023-12-06 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
format |
bachelorThesis |
status_str |
publishedVersion |
dc.identifier.citation.fl_str_mv |
FERNANDES, Neuman Fabrício de Oliveira. Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas. 2023. 52 f. Trabalho de Conclusão de Curso (Graduação em Engenharia de Computação) - Departamento de Engenharia da Computação, Universidade Federal do Rio Grande do Norte, Natal, 2023. |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufrn.br/handle/123456789/57057 |
identifier_str_mv |
FERNANDES, Neuman Fabrício de Oliveira. Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas. 2023. 52 f. Trabalho de Conclusão de Curso (Graduação em Engenharia de Computação) - Departamento de Engenharia da Computação, Universidade Federal do Rio Grande do Norte, Natal, 2023. |
url |
https://repositorio.ufrn.br/handle/123456789/57057 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
CC0 1.0 Universal http://creativecommons.org/publicdomain/zero/1.0/ info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
CC0 1.0 Universal http://creativecommons.org/publicdomain/zero/1.0/ |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal do Rio Grande do Norte |
dc.publisher.program.fl_str_mv |
Engenharia de Computação |
dc.publisher.initials.fl_str_mv |
UFRN |
dc.publisher.country.fl_str_mv |
Brasil |
dc.publisher.department.fl_str_mv |
Engenharia da Computação |
publisher.none.fl_str_mv |
Universidade Federal do Rio Grande do Norte |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFRN instname:Universidade Federal do Rio Grande do Norte (UFRN) instacron:UFRN |
instname_str |
Universidade Federal do Rio Grande do Norte (UFRN) |
instacron_str |
UFRN |
institution |
UFRN |
reponame_str |
Repositório Institucional da UFRN |
collection |
Repositório Institucional da UFRN |
bitstream.url.fl_str_mv |
https://repositorio.ufrn.br/bitstream/123456789/57057/1/TCC_Neuman_Fabricio.pdf https://repositorio.ufrn.br/bitstream/123456789/57057/2/license_rdf https://repositorio.ufrn.br/bitstream/123456789/57057/3/license.txt |
bitstream.checksum.fl_str_mv |
2e9ae312f19c9349cf8ba469d4278da7 42fd4ad1e89814f5e4a476b409eb708c e9597aa2854d128fd968be5edc8a28d9 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN) |
repository.mail.fl_str_mv |
|
_version_ |
1814833017407930368 |