Arquitetura de microsserviços para aplicações escaláveis e resilientes em internet das coisas

Detalhes bibliográficos
Autor(a) principal: Fernandes, Neuman Fabrício de Oliveira
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_ 1802117863348109312