umaabordagemparaogerenciamentode ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/pdf -...

39
UNIVERSIDADE ESTADUAL DA PARAÍBA CAMPUS VII – GOVERNADOR ANTÔNIO MARIZ CENTRO DE CIÊNCIAS EXATAS E SOCIAIS APLICADAS CURSO DE BACHARELADO EM COMPUTAÇÃO ALLAN MEDEIROS DE LIMA UMA ABORDAGEM PARA O GERENCIAMENTO DE INFRAESTRUTURAS VIRTUALIZADAS EM AMBIENTES DE INTERNET DAS COISAS PATOS – PB 2019

Upload: others

Post on 19-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

UNIVERSIDADE ESTADUAL DA PARAÍBACAMPUS VII – GOVERNADOR ANTÔNIO MARIZ

CENTRO DE CIÊNCIAS EXATAS E SOCIAIS APLICADASCURSO DE BACHARELADO EM COMPUTAÇÃO

ALLAN MEDEIROS DE LIMA

UMA ABORDAGEM PARA O GERENCIAMENTO DEINFRAESTRUTURAS VIRTUALIZADAS EM AMBIENTES

DE INTERNET DAS COISAS

PATOS – PB2019

Page 2: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

ALLAN MEDEIROS DE LIMA

UMA ABORDAGEM PARA O GERENCIAMENTO DEINFRAESTRUTURAS VIRTUALIZADAS EM AMBIENTES

DE INTERNET DAS COISAS

Trabalho de Conclusão de Curso apresentadoao Curso de Bacharelado em Computaçãoda Universidade Estadual da Paraíba, emcumprimento à exigência para obtenção dograu de bacharel em computação.

Área de concentração: Ciência da Compu-tação

Orientador: Prof. Dr. Rodrigo Alves Costa

PATOS – PB2019

Page 3: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

É expressamente proibido a comercialização deste documento, tanto na forma impressa como eletrônica. Sua reprodução total ou parcial é permitida exclusivamente para fins acadêmicos e científicos, desde que na reprodução figure a identificação do autor, título, instituição e ano do trabalho.

L732a Lima, Allan Medeiros de. Uma abordagem para o gerenciamento de infraestruturas

virtualizadas em ambientes de internet das coisas [manuscrito] / Allan Medeiros de Lima. - 2019.

36 p.

Digitado.Trabalho de Conclusão de Curso (Graduação em

Computação) - Universidade Estadual da Paraíba, Centro de Ciências Exatas e Sociais Aplicadas , 2019.

"Orientação : Prof. Dr. Rodrigo Alves Costa , Coordenação do Curso de Computação - CCEA."

1. Internet das Coisas. 2. Virtualização. 3. Redes Definidas por Software. 4. Containers. I. Título

21. ed. CDD 005.1

Elaborada por Lyedja A. M. de Oliveira - CRB - 15/881 BSC7/UEPB

Page 4: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Scanned by CamScanner

Page 5: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

RESUMO

Com o aumento do número de dispositivos usados na IoT, surgiu a necessidade degerenciar estes dispositivos e suas aplicações. Além disso, o gerenciamento de aplicaçõesIoT deve ser realizado de forma apropriada e eficiente para garantir uma performancefuncional mais completa. A virtualização baseada em containers e as redes definidas porsoftware têm sido sugeridos para contornar os problemas de gerenciamento de recursoscomputacionais e superar os problemas enfrentados pelas infraestruturas de redes atuais.Nesta perspectiva, esta monografia apresenta um estudo de soluções para gerenciamentode infraestruturas virtualizadas no cenário IoT através da utilização de Docker containerse redes definidas por software, e tem como objetivo proporcionar uma melhor qualidadenos serviços das aplicações IoT que circulam na rede. Para atingir este objetivo foramrealizados, em um ambiente controlado de testes, sobrecargas de fluxos de dados entrediversos dispositivos IoT para um servidor MQTT. Além disso, analisamos por meio deferramentas de monitoramento em tempo real os dados referentes as aplicações IoT, Dockercontainers e também na infraestrutura onde essas aplicações estão hospedadas. Portanto,foi possível observar o custo computacional para a implantação desses serviços através dastecnologias Docker e redes definidas por software. Por fim, as tecnologias Docker e redesdefinidas por software mostraram-se capazes de trabalhar de forma flexível e uniforme emambientes com grande diversidade de dados, promovendo gerenciamento e escalabilidadena rede de forma integrada em ambientes definidos por IoT.

Palavras-chave: Internet das Coisas. Virtualização. Redes definidas por Software.Containers.

Page 6: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

LISTA DE ILUSTRAÇÕES

Figura 1 – Comparação de VMs e Containers . . . . . . . . . . . . . . . . . . . . 15Figura 2 – Docker engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Figura 3 – Docker Swarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Figura 4 – Arquitetura SDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Figura 5 – Visão geral da solução . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Figura 6 – Stack de Monitoramento . . . . . . . . . . . . . . . . . . . . . . . . . . 27Figura 8 – Configuração dos experimentos no testbed . . . . . . . . . . . . . . . . 31Figura 9 – Utilização de recursos sem e com QoS . . . . . . . . . . . . . . . . . . 34

Page 7: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

LISTA DE ABREVIATURAS E SIGLAS

API Application Programming Interface

CNM Container Networking Model

ISP Internet Service Provider

IPv6 Internet Protocol Version 6

IoT Internet of Things

M2M Machine to Machine

NOS Network Operating System

OSI Open Systems Interconnection

OVS Open Virtual Switch

PIF Physical Interface

SaaS Software as a Service

SDN Software-Defined Networking

QoS Quality of Service

VIF Virtual Interface

VM Virtual Machine

MQTT Message Queuing Telemetry Transport

VXLAN Virtual Extensible LAN

Page 8: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2.1 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . 101.3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.4 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . 102 REVISÃO DA LITERATURA . . . . . . . . . . . . . . . . . . . 112.1 Internet das Coisas . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Virtualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2.1 Virtualização Baseada em Containers . . . . . . . . . . . . . . . 132.2.1.1 Máquinas Virtuais vs. Contêineres . . . . . . . . . . . . . . . . . . . . 142.2.2 Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2.2.1 Docker Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2.2.2 Docker Swarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2.2.3 Docker Compose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2.2.4 Docker Containers e Aplicações de Internet das Coisas . . . . . . . . . 192.3 Redes Definidas por Software . . . . . . . . . . . . . . . . . . . 202.3.1 Características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.3.2 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.3.3 Uso de SDN para suportar dispositivos IoT . . . . . . . . . . . . 233 PROPOSTA DE TRABALHO E AVALIAÇÃO . . . . . . . . . 253.1 Proposta de Trabalho . . . . . . . . . . . . . . . . . . . . . . . . 253.1.1 Projeto e Implementação . . . . . . . . . . . . . . . . . . . . . . . 253.1.2 Sistema de Monitoramento . . . . . . . . . . . . . . . . . . . . . . 263.2 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.2.1 Avaliação do Sistema de Monitoramento . . . . . . . . . . . . . . 303.2.2 Configuração dos Experimentos . . . . . . . . . . . . . . . . . . . 313.2.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 CONSIDERAÇÕES FINAIS . . . . . . . . . . . . . . . . . . . . 35

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Page 9: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

8

1 INTRODUÇÃO

Recentemente, pesquisas apontam que o número de dispositivos de internet dascoisas (do inglês, Internet of Things – IoT) tende a expandir entre 20 e 46 milhões dedispositivos até o ano de 2020, permitindo que futuramente possamos conectar qualquerdispositivo além dos dispositivos tradicionais de comunicação como laptops e smartphones,estendendo desta forma para aplicações domésticas como geladeiras, portas de garagem,sistemas industriais para pessoas reais, etc. (GARTNET RESEARCH, 2017).

Nos últimos anos, diversas soluções vêm sendo propostas e implantadas para lidarcom o aumento do consumo de dados e o grande número de dispositivos, contudo, taissoluções não foram projetadas para atender bilhões de novos usuários e dispositivos, osquais necessitam associar-se a rede durante um curto período de tempo. Neste contexto,segundo Vilalta et al. (2016), as novas capacidades de programabilidade da rede sãoprovidas através da virtualização da rede (do inglês, network virtualization) juntamentecom as redes definidas por software (do inglês, software defined networking – SDN), quesurgem como dois habilitadores tecnológicos importantes para o suporte de serviços IoTpelas atuais infraestruturas de rede. Com o uso de redes SDN é possível separar o plano decontrole do plano de dados. Conforme Kreutz et al. (2015), essa separação é a chave paraprover a flexibilidade desejada nas infraestruturas de redes atuais, dividindo o problema decontrole de rede em partes tratáveis, facilitando a criação e introdução de novas abstraçõesda rede ao passo que simplifica o gerenciamento, evolução e a inovação das redes atuais.

Infraestruturas dirigidas pela virtualização permitirão endereçar grande diversi-dade de serviços IoT. Deste modo, as redes SDN proveem as capacidades operacionaisde gerenciar infraestruturas de redes para explorar novas oportunidades de negócios,como a IoT, contudo, a quantidade massiva de dispositivos IoT proporcionou o sur-gimento de diversos problemas, não somente estritos a rede, mas também em termosde capacidades de computação e armazenamento (DÍAZ; MARTÍN; RUBIO, 2016). Al-guns problemas mais específicos para endereçar os novos ambientes IoT que precisamserem tratados são: (i) interoperabilidade, (ii) eficiência, (iii) gerenciamento e (iv) es-calabilidade. Diante disso, a IoT pode tirar proveito da computação em nuvem e dacomputação de borda para facilitar o provimento de recursos requeridos pelos serviços IoT(KWANG-MAN et al., 2018). A conectividade inteligente e a capacidade de computação sãoaspectos importantes a serem concedidos, de modo que a rede tradicional seria inadequadapara estar envolvida em tal conexão (YASSEIN; ABUEIN; ALASAL, 2017). Por essasrazões, a necessidade de uma conectividade completa entre os elementos da IoT é urgente,e consequentemente, a ideia de combinar SDN para alavancar as infraestruturas para ouso mais eficiente da IoT é eminente.

Page 10: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 1. Introdução 9

Buscando tratar os problemas mencionados acima, neste trabalho prepõe-se umaabordagem para o gerenciamento de infraestruturas virtualizadas com suporte a implan-tação de aplicações IoT de forma automatizada. A abordagem proposta visa estendero uso de plataformas de gerenciamento de recursos virtuais através do gerenciamentocentralizado da rede. Além disso, esta proposta tem como principais características aimplantação de aplicações IoT através do Docker, gerenciamento dos recursos compu-tacionais para aplicações IoT através do Docker Swarm e por fim o gerenciamento dosrecursos virtualizados de rede com um controlador SDN. Neste trabalho os recursos decomputação e rede são gerenciados de forma integrada, uma vez que as atuais tecnologiasde conteinerização não suportam tal características.

1.1 Motivação

O crescimento da IoT representa um aumento significativo de novos dispositivospara os quais a infraestrutura de Internet atual não está preparada. Nesta perspectiva, umanova arquitetura de rede é requerida para gerenciar a quantidade de fluxos gerados com asaplicações IoT e permitir a existência de serviços diferenciados com requisitos específicos(THUBERT; PALATTELLA; ENGEL, 2015). Iniciativas acadêmicas e industriais temvoltado seus esforços para solucionar grande parte dos problemas nas infraestruturas deredes atuais através das soluções SDN, sendo que implementações SDN já são encontradasnas WANs (do inglês, Wide Area Network), ambientes IoT, redes de provedores de acesso aInternet (do inglês, Internet Service Provider – ISP), redes de data centers, dentre outros(WAN et al., 2016).

Na literatura atual muitas abordagens buscam solucionar os problemas da IoT, noentanto, há uma lacuna de pesquisa entre aspectos teóricos e implementações práticas.Questões como políticas de implantação, problemas com vários serviços específicos de for-necedores e integração de vários dispositivos exigem boa investigação antes da implantaçãoreal (BERA; MISRA; VASILAKOS, 2017). Tais aspectos motivaram o desenvolvimentodesta pesquisa, no sentido de que existe a necessidade de investigar novos meios para aimplantação de aplicações IoT em infraestruturas virtualizadas, fazendo um gerenciamentodos recursos computacionais através de ferramentas de gerenciamento de containers junta-mente com soluções SDN, buscando ter o controle dos recursos computacionais e de redede forma coordenada e integrada.

1.2 Objetivos

Como objetivo geral, esta pesquisa visa investigar o uso de soluções baseadas emcontainers para a implantação de serviços e aplicações IoT e a partir disso promover ascapacidades de gerenciamento de rede através de redes SDN.

Page 11: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 1. Introdução 10

1.2.1 Objetivos Específicos

O desenvolvimento deste trabalho envolve aspectos complementares que definemdiferentes áreas de pesquisa, levando assim à elicitação dos seguintes objetivos específicos:

• Revisar o estado da arte sobre a IoT, redes SDN, ferramentas de gerenciamento decontainers.

• Simular um ambiente virtual de testes, tendo como base os recursos de virtualizaçãocomputacional e de rede.

• Validar e avaliar a proposta do uso de aplicações IoT através de containers e deredes SDN por meio de experimentos específicos.

1.3 Metodologia

Levando em consideração os objetivos elicitados na seção 1.2, um conjunto demedidas foram elaboradas como parte da metodologia deste trabalho. Assim, a realizaçãoda mesma pode ser dividida em quatro momentos de referências pertinentes a diferentesmétodos e técnicas que foram utilizadas neste trabalho, sendo estes descritos a seguir:

1. Revisão bibliográfica: momento inicial da pesquisa, quando foram organizados e seleci-onadas as pesquisas que apresentavam as propostas mais recentes no âmbito de IoT,SDN e soluções para o gerenciamento de containers;

2. Projeto e desenvolvimento da abordagem proposta: momento em que foram analisadasas principais funcionalidades do Docker, Docker Swarm, Ryu como controlador SDN,Fiware para simular as aplicações IoT. Além disso, tratamos o problema de gerencia-mento de recursos de redes através da utilização de redes SDN, haja vista que até opresente momento o Docker não suporta o gerenciamento dos recursos de rede.

3. Validação da pesquisa: momento no qual foram aplicados um conjunto de testescontrolados de dados para analisar a eficácia e desempenho da proposta deste trabalho.

1.4 Organização do Trabalho

O restante deste trabalho está organizado como segue: O capítulo 2 fornece a baseteórica sobre os principais temas abordados nesta monografia, incluindo a IoT, virtualizaçãoe redes SDN, enfatizando as tecnologias utilizadas neste trabalho. Em seguida, o capítulo3 apresenta a proposta de trabalho e a avaliação. Finalmente, o capítulo 4 fornece asconsiderações finais.

Page 12: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

11

2 REVISÃO DA LITERATURA

Este capítulo visa tratar dos temas mais importantes que estão relacionados com osprincipais campos de pesquisas abordados neste trabalho. Para esse fim, inicialmente seráabordado sobre IoT, virtualização de containers e SDN. Além disso, de forma paralela,são abordadas as principais tecnologias utilizadas neste trabalho.

2.1 Internet das Coisas

A IoT é entendida como uma infraestrutura de rede composta por diversos disposi-tivos heterogêneos que dependem de tecnologias como dispositivos sensoriais, dispositivosde comunicação, infraestrutura de rede e de processamento de informações necessárias parafornecer serviços avançados destinados a melhorar a qualidade de vida (OJO; ADAMI;GIORDANO, 2016). Segundo Cox et al. (2017), o paradigma IoT pode potencialmenterevolucionar a maneira como as pessoas vivem e trabalham por meio de uma infinidade denovos serviços.

A IoT permitirá uma conexão autônoma e segura ao passo que proporciona atroca de dados entre dispositivos e aplicações do mundo real, incorporando inteligência emobjetos conectados à Internet para prover comunicação, troca de informações e tomada dedecisões. Nesta perspectiva, a IoT tende a fornecer serviços surpreendentes que torna emcrescente popularidade para as instituições acadêmicas, indústrias bem como governos,uma vez que tem o potencial de trazer benefícios significativos pessoais, profissionais eeconômicos (SILVA, 2017b).

Conforme exposto por Alecrim (2017), a IoT desempenha um papel extremamenteimportante no contexto atual, sendo responsável por ajudar as principais áreas, comosaúde, agropecuária, transporte, serviços públicos, dentre outros. A seguir são introduzidosos aspectos relacionados a IoT:

• Hospitais e clínicas: pacientes podem utilizar dispositivos conectados que medembatimentos cardíacos ou pressão sanguínea, por exemplo, e os dados coletados podemser enviados em tempo real para o sistema que controla os exames;

• Agropecuária: sensores espalhados em plantações podem dar informações maisprecisas acerca da temperatura, umidade do solo, probabilidade de chuvas, velocidadedo vento e outras informações essenciais para o bom rendimento do plantio. Deforma semelhante, sensores conectados aos animais conseguem ajudar de váriasmaneiras, como por exemplo um chip colocado na orelha de um animal pode fazer orastreamento, informar o histórico de vacinas e assim por diante;

Page 13: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 12

• Transporte público: usuários podem saber através do smartphone ou em telasinstaladas nos pontos de parada qual a localização de determinado ônibus. Ossensores também podem ajudar as empresas a descobrirem quando um veículoapresenta defeitos mecânicos e assim saber como está o cumprimento de horários, oque indica a necessidade ou não de reforçar a frota;

• Logística: dados de sensores instalados em caminhões, contêineres e até caixasindividuais combinados com informações do trânsito podem ajudar empresas delogística a definir as melhores rotas, escolher os veículos mais adequados paradeterminada área, quais encomendas distribuir entre a frota ativa e assim por diante;

• Serviços públicos: sensores em lixeiras podem ajudar a administração pública aotimizar a coleta de lixo; já carros podem se conectar a uma central de monitoramentode trânsito para obter a melhor rota para aquele momento, assim como para ajudaro departamento de controle de tráfego a saber quais vias da cidade estão maismovimentadas naquele instante.

2.2 Virtualização

A virtualização surgiu como uma opção para resolver os problemas enfrentadoscom os antigos mainframes, que eram computadores de grande porte com softwaresdesenvolvidos e exclusivos apenas para o seu próprio sistema operacional, pois eles vinhamacompanhados de bibliotecas específicas para cada mainframe. Quando um software eranecessário e este não existia para o sistema operacional da máquina (mainframe) que estavasendo usada era necessária a instalação de outro sistema operacional para executá-lo. Destaforma, a virtualização é composta por dois principais componentes, o hospedeiro (host) eo hóspede (guest), sendo o hospedeiro o sistema operacional instalado na máquina física eo hóspede é o sistema virtualizado que será utilizado no topo do sistema virtual instaladona máquina física. O hypervisor é o componente responsável por realizar o intermédiovisual entre host e guest e é por onde o usuário irá usar a máquina virtual (do inglês,Virtual Machine – VM), além disso, é também responsável por controlar o uso dos recursosda máquina física (host), tanto no quesito espaço quanto no desempenho (BARHAM etal., 2003). Exemplos de softwares para criar máquinas virtuais são: VMware Workstation,VMware Player, VMware vSphere (ESX), Microsoft Hyper-V, Citrix XenServer, RedHatKVM e Oracle VirtualBox (ANDERSON et al., 2005).

A virtualização vem se consolidando como uma ferramenta crucial no apoio àgestão dos ambientes de TI. A adoção de suas soluções possibilitou tratar os recursoscomputacionais, por vezes subutilizadas, de forma mais eficiente, elevando-os a um nívelde compartilhamento onde é possível, por exemplo, fazer com que múltiplos sistemasoperacionais executem sobre uma única camada de hardware, ou que um programa possa

Page 14: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 13

ser executado sobre um sistema operacional diferente daquele para o qual foi desenvolvido.Segundo Silva (2017a), a virtualização se mostra como uma ótima solução quando oassunto é redução de gastos, pois com o emprego desta técnica um único computador poderealizar de forma segura os serviços eficientes que para serem ofertados em um ambientenão virtualizado necessitam de vários computadores dedicados.

Além do exposto, a virtualização é a técnica que permite particionar um únicoSistema Computacional em vários outros denominados de máquinas virtuais. Cada máquinavirtual oferece um ambiente completo muito similar a uma máquina física. Com isso, cadamáquina virtual pode ter seu próprio sistema operacional, aplicativos e serviços de rede. Épossível ainda interconectar (virtualmente) cada uma dessas máquinas através de interfacesde redes, switches, roteadores e firewalls virtuais, além do uso já bastante difundido deVPN (Virtual Private Networks). A virtualização pode auxiliar a se trabalhar em umambiente onde haja uma diversidade de plataformas de software (sistemas operacionais)sem ter um aumento no número de plataformas de hardware (máquinas físicas). Assim,cada aplicação pode executar em uma máquina virtual própria, possivelmente incluindosuas próprias bibliotecas e seu sistema operacional que, por sua vez, executam em umaplataforma de hardware comum (CARISSIMI, 2008).

2.2.1 Virtualização Baseada em Containers

A virtualização baseada em containers usa o kernel do sistema operacional hospe-deiro para executar várias instâncias isoladas. Ao fazer uso do kernel do sistema operacionalhospedeiro e não depender de um hypervisor para gerir os recursos, os containers tornam-semais leves do que outras soluções, além de permitir instâncias completamente isoladas.Cada container tem seu próprio sistema de arquivos root, processos, memória, dispositivose interface de rede (FERREIRA et al., 2017).

Os containers estão preparados para mudar o modo como as aplicações são criadas,enviadas, implantadas e instanciadas. Esta abordagem é capaz de acelerar a entrega deaplicações, facilitando o empacotamento junto com suas dependências. Como resultado, omesmo aplicativo conteinerizado pode operar em diferentes ambientes de desenvolvimento,teste e produção. A plataforma pode ser um servidor físico, servidor virtual, nuvem públicaou dispositivo de rede (LEARN, 2014).

De acordo com Learn (2014) os containers são executados em isolamento, compar-tilhando uma instância do sistema operacional. Essa abordagem pode melhorar a entregade aplicações de várias maneiras, como por exemplo, redução de custos, aceleramentono desenvolvimento de aplicações, simplificação de segurança, facilitação no processo deadoção de novos modelos de TI através de microsserviço (do inglês, microservices).

Page 15: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 14

2.2.1.1 Máquinas Virtuais vs. Contêineres

Containers e máquinas virtuais permitem que vários aplicativos sejam executadosnos mesmos sistemas físicos. Eles diferem no grau de atendimento a diferentes tipos denegócios e requisitos de TI (LEARN, 2014).

Uma máquina virtual é uma emulação de um sistema de computador. Simplificando,torna possível executar o que parece ser muitos computadores separados no hardware queé na verdade um computador. Cada máquina virtual exige seu próprio sistema operacionalsubjacente e o hardware é virtualizado. Um hypervisor é um software que cria e executamáquinas virtuais e está localizado entre o hardware e a máquina virtual, sendo necessáriopara virtualizar o servidor. As máquinas virtuais, no entanto, podem ocupar muitosrecursos do sistema. Cada máquina virtual executa não apenas uma cópia completa de umsistema operacional, mas uma cópia virtual de todo o hardware que o sistema operacionalprecisa executar. Isso rapidamente se soma a muitos ciclos de RAM e CPU. Isso ainda éeconômico em comparação com a execução de computadores reais separados, mas, paraalgumas aplicações, pode ser um exagero, o que levou ao desenvolvimento de containers(BAUER, 2018).

Já na virtualização baseada em containers, a execução e a implantação de aplicaçõesocorre sem a necessidade da instanciação de um sistema operacional por completo. Oscontainers possuem pacotes e imagens com suas próprias bibliotecas e arquivos quegarantem a interoperabilidade entre as diversas requisições das aplicações. Este tipo devirtualização dispensa o uso do hypervisor, sendo a camada que gerencia os containers seconecta diretamente ao sistema operacional para assim chegar à camada de recursos físicosdo host. Containers são vistos como uma possível sucessão da utilização de máquinasvirtuais, apresentando melhores resultados de desempenho quanto à eficiência dos recursose à flexibilidade no gerenciamento do ambiente (YADAV; SOUSA; CALLOU, 2018).

Os containers também reduzem a sobrecarga de gerenciamento, compartilhandoum sistema operacional comum com apenas um único sistema operacional que precisade cuidados e alimentação para correções de bugs, patches e assim por diante. Logo,a abordagem de containers são mais leves e mais portáteis que as máquinas virtuais(CHAMBERLAIN, 2018).

De acordo com Yadav, Sousa e Callou (2018) as principais características quetornam a utilização de containers mais atrativa são a portabilidade e a rápida entrega deaplicações. Com a portabilidade os containers são projetados em uma única unidade quepode ser instanciada em diversos ambientes. Já com a rápida entrega de aplicações o fluxoque os containers percorrem são otimizados, garantindo uma rápida entrega de acordocom a necessidade do usuário.

Tanto os containers quanto máquinas virtuais têm benefícios e desvantagens,

Page 16: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 15

e a decisão final dependerá de suas necessidades específicas, mas há algumas regrasgerais. As máquinas virtuais são uma opção melhor para executar aplicativos que exigemtodos os recursos e funcionalidades do sistema operacional, quando é necessário executarvários aplicativos em servidores ou ter uma grande variedade de sistemas operacionaispara gerenciar. Os contêineres são uma opção melhor quando sua maior prioridade émaximizar o número de aplicativos em execução em um número mínimo de servidores(BAUER, 2018). A seguir, a Figura 1 ilustra as principais diferenças arquiteturais entreestas duas abordagens de virtualização.

Figura 1 – Comparação de VMs e Containers

Fonte: Extraído de (RAZA, 2018).

2.2.2 Docker

O Docker1 é uma plataforma Open Source escrito em GO2, que é uma linguagemde programação de alto desempenho desenvolvida dentro do Google, que facilita a criaçãoe administração de ambientes isolados. O Docker possibilita o empacotamento de umaaplicação ou ambiente inteiro dentro de um container, e a partir disso o ambiente inteirotorna-se portável para qualquer outro host que contenha o Docker instalado. Isso reduzdrasticamente o tempo de implantação (deployment) de alguma infraestrutura ou até mesmoaplicação, pois não há necessidade de ajustes de ambiente para o correto funcionamentodo serviço, o ambiente é sempre o mesmo, configure-o uma vez e replique-o quantas vezesquiser (DIEDRICH, 2015).

A demanda por rapidez em execução e economia de recursos computacionaisacarretou no crescimento da utilização da plataforma do Docker. A tecnologia por1 https://www.docker.com/2 https://golang.org/

Page 17: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 16

trás dessa infraestrutura possibilita que uma aplicação seja empacotada juntamentecom suas dependências em um container, possibilitando a sua execução em qualquerambiente. Além disso, desenvolvedores e administradores beneficiam-se de uma ambi-ente confiável e de baixo custo para criar, enviar e executar aplicações distribuídas(MONTEIRO; XAVIER; VALENTE, 2017). O grande uso da tecnologia do Docker deve-seao fato desta prover diversos benefícios. De acordo com OPSERVICES (2018) a tecnologiaDocker apresenta os seguintes benefícios:

• Modularidade: A modularidade permite que o desenvolvedor desabilite uma parte doaplicativo. Dessa forma, podem ser realizadas atualizações de reparo ou até mesmoadição de funcionalidades, sem a necessidade de interromper todo o software. Outroponto é a possibilidade de compartilhar processos entre diferentes aplicativos.

• Camadas e controle de versão de imagens: Um arquivo Docker pode ser formado pordiversas camadas diferentes, onde se dividem em dois grupos. O primeiro grupo édenominado como imagens que são formadas por diferentes camadas. Com a suautilização, o usuário pode facilmente compartilhar um aplicativo ou um conjunto deserviços em diversos ambientes. Quando há alguma alteração na imagem, ou uso deum comando como executar ou copiar, é criada uma camada. O segundo grupo sãoos containers, que são formados na reutilização das camadas. Um container é o localonde estão as modificações da aplicação que está em execução.

• Reversão: A funcionalidade da reversão permite recuperar a versão anterior de umcontainer devido as camadas criadas. O processo se mostra ainda mais eficiente porser compatível com a abordagem de desenvolvimento ágil. Dessa forma, a equipepode facilmente contar com as práticas de integração e implantação contínua, semperder a eficiência no desenvolvimento da aplicação.

• Implantação rápida: Como o tempo e desempenho da implantação ocorrem simul-taneamente, uma implantação que levaria horas em outros métodos pode chegara levar apenas alguns segundos para ser concluída. Para aumentar a eficiência nodesenvolvimento de programas, as empresas buscam alternativas, como o Docker.Além de agilizar os processos, a plataforma possibilita ao desenvolvedor a rapidezde acessar uma versão anterior, caso encontre algum problema, trazendo maiorprodutividade e segurança.

2.2.2.1 Docker Engine

O Docker Engine é a camada de software que permite a criação, a execução e aimplantação de aplicações com o uso de containers. Possibilita o isolamento do ambientede execução das aplicações em um mesmo host, eliminando o overhead (sobrecarga). Isso

Page 18: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 17

ocorre porque os recursos do kernel (núcleo) do sistema operacional são compartilhadosentre containers e gerenciados pelo Docker Engine. Com o compartilhamento do kernel dohost, o custo computacional de gerenciamento torna-se menor em relação ao obtido com ouso de máquinas virtuais (GERMANO; GOIÁS; NARCISO, 2018).

O Docker Engine permite que os aplicativos em containers sejam executados emqualquer lugar de forma consistente em qualquer infraestrutura, resolvendo o problemada dependência para desenvolvedores e equipes de operações (DOCKER, 2018). Comoexposto na figura 2, o Docker Engine é capaz de gerenciar os recursos de rede, os recursosde armazenamento para containers (volumes), imagens e containers em tempo de execução.

Figura 2 – Docker engine

Fonte: Adaptado de (LIU; ZHAO, 2014).

2.2.2.2 Docker Swarm

Docker Swarm é uma ferramenta de orquestração de containers nativa do Docker.Proporciona de maneira fácil e organizada a criação de clusters e disponibilização deserviços neste ambiente (MONTEIRO; ALMEIDA, 2017). Com o Docker Swarm, osadministradores e desenvolvedores de TI podem estabelecer e gerenciar um cluster de nósDocker como um único sistema virtual (LUCIO et al., 2017). Segundo Monteiro e Almeida(2017) as principais características do Docker Swarm são:

Page 19: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 18

• Gerenciamento de cluster integrado com Docker Engine: Através do Docker CLIpode-se criar e administrar cluster, sendo disponibilizados serviços, não necessitandode software adicional para orquestração de containers.

• Adaptação de estado desejado para o Cluster : O Docker Swarm monitora cons-tantemente o cluster, mantendo o estado conforme configurado inicialmente peloadministrador. Se for criado um serviço para executar 10 (dez) réplicas e uma delasparar, o Docker Swarm automaticamente cria uma nova.

• Segurança: Utiliza o protocolo TLS para comunicação segura entre os nós.

O Docker Swarm transforma um conjunto de hospedeiros em um único hospedeirovirtual maior, chamado de Swarm. Há dois tipos de nós no Docker Swarm: nós gerentes(manager nodes) e nós trabalhadores (worker nodes). Cada nó é uma instância do DockerEngine participante do Swarm. Os nós gerentes despacham unidades de trabalho chamadasde tarefas para os nós trabalhadores. Eles também gerenciam o cluster, ajudando a mantero estado ideal definido pelo desenvolvedor. Os nós trabalhadores recebem e executamas tarefas. Uma tarefa, uma vez instanciada, não pode mudar de nó. Ela executa no nódesignado ou falha. Na terminologia do Docker Swarm, um serviço (service) é a definiçãode uma tarefa. Nela, é definida a imagem de container a ser usada e qual comando executarquando a tarefa começar (FILHO; GAMA, 2016). A Figura 3 expõe os conceitos de nósmanagers e workers no docker swarm.

Figura 3 – Docker Swarm

Fonte: Adaptado de (NAIK, 2016).

Page 20: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 19

2.2.2.3 Docker Compose

Docker Compose é uma ferramenta nativa do Docker que possibilita a criação eexecução de múltiplos containers. Se considerarmos que temos em um mesmo projeto umcontainer para executar a aplicação, outro para executar o banco de dados, etc. Nestecenário o Docker Compose pode centralizar as configurações desses containers em ummesmo arquivo, o docker-compose.yml, e criar esses containers de forma facilitada. Deacordo com Docker (2017) o Docker Compose permite: (i) criar vários ambientes isoladosem um único host; (ii) preservar dados de volume ao criar containers; (iii) recriar containersque foram atualizados.

2.2.2.4 Docker Containers e Aplicações de Internet das Coisas

Os containers oferecem suporte nativo a todos os recursos necessários para exe-cutar um aplicativo em dispositivos IoT restritos por recursos. Estes dispositivos sãoportáteis e eficientes, permitem rápida implantação de aplicativos e escalonamento rá-pido de aplicativos. Os aplicativos front-end da IoT se beneficiariam mais com o modelode containers, pois facilita a implantação, a execução e a atualização dos aplicativos(SINGH, 2017).

A segurança é um dos aspectos mais importantes da IoT. Os aplicativos implantadosem containers são mais seguros do que os aplicativos implementados no sistema operacionalsimples. Isso ocorre porque, mesmo que uma segurança de container seja comprometida,ela não afetará outros containers em execução no sistema operacional do host, pois osaplicativos e os usuários são isolados por container (SINGH, 2017). De acordo com Tozzi(2018) e Singh (2017) são listados a seguir os principais recursos da abordagem de containersque podem ajudar na construção de uma ótima solução de IoT:

• Com o Docker Containers, não é preciso se preocupar em configurar o ambiente baseno sistema operacional com as dependências do aplicativo. Os containers envolvemo software em um sistema de arquivos completo que contém tudo o que é necessáriopara executar o código em tempo de execução, ferramentas do sistema, bibliotecasdo sistema, ou seja, tudo o que pode ser instalado em um sistema operacional deservidor.

• Portabilidade de aplicativos em dispositivos IoT: um aplicativo e todas as suasdependências, como bibliotecas específicas de sensores, podem ser agrupados emum único container que é independente da versão do host do kernel Linux, dadistribuição da plataforma ou do modelo de implantação.

• Recursos mínimos de hardware. Muitos dispositivos IoT não possuem recursospoderosos de computação e RAM. Sua capacidade de processar atualizações de

Page 21: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 20

software é, portanto, limitada. Os containers podem ajudar neste problema porquea instalação de uma nova imagem de um container não requer muito poder decomputação. Um dispositivo IoT precisa simplesmente fazer o download de umaimagem, colocá-la em qualquer lugar e remover a imagem antiga. O processamentode configuração é mínimo.

• Distribuição geográfica. Em alguns casos de uso, os dispositivos de IoT estão es-palhados por uma grande área geográfica. Entregar software a estes dispositivos apartir de um único repositório central pode não funcionar bem. Com o Docker, éfácil ativar os registros de imagem em vários locais para atender bem a toda a rede.

• Acesso limitado ou esporádico à rede. Apesar das implicações do termo IoT, nemtodos os dispositivos estão bem conectados à Internet. Estes dispositivos podem terlargura de banda de rede limitada ou ficar online apenas ocasionalmente. O Dockerpode ajudar a fornecer atualizações de software nessas circunstâncias, porque quandoas imagens de um container são atualizadas, o Docker baixa apenas as partes daimagem que foram alteradas.

• Ambientes de dispositivos amplamente variáveis. O software que é executado em umdispositivo de IoT pode ser quase qualquer coisa. A diversidade de configurações desoftware em dispositivos IoT normalmente dificultaria a instalação de aplicativos, poisos aplicativos teriam que ser configurados para cada tipo de ambiente se instaladospor métodos tradicionais.

2.3 Redes Definidas por Software

Apesar da evolução da Internet, em termos de aplicações, sua tecnologia, repre-sentada pelo modelo Open Systems Interconnection (OSI) e pelos protocolos do modeloTCP/IP, não evoluiu o suficiente nas últimas duas décadas. Desde o seu surgimentoà Internet tornou-se comercial e os equipamentos de rede como roteadores e switchestornaram-se "caixas pretas", ou seja, são soluções integradas (os planos de controle e dadossão agrupados) verticalmente baseadas em software fechado executando em hardwareproprietário. O resultado desse modelo é o já engessamento da Internet mencionado por(ROTHENBERG et al., 2010).

Em contraste a esses problemas enfrentados nas redes atuais surgiu o paradigma deRedes Definidas por Software (do inglês, Software Defined Networking – SDN). As redesSDN surgiram em 2005 através de pesquisas realizadas pela Universidade de Stanforde é uma nova abordagem de redes de computadores que foi desenvolvida para alteraras limitações da infraestrutura, permitindo aos administradores de rede programatica-mente inicializar, controlar, alterar e gerenciar o comportamento da rede dinamicamente

Page 22: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 21

(LAWAL; NURAY, 2018). Este paradigma quebra a integração vertical separando a ló-gica de controle da rede (o plano de controle) dos roteadores e switches subjacentes queencaminham o tráfego (o plano de dados). Além disso, com a separação dos planos decontrole e dados, os switches de rede tornam-se dispositivos de encaminhamento simplese a lógica de controle é implementada em um controlador logicamente centralizado ousistema operacional de rede (do inglês, Network Operating System – NOS), simplificandoa aplicação de políticas e a reconfiguração e evolução da rede (KREUTZ et al., 2015).

A separação da camada de controle (plano de controle) e da camada de infraestrutura(plano de dados) pode ser realizada por meio de uma interface de programação bemdefinida entre os dispositivos de rede (switches) e o controlador SDN. O controladorexerce controle direto sobre o estado nos elementos da camada de infraestrutura por meiodessa interface de programação de aplicações (API) bem definida, conforme ilustradona figura 4. O exemplo mais notável dessa API é o protocolo OpenFlow. Um switchOpenFlow possui uma ou mais tabelas de regras de manipulação de pacotes (tabelade fluxo) com cada regra correspondendo a um subconjunto do tráfego e executandoações como descartar, reencaminhar e modificar. Dependendo das regras implementadaspelo controlador, o protocolo OpenFlow pode ser usado, por exemplo, pelo controladorpara controlar um roteador ou executar outras funções como um balanceador de cargas(KREUTZ et al., 2015).

2.3.1 Características

As redes SDN proporcionam diversas vantagens quando comparadas as redestradicionais atuais, sendo que suas principais características são tradadas a seguir. Deacordo com Tomkis (2018) as principais características da abordagem SDN são:

• Redes programáveis: A capacidade de controlar o comportamento da rede usandoo software externo aos dispositivos de rede física oferece uma maneira fácil de perso-nalizar as redes para suportar novos serviços. Esses serviços podem ser granulares nonível de clientes individuais. Sem as restrições de plataformas fechadas, proprietáriase com o benefício do hardware desacoplado do software, é possível introduzir novosserviços inovadores e diferenciados rapidamente.

• Inteligência e controle centralizado: Com o controle central e inteligência darede SDN, o gerenciamento de largura de banda, restauração, segurança e políticastornam-se altamente otimizados. Como resultado tem-se o ganho uma visão holísticada rede. A abordagem de rede logicamente centralizada significa que os recursos darede obtêm o benefício do controle e gerenciamento centrais inteligentes.

• Interação de rede por meio de APIs: com as redes SDN, serviços e aplicativossão separados logicamente do hardware e das conexões da rede física. Em vez de

Page 23: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 22

usar conexões físicas e interfaces de gerenciamento que são fortemente acopladas aohardware, aplicativos se conectam através da infraestrutura de rede de forma flexívelcom o uso de APIs.

• Arquiteturas neutras de fornecedor: Interoperabilidade e abertura são mar-cas registradas das arquiteturas SDN. A interoperabilidade de vários fornecedorespromove um ecossistema neutro de fornecedor. O uso de APIs abertas permiteuma variedade de aplicativos, como orquestração de nuvem, software como serviço(do inglês, Software as a Service - SaaS) e aplicativos em redes críticas para os negó-cios. O software inteligente das redes SDN pode controlar o hardware de diferentesfornecedores que utilizam interfaces programáticas abertas como o OpenFlow.

2.3.2 Arquitetura

A arquitetura das redes definidas por software são compostas por três planos,o plano de aplicação, plano de controle e plano de dados. No plano de controle fica ocomponente chave, o controlador, responsável por receber instruções do plano de aplicação eaplicar as mudanças necessárias no plano de dados. No plano de aplicação ficam os softwaresresponsáveis pelo gerenciamento da rede. No plano de dados fica o hardware necessário parao encaminhamento de dados (HENRIQUE, 2018). Uma visão simplificada da arquiteturaSDN é mostrada na figura 4. A seguir são explorados os principais componentes daarquitetura SDN.

Page 24: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 23

Figura 4 – Arquitetura SDN

Fonte: Adaptado de (KREUTZ et al., 2015).

2.3.3 Uso de SDN para suportar dispositivos IoT

As arquiteturas tradicionais e protocolos de rede para dispositivos IoT não sãoprojetados para oferecer suporte a alto nível de escalabilidade, grande quantidade detráfego e mobilidade. Estas arquiteturas são ineficientes e têm limitações para atender aesses novos requisitos. Além disso, com o grande número de objetos conectados a redeé difícil gerenciá-los, gerando uma quantidade imensa de dados como um todo, sem terelasticidade e flexibilidade inerentemente definidas na rede. Se as redes não estiverempreparadas, a inundação de IoT, onde muito tráfego é gerado, pode deixar a rede paralisada(OJO; ADAMI; GIORDANO, 2016).

A interoperabilidade dos dispositivos de IoT pode ser resolvida usando SDN,superando a heterogeneidade de dispositivos. O desafio de interoperabilidade em IoTsurge quando temos dispositivos heterogêneos trocando formatos de dados e protocolosdiversos para troca de dados máquina a máquina (M2M) e também com a interconec-tividade de grande número de dispositivos diferentes, sendo que há falta de cooperaçãoe incompatibilidade de capacidade entre dispositivos que podem dificultar o desempe-nho da rede. No entanto, a abordagem SDN traz flexibilidade que pode ser usada parapermitir que diferentes objetos conectados a redes heterogêneas se comuniquem uns

Page 25: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 2. Revisão da Literatura 24

com os outros. Isso será capaz de lidar com conexões simultâneas de várias tecnolo-gias de comunicação. As decisões de gerenciamento de rede, como roteamento, agenda-mento, podem ser feitas no controlador SDN e, além disso, a capacidade de programaçãopermite atualizações para novas propostas ou até mesmo abordagens de estado limpo(OJO; ADAMI; GIORDANO, 2016).

De acordo com Sakya (2018), para lidar com esse fluxo de dispositivos IoT muitasempresas estão recorrendo à tecnologia SDN. A SDN se tornou uma opção popular paraempresas que desejam gerenciar suas redes usando uma solução de software mais econômica,especialmente quando comparada com métodos de hardware mais caros. A abordagem SDNpermite que as empresas otimizem suas redes especificamente para IoT. As redes SDNspodem ajudar com o tráfego da IoT no sentido de: (i) Realizar o encadeamento deserviços, permitindo que uma rede SDN crie uma cadeia virtual de serviços, como firewalls,proteção contra invasões e VPNs. Uma cadeia de serviços pode então ser definida para lidarcom tráfego específico para dispositivos ou serviços específicos, como um dispositivo IoT; (ii)Através do gerenciamento dinâmico de carga, permitindo que os administradores derede ajustem automaticamente as regras de rede, dependendo da carga geral do tráfego derede; e (iii) Com o uso de calibração de largura de banda, sendo que os dispositivosIoT não precisam de acesso contínuo a uma rede. Os dispositivos de IoT precisam apenasde acesso à rede em intervalos específicos, que o calendário de largura de banda permitiráque um administrador de rede leve em consideração.

Page 26: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

25

3 PROPOSTA DE TRABALHO E AVALIAÇÃO

Este capítulo introduz a abordagem proposta neste trabalho, identificando asprincipais características impostas e abrangendo como são realizadas as configurações eimplantações dos serviços utilizados. Além disso, este capítulo está organizado de forma aconter uma visão geral da proposta, uma descrição detalhada do projeto e implementaçãoda solução e por fim o cenário de avaliação.

3.1 Proposta de Trabalho

No decorrer do trabalho foi utilizado o Docker para a implantação de aplicaçõesIoT. Assim, as aplicações IoT poderão tirar proveito dos principais benefícios fornecidospor Docker, como a portabilidade, segurança e escalonamento. Dessa forma, o trabalhofoca no estudo da utilização do Docker e de SDN no cenário das aplicações IoT.

No contexto do trabalho foram utilizados as ferramentas nativas do Docker (DockerCompose e Docker Swarm) para o gerenciamento, monitoramento e orquestração dasaplicações de IoT. As ferramentas utilizadas são ideais para trabalhar no cenário de IoTpois estas soluções possibilitam prover a facilidade no gerenciamento das aplicações quandoimplantadas na forma de containers. No cenário de rede será explorado o paradigma deSDN com o objetivo de trabalhar de forma flexível com a grande quantidade de dados queestará sendo gerado na rede pelas aplicações IoT, visando obter benefícios para melhoriada qualidade dos serviços das aplicações IoT que trafegam na rede. Logo, por meio dautilização de SDN as aplicações IoT visam usufruir dos recursos diferenciados oferecidospor essa tecnologia, como flexibilidade, escalabilidade e gerenciamento centralizado comfinalidade de alcançar melhor desempenho na rede.

3.1.1 Projeto e Implementação

Para realizar a implantação da plataforma Mosquitto e dos dispositivos IoT atravésdo FIWARE utilizamos o Docker, pois ambos serviços são disponibilizados na plataformado Docker através de imagens. Além disso, o Docker Swarm foi utilizado para realizar aimplantação dos componentes de monitoramento e do servidor e respectivos clientes MQTTde forma automatizada. Por fim, os recursos SDN são providos pelo OVS e gerenciadospelo controlador SDN Ryu. A visão geral destes componentes e suas interconexões sãoilustradas na figura 5.

Page 27: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 3. Proposta de Trabalho e Avaliação 26

Figura 5 – Visão geral da solução

Fonte: (Lima, 2019).

3.1.2 Sistema de Monitoramento

Durante o desenvolvimento do trabalho foram utilizadas um conjunto de ferra-mentas de monitoramento para darem suporte a tomada de decisões de gerenciamento eorquestração de containers. A solução de monitoramento abordada neste trabalho incluias tecnologias Grafana, Prometheus, Node Exporter e cAdvisor, sendo possível coletarinformações acerca da infraestrutura onde estão hospedados os containers e também dospróprios containers para facilitar as tarefas dos gerentes encarregados por essa infraestru-tura. O monitoramento é uma parte essencial de ambientes baseados em Docker, sendo queos principais pontos para se manter uma solução de monitoramento são: (i) detecção deproblemas em um estágio inicial para evitar riscos em um nível de produção; (ii) mudançase atualizações podem ser feitas com segurança, à medida que todo o ambiente é rastreado;e (iii) provê capacidades para que aplicações possam obter melhor desempenho e robustez.

O Prometheus é uma solução de monitoramento que coleta métricas de diferentesformas. O Prometheus é encarregado por armazenar e realizar o monitoramento dos dadosreferentes aos containers que foram selecionados pelo cAdvisor e também da infraestruturaatravés do Node Exporter. Dessa forma, esses dados colhidos poderão ser consultadospelo Grafana que será responsável por exibir essas métricas de forma gráfica para osgerentes, assim estes poderão ter uma visão geral tanto da infraestrutura como dos

Page 28: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 3. Proposta de Trabalho e Avaliação 27

próprios containers. Já o Grafana é uma plataforma aberta de monitoramento e analyticsque ajuda a visualizar os dados coletados pelo Prometheus. A arquitetura da stack demonitoramento utilizada neste trabalho pode ser compreendida na Figura 6, onde todos oscomponentes arquiteturais de monitoramento são expostos bem como suas interligações.

Figura 6 – Stack de Monitoramento

Fonte: (Lima, 2019).

Todos os serviços de monitoramento podem facilmente serem integrados ao DockerSwarm, não havendo necessidade de instalar uma camada extra de software nos servidoresque fazem parte de um cluster no Docker Swarm. Pode-se simplificar a inicialização dos doisserviços através de um arquivo yml que define a stack de monitoramento. Após definir astack de monitoramento no arquivo denominado docker-stack.yml é possível iniciar a implan-tação destes serviços através do comando docker stack deploy -c docker-stack.yml monitoring,sendo o serviço stack do Docker utilizado para realizar a implantação dos serviços. A seguirexplicamos de forma mais detalhada o arquivo yml utilizado para realizar a implantaçãodos serviços de monitoramento.

A primeira parte do arquivo está relacionada as configurações básicas de interpreta-ção deste arquivo pelo serviço de stack do Docker. As informações iniciais definem a versãodo arquivo yml a ser interpretada pelo Docker bem como a criação de volumes, ou seja, osendereços de armazenamento utilizados para guardar as informações de monitoramentotanto do Prometheus quanto do Grafana.

1 version: '3.4'2

3 volumes:

Page 29: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 3. Proposta de Trabalho e Avaliação 28

4 prometheus_data: {}5 grafana_data: {}

A seguir são descritos detalhadamente cada serviço que compõe a stack de monito-ramento. O primeiro serviço do docker-stack.yml é o Prometheus que importa um arquivoprometheus.yml contendo as configurações de diretório do host e expõe uma API na porta9090 que é pública e acessível.

1 services:2 image: prom/prometheus3 volumes:4 - ./prometheus/:/etc/prometheus/5 - prometheus_data:/prometheus6 command:7 - '--config.file=/etc/prometheus/prometheus.yml'8 - '--storage.tsdb.path=/prometheus'9 - '--web.console.libraries=/usr/share/prometheus'

10 - '--web.console.templates=/usr/share/prometheus/consoles'11 ports:12 - 9090:9090

O segundo serviço é o Node-Exporter. Este serviço é uma imagem Docker providapelo Prometheus para expor as métricas de recursos como RAM, CPU, armazenamento erede de um servidor Docker ou de diversos servidores que fazem parte de um cluster.

1 services:2 node-exporter:3 image: prom/node-exporter4 volumes:5 - /proc:/host/proc:ro6 - /sys:/host/sys:ro7 - /:/rootfs:ro8 command:9 - '--path.procfs=/host/proc'

10 - '--path.sysfs=/host/sys'11 - --collector.filesystem.ignored-mount-points12 - "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|13 rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|14 rootfs/var/lib/docker/aufs)($$|/)"

Page 30: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 3. Proposta de Trabalho e Avaliação 29

15 ports:16 - 9100:9100

O terceiro serviço é o cAdvisor que também funciona como um coletor de métricas,porém provê as métricas sobre os Docker containers. O serviço do cAdvisor é mantidopelo Google e também está disponibilizado em forma de imagem na plataforma do Docker.Além disso, este serviço pode ser utilizado num cluster completo, coletando métricas detodos os recursos disponíveis em diversos servidores. As métricas de monitoramento decontainers são expostas através de API na porta 9100 e são acessíveis de forma flexível osuficiente para serem consultadas frequentemente.

1 services:2 cadvisor:3 image: google/cadvisor4 volumes:5 - /:/rootfs:ro6 - /var/run:/var/run:rw7 - /sys:/sys:ro8 - /var/lib/docker/:/var/lib/docker:ro9 ports:

10 - 8080:8080

Por fim, o Grafana é o último serviço a ser implantado, sendo responsável porcoletar as métricas do Prometheus e prover uma dashboard gráfica. O serviço do Grafanaé acessível na porta 3000.

1 services:2 grafana:3 image: grafana/grafana4 depends_on:5 - prometheus6 ports:7 - 3000:30008 volumes:9 - grafana_data:/var/lib/grafana

10 - ./grafana/provisioning/:/etc/grafana/provisioning/11 env_file:12 - ./grafana/config.monitoring

Page 31: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 3. Proposta de Trabalho e Avaliação 30

3.2 Avaliação

Esta seção detalha a avaliação da solução abordada neste trabalho, tanto a partede monitoramento quanto da parte de gerenciamento e orquestração de recursos com-putacionais pelo Docker Swarm e pelo controlador SDN Ryu. Além disso, descrevemosde forma detalhada como a implantação do testbed foi realizada. Por fim, analisamos osresultados preliminares obtidos com o desenvolvimento desta pesquisa.

3.2.1 Avaliação do Sistema de Monitoramento

Após realizar as configurações necessárias e a implantação dos serviços foi possívelmonitorar todos os containers em tempo real bem como buscar o histórico desses dados.A figura 7 ilustra o custo dos recursos computacionais e de rede para manter uma soluçãode monitoramento flexível. Além disso, os recursos de CPU, RAM, rede (incoming eoutcoming) são tratados na figura 7.

(a) Impacto nos recursos de CPU (b) Impacto nos recursos de RAM

(c) Impacto na Largura de banda (incoming) (d) Impacto na Largura de banda (outcoming)

Figura 7 – Consumo de recursos pela stack de monitoramento

A solução de monitoramento utilizada neste trabalho mostra-se flexível o suficientepara ser implantada em alta escalabilidade em ambientes IoT. Além disso, não requergrandes esforços técnicos durante as etapas de configuração. Por fim, foi possível identificar

Page 32: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 3. Proposta de Trabalho e Avaliação 31

que esta solução consegue abranger um ambiente complexo de IoT, podendo envolver omonitoramento de aplicações IoT que sejam implantadas na forma de containers Docker.

3.2.2 Configuração dos Experimentos

O testbed é composto por três máquinas virtuais que foram implantadas através dosoftware VirtualBox com sistema operacional Ubuntu Server versão 18.04 LTS. Uma dasmáquinas virtuais hospeda os componentes de monitoramento. A segunda máquina virtualhospeda o servidor MQTT através da plataforma Mosquitto. A terceira máquina virtualhospeda os 500 dispositivos IoT através do FIWARE, ou seja, os clientes MQTT. Tanto oservidor quando os clientes MQTT foram implantados através de containers Docker. Alémdisso, para conectar os clientes MQTT ao servidor MQTT entre as duas máquinas virtuaisfoi utilizada uma rede SDN com limitações de largura de banda de 25 Mbps. Todos os500 clientes MQTT realizam operações de publishing e subscribing no servidor Mosquittovisando estressar este serviço. A Figura 8 mostra como estão organizados os componentestecnológicos do testbed.

O uso de um testbed abordado neste trabalho visa principalmente provar princípiosfuncionais básicos da solução proposta, reunindo todos os componentes que envolvem aarquitetura funcional apresentada na figura 8. O objetivo dos testes consistem em provero gerenciamento dos recursos de rede e computação de forma unificada em aplicações IoT.

Figura 8 – Configuração dos experimentos no testbed

Fonte: (Lima, 2019).

Page 33: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 3. Proposta de Trabalho e Avaliação 32

O Mosquitto é uma plataforma open source que realiza um serviço de interpretaçãode mensagens com o protocolo MQTT nas versões 5.0, 3.1.1 e 3.1. O Mosquitto é umaferramenta leve e adequada para o uso de dispositivos com baixo consumo de energia,computadores e servidores mais poderosos. O protocolo MQTT provê método leve paralidar com mensagens através do modelo publish/subscribing. Tal fato faz do Mosquittouma ferramenta adequada para mensagens de dispositivos IoT tais como sensores de baixapotência ou dispositivos móveis, telefones, computadores embarcados ou microcontroladores.Além disso, o fundação Eclipse (mantém o projeto Mosquitto) disponibiliza a implantaçãodo serviço do Mosquitto através de containers Docker. Dessa forma optamos por utilizar oMosquitto em forma de container para facilitar o modo de implantação deste serviço. Aseguir apresentamos o arquivo yml utilizado para realizar a implantação do Mosquitto.

1 services:2 mqtt:3 image: toke/mosquitto4 networks:5 - default6 ports:7 - 1883:18838 restart: unless-stopped

Já o FIWARE também é uma plataforma open source para o futuro digital. Asprincipais características desta plataforma consistem em (i) conduzir padrões-chave pararomper os silos de informação; (ii) Prover facilidade para IoT; (iii) Transformar Big Dataem conhecimento; (iv) Habilitar a economia de dados; (v) Desencadear o potencial dedados abertos no momento certo. Além disso, o FIWARE define um conjunto universalde padrões para gerenciamento de dados de contexto que facilitam o desenvolvimento desoluções inteligentes para diferentes domínios, como Smart Cities, Smart Industry, SmartAgoodood e Smart Energy.

A plataforma FIWARE comporta vários tipos de habilitadores genéricos (do inglês,Generic Enablers) e habilitadores específicos de domínios (do inglês, Domain SpecificEnablers). Desta forma, a principal ideia inovadora por trás do FIWARE é que objetos("things") IoT são expostos aos desenvolvedores que utilizam a plataforma FIWAREda mesma forma que protocolos NGSI são expostos. Através disso os desenvolvedoresnão terão que se preocupar com complexidades variadas de tecnologias, fazendo comque o aprendizado e o uso de APIs específicas possam ser usadas e representam todo ocontexto de informação abstrato de dados. A plataforma FIWARE também disponibilizaa implantação dos seus serviços através do Docker. Diante de tal fato também optamospor utilizar o serviço do FIWARE através do Docker, pois assim temos acesso as métricas

Page 34: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 3. Proposta de Trabalho e Avaliação 33

de monitoramento através da stack utilizada e também o gerenciamento e orquestração derecursos através do Docker Swarm e do Ryu. A seguir apresentamos o template utilizado.

1 services:2 iot-agent:3 image: fiware/iotagent-ul:latest4 networks:5 - default6 ports:7 - "4041:4041"8 environment:9 - "IOTA_CB_HOST=orion"

10 - "IOTA_CB_PORT=1026"11 - "IOTA_NORTH_PORT=4041"12 - "IOTA_REGISTRY_TYPE=mongodb"13 - "IOTA_LOG_LEVEL=DEBUG"14 - "IOTA_TIMESTAMP=true"15 - "IOTA_MONGO_HOST=mongo-db"16 - "IOTA_MONGO_PORT=27017"17 - "IOTA_MONGO_DB=iotagentul"18 - "IOTA_PROVIDER_URL=http://iot-agent:4041"19 - "IOTA_MQTT_HOST=mosquitto"20 - "IOTA_MQTT_PORT=1883"

3.2.3 Resultados

Nesta seção abordamos os resultados adquiridos durante o uso da abordagemde QoS provida pela solução de SDN. A figura 9 contém os resultados obtidos duranteos dois experimentos realizados, sendo os recursos de largura de banda, CPU e RAManalisados respectivamente. No primeiro experimento não foi utilizado nenhum recurso deSDN, exceto a conectividade através do switch OVS. Desta forma, não é possível ter umcontrole mais preciso sobre o gerenciamento dos recursos de rede utilizando-se somente aferramenta do Docker. Já no segundo experimento, utilizamos os recursos de QoS providospelo controlador SDN Ryu, limitando assim os recursos de largura de banda do servidorMQTT para atender demandas específicas de recursos. Ainda de acordo com a figura 9, ouso de QoS no segundo experimento permitiu observarmos que o impacto na limitação dosrecursos de largura de banda, através do controlador SDN Ryu, tem efeitos significativose diretos nos recursos de CPU e RAM, haja vista que uma vez que poucos dados sãotrafegados, posteriormente menos processamento é requerido.

Page 35: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

Capítulo 3. Proposta de Trabalho e Avaliação 34

(a) Impacto nos recursos de rede (b) Impacto nos recursos de rede QoS

(c) Impacto nos recursos de CPU (d) Impacto nos recursos de CPU (QoS)

(e) Impacto nos recursos de RAM (f) Impacto nos recursos de RAM (QoS)

Figura 9 – Utilização de recursos sem e com QoS

Durante a execução deste trabalho, observou-se que o Docker é uma ferramentana qual soluções IoT podem basear-se para atender requisitos específicos deste cenário.Contudo, esta ferramenta não provê o gerenciamento de recursos de rede, não cobrindotodo o escopo de gerenciamento de uma infraestrutura virtualizada que abarca aplicaçõesIoT. Através das grandes capacidades de gerenciamento e controle da rede pelas redesSDN foi possível gerenciar os recursos de rede, promovendo maior flexibilidade ao usar oDocker juntamente com o controlador Ryu.

Page 36: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

35

4 CONSIDERAÇÕES FINAIS

O desenvolvimento deste trabalho possibilitou uma visão de como o gerenciamentode infraestruturas virtualizadas no contexto da IoT pode ser beneficiada por meio dautilização do Docker juntamente com SDN, sendo que aplicações IoT beneficiam-se dosprincipais recursos fornecidos por essas tecnologias.

Diante dos testes realizados nos ambientes propostos, observou-se os resultadosrelacionados aos custos computacionais das aplicações e ambientes, e foi possível notar oquão eficiente e econômico em termos de custos computacionais se torna a implantaçãode aplicações e serviços IoT por meio da utilização das tecnologias de redes definidas porsoftware e Docker containers.

Por fim, foi possível observar que a utilização das tecnologias SDN e Docker con-tainers, apresentaram resultados bastante significativos nos testes realizados e mostraramhabilitadas para lidar com grande quantidade de dados de forma ágil em ambientes deIoT. Através deste estudo foi possível aprofundar-se nas soluções atualmente utilizadaspara prover o gerenciamento de infraestruturas IoT.

Page 37: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

36

REFERÊNCIAS

ALECRIM, E. O que é Internet das Coisas (Internet of Things)? 2017. Disponívelem: <https://www.infowester.com/iot.php>. Acesso em: 09 sep. 2018. Citado na página11.

ANDERSON, T. et al. Overcoming the internet impasse through virtualization. Compu-ter, IEEE, n. 4, p. 34–41, 2005. Citado na página 12.

BARHAM, P. et al. Xen and the art of virtualization. In: ACM. ACM SIGOPS opera-ting systems review. [S.l.], 2003. v. 37, n. 5, p. 164–177. Citado na página 12.

BAUER, R. What’s the Diff: VMs vs Containers. 2018. Disponível em: <https://www.backblaze.com/blog/vm-vs-containers/>. Acesso em: 14 jan. 2019. Citado naspáginas 14 e 15.

BERA, S.; MISRA, S.; VASILAKOS, A. V. Software-defined networking for internet ofthings: A survey. IEEE Internet of Things Journal, IEEE, v. 4, n. 6, p. 1994–2008,2017. Citado na página 9.

CARISSIMI, A. Virtualização: da teoria a soluções.Minicursos do Simpósio Brasileirode Redes de Computadores–SBRC, v. 2008, p. 173–207, 2008. Citado na página 13.

CHAMBERLAIN, D. Containers vs. Virtual Machines (VMs): What’s the Dif-ference? 2018. Disponível em: <https://blog.netapp.com/blogs/containers-vs-vms/>.Acesso em: 24 jan. 2019. Citado na página 14.

COX, J. H. et al. Advancing software-defined networks: A survey. IEEE Access, IEEE,v. 5, p. 25487–25526, 2017. Citado na página 11.

DÍAZ, M.; MARTÍN, C.; RUBIO, B. State-of-the-art, challenges, and open issues inthe integration of internet of things and cloud computing. Journal of Network andComputer applications, Elsevier, v. 67, p. 99–117, 2016. Citado na página 8.

DIEDRICH, C. Docker. 2015. Disponível em: <https://www.mundodocker.com.br/>.Acesso em: 24 fev. 2019. Citado na página 15.

DOCKER. Introduction to Docker Compose. 2017. Disponível em: <https://runnable.com/docker/introduction-to-docker-compose>. Acesso em: 25 jan. 2019. Citado na página19.

DOCKER. Docker Engine Sparked the Containerization Movement. 2018. Dispo-nível em: <https://www.docker.com/products/docker-engine>. Acesso em: 6 fev. 2019.Citado na página 17.

FERREIRA, U. J. S. F. et al. Análise de tecnologias de virtualização e hardware debaixo custo para infraestutura de nuvem de pequeno porte. Instituto Federal de Educação,Ciência e Tecnologia do Rio Grande do Norte, 2017. Citado na página 13.

FILHO, A. C. de A.; GAMA, K. Estudo comparativo entre docker swarm e kubernetespara orquestração de contêineres em arquiteturas de software com microsserviços. 2016.Citado na página 18.

Page 38: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

REFERÊNCIAS 37

GARTNET RESEARCH. Leading The IoT: Gartner Insights on How to Lead ina Connected World. 2017. Disponível em: <https://www.gartner.com/imagesrv/books/iot/iotEbook_digital.pdf>. Acesso em: 07 abr. 2019. Citado na página 8.

GERMANO, E.; GOIÁS, G. de; NARCISO, M. G. Encapsulando um sistema gerenciador deensaios de genotipagem e de marcadores moleculares em containers docker. Embrapa In-formática Agropecuária-Comunicado Técnico (INFOTECA-E), Campinas: Em-brapa Informática Agropecuária, 2018., 2018. Citado na página 17.

HENRIQUE, L. Ufrj - eel878 - redes de computadores i - primeiro semestre de 2018.2018. Acessado: 03 oct. 2018. Disponível em: <https://www.gta.ufrj.br/ensino/eel878/redes1-2018-1/trabalhos-vf/sdn/>. Acesso em: 03 oct. 2018. Citado na página 22.

KREUTZ, D. et al. Software-defined networking: A comprehensive survey. Proceedingsof the IEEE, Ieee, v. 103, n. 1, p. 14–76, 2015. Citado nas páginas 8, 21 e 23.

KWANG-MAN, K. et al. Efficient deployment of service function chains (sfcs) in aself-organizing sdn-nfv networking architecture to support iot. In: IEEE. 2018 TenthInternational Conference on Ubiquitous and Future Networks (ICUFN). [S.l.],2018. p. 650–653. Citado na página 8.

LAWAL, B. H.; NURAY, A. Real-time detection and mitigation of distributed denialof service (ddos) attacks in software defined networking (sdn). In: IEEE. 2018 26thSignal Processing and Communications Applications Conference (SIU). [S.l.],2018. p. 1–4. Citado na página 21.

LEARN, W. Y. W. Linux containers: why they’re in your future and what has to happenfirst. 2014. Citado nas páginas 13 e 14.

LIU, D.; ZHAO, L. The research and implementation of cloud computing platform basedon docker. In: IEEE. 2014 11th International Computer Conference on WaveletActiev Media Technology and Information Processing (ICCWAMTIP). [S.l.],2014. p. 475–478. Citado na página 17.

LUCIO, J. P. D. et al. Análise comparativa entre arquitetura monolítica e de microsserviços.Florianópolis, SC, 2017. Citado na página 17.

MONTEIRO, L.; XAVIER, L.; VALENTE, M. T. Uma caracterizaç ao em larga escala daarquitetura de sistemas docker. networks, v. 6, n. 5000, p. 5000, 2017. Citado na página16.

MONTEIRO, L. de A.; ALMEIDA, W. H. C. Cluster de alta disponibilidade com dockerswarm. 2017. Citado na página 17.

NAIK, N. Building a virtual system of systems using docker swarm in multiple clouds.In: IEEE. 2016 IEEE International Symposium on Systems Engineering (ISSE).[S.l.], 2016. p. 1–3. Citado na página 18.

OJO, M.; ADAMI, D.; GIORDANO, S. A sdn-iot architecture with nfv implementation.In: IEEE. Globecom Workshops (GC Wkshps), 2016 IEEE. [S.l.], 2016. p. 1–6.Citado nas páginas 11, 23 e 24.

OPSERVICES. AFINAL, O QUE É DOCKER? 2018. Disponível em: <https://www.opservices.com.br/o-que-e-docker/>. Acesso em: 01 oct. 2018. Citado na página 16.

Page 39: UMAABORDAGEMPARAOGERENCIAMENTODE ...dspace.bc.uepb.edu.br/jspui/bitstream/123456789/20451/1/PDF - All… · Capítulo 1. Introdução 9 Buscandotratarosproblemasmencionadosacima,nestetrabalhoprepõe-seuma

REFERÊNCIAS 38

RAZA, M. Containers vs Virtual Machines: What’s The Difference? 2018. Citadona página 15.

ROTHENBERG, C. E. et al. Openflow e redes definidas por software: um novo paradigmade controle e inovação em redes de pacotes. Cad. CPqD Tecnologia, Campinas, v. 7,n. 1, p. 65–76, 2010. Citado na página 20.

SAKYA, R. HOW SDN CAN HELP IOT - USING SOFT-WARE DEFINED NETWORKS WITH IOT - EDGEWATERNETWORKS. 2018. Disponível em: <https://www.edgewaternetworks.com/blog/how-sdn-can-help-iot-using-software-defined-networks-with-iot>. Acesso em: 24 sep. 2018.Citado na página 24.

SILVA, A. C. d. Virtualização: um estudo sobre conceitos e técnicas. Universidade FederalFluiminense, 2017. Citado na página 13.

SILVA, L. J. Internet das coisas. Engenharia Elétrica Telemática-Pedra Branca,2017. Citado na página 11.

SINGH, P. Docker Containers and IoT Applications. 2017. Disponível em: <https://iotbytes.wordpress.com/docker-containers-and-iot-applications/>. Acesso em: 18 jan.2019. Citado na página 19.

THUBERT, P.; PALATTELLA, M. R.; ENGEL, T. 6tisch centralized scheduling: Whensdn meet iot. In: Proc. of IEEE Conf. on Standards for Communications &Networking (CSCN’15). [S.l.: s.n.], 2015. Citado na página 9.

TOMKIS, R. how Software-Defined Networks (SDN) Works - Ciena. 2018.Acessado: 25 oct. 2018. Disponível em: <https://www.ciena.com/insights/how/How-SDN-Works.html>. Acesso em: 25 oct. 2018. Citado na página 21.

TOZZI, C. Why the Internet of Things Needs Docker Contai-ners. 2018. Disponível em: <https://containerjournal.com/2018/01/31/why-the-internet-of-things-needs-docker-containers/>. Acesso em: 16 jan. 2019.Citado na página 19.

VILALTA, R. et al. End-to-end sdn orchestration of iot services using an sdn/nfv-enablededge node. In: IEEE. 2016 Optical Fiber Communications Conference and Exhi-bition (OFC). [S.l.], 2016. p. 1–3. Citado na página 8.

WAN, J. et al. Software-defined industrial internet of things in the context of industry 4.0.IEEE Sensors Journal, IEEE, v. 16, n. 20, p. 7373–7380, 2016. Citado na página 9.

YADAV, R.; SOUSA, E.; CALLOU, G. Performance comparison between virtual machinesand docker containers. IEEE Latin America Transactions, IEEE, v. 16, n. 8, p. 2282–2288, 2018. Citado na página 14.

YASSEIN, M. B.; ABUEIN, Q.; ALASAL, S. A. Combining software-defined networkingwith internet of things: Survey on security and performance aspects. In: IEEE. Engine-ering & MIS (ICEMIS), 2017 International Conference on. [S.l.], 2017. p. 1–7.Citado na página 8.