Prévia do material em texto
WBA0480_v1.0 ARQUITETURAS E INFRAESTRUTURAS EM NUVEM APRENDIZAGEM EM FOCO 2 APRESENTAÇÃO DA DISCIPLINA Autoria: Tiago Cariolano Leitura crítica: Douglas Fabiano Lourenço Olá, a disciplina Arquiteturas e Infraestruturas em Nuvem apresenta os principais aspectos do paradigma de computação na nuvem. Até o final do século 20, a arquitetura da maior parte das aplicações da internet era composta por um computador cliente que requisitava dados de um servidor remoto. A partir dos anos 2000, com a massificação da internet e o surgimento e o desenvolvimento de tecnologias como a Internet das Coisas, a inteligência artificial e o Big Data, esse panorama se alterou. As aplicações passaram a ser executadas em data centers, os quais são compostos de conglomerados de servidores, com extraordinária capacidade de armazenamento, altíssima largura de banda e capacidade de computação massiva, os quais são popularmente chamados de nuvem. Nesse ambiente computacional, toda a infraestrutura passou a servir os usuários como serviços, alavancando o que é chamado de computação na nuvem. Esta disciplina aborda os principais aspectos da arquitetura e da infraestrutura deste paradigma e amplia a visão dele sobre diversos domínios de aplicações da indústria, academia e vida dos indivíduos. Os principais objetivos são identificar, analisar, especificar e descrever as arquiteturas da nuvem, para implementá-las em projetos nas empresas. Além disso, ela visa apresentar as características dos diferentes modelos de implantação e de serviços disponíveis na nuvem. Por fim, ela apresenta os passos principais para a realização do projeto de arquitetura, com o objetivo de apoiar os executivos das empresas na tomada de decisão quanto ao uso de seus ativos na nuvem. 3 INTRODUÇÃO Olá, aluno (a)! A Aprendizagem em Foco visa destacar, de maneira direta e assertiva, os principais conceitos inerentes à temática abordada na disciplina. Além disso, também pretende provocar reflexões que estimulem a aplicação da teoria na prática profissional. Vem conosco! TEMA 1 Introdução à computação na nuvem ______________________________________________________________ Autoria: Tiago Cariolano Leitura crítica: Douglas Fabiano Lourenço 5 DIRETO AO PONTO O paradigma da computação na nuvem alavanca a disponibilidade, a escalabilidade de recursos virtualmente ilimitados e promove mudanças drásticas nos modelos de negócios de corporações e relações entre indivíduos. No entanto, tal paradigma é recente e só começou a se desenvolver no início da década de 2000, com o surgimento da internet. A Figura 1 apresenta uma linha do tempo, em que é possível observar a evolução dos paradigmas computacionais. Por volta dos anos 1960, a IBM era a maior desenvolvedora da arquitetura do tipo mainframe, um computador de arquitetura centralizada, cujo principal objetivo é otimizar a sua utilização. Nessa arquitetura, os requisitos dos usuários não são levados em consideração para priorizar os recursos do mainframe. Figura 1 – Evolução dos paradigmas de computação Fonte: elaborada pelo autor. Conforme a capacidade de processamento aumentou, na década de 1980, começaram a surgir servidores mais poderosos que foram conectados a clientes. Foi quando surgiu a arquitetura cliente/servidor, a qual é descentralizada e traz flexibilidade 6 para os usuários, embora degrade a utilização dos recursos dos servidores (VERAS, 2012). Finalmente, no início dos anos 2000, a rápida expansão da internet, o agressivo aumento da largura de banda da rede e o surgimento da computação móvel, composta de aplicações com requisitos extremos de mobilidade, baixa latência e alto poder de computação, fez emergir a arquitetura de computação na nuvem. Tal arquitetura faz uso de grandes repositórios de processadores, memória e dados, denominados data centers, e visa atender a aplicações com uma ampla gama de requisitos e funcionalidades. A Figura 2 expõe como é uma arquitetura da nuvem atual. As aplicações e os dispositivos que requisitam serviços e dados do provedor da nuvem são denominados front-end da arquitetura, enquanto o data center, bem como todos os componentes que compõem o ambiente da nuvem, são denominados back-end da nuvem. A comunicação entre o front-end e o back end se dá por meio da internet, a qual permite o acesso das aplicações dos usuários à nuvem. A arquitetura da nuvem é composta por clusters de servidores, que são equipados com dispositivos externos de armazenamento e interfaces de rede, os quais configuram a capacidade de processamento e de comunicação. Tais servidores executam máquinas virtuais que virtualizam sistemas operacionais, como o Windows ou Linux, e permitem o desacoplamento da infraestrutura física das aplicações, promovendo a virtualização na nuvem. No topo do sistema de virtualização, bancos de dados e aplicações, como WhatsApp, Facebook, Instagram, YouTube, editores de vídeo e sistema de aprendizagem de máquina, fornecem os serviços requeridos pelos usuários, como trocas de mensagens, gerência e postagem de vídeos, etc. Por fim, a 7 arquitetura também possui estações de energia para alimentar todos os dispositivos do data center. Figura 2 – Típica arquitetura da nuvem atual Fonte: elaborado pelo autor. Referências bibliográficas VERAS, M. Cloud computing, nova arquitetura da TI. Rio de Janeiro: Brasport, 2012. PARA SABER MAIS A virtualização é uma das tecnologias mais importantes da arquitetura da nuvem. De acordo com Chaves (2010), ela é a camada intermediária entre os componentes da infraestrutura e as aplicações executadas pelo usuário. Para alcançar a 8 virtualização, um monitor de máquina virtual (MMV) realiza a interação entre um sistema operacional (SO) visitante e um SO hospedeiro. O SO visitante é o SO virtualizado, o qual tem acesso ao hardware somente por meio da abstração criada pelo MMV, enquanto o SO hospedeiro é o SO instalado na máquina física. O MMV monitora os eventos do SO visitante, recebe dele as chamadas de sistema para requisições do dispositivo físico, acessa o hardware por meio do SO hospedeiro e retorna os dados obtidos ou notifica o SO visitante sobre eventos ocorridos na camada subjacente. O MMV pode realizar a paravirtualização, que é a virtualização em que o SO visitante é posto em execução sob a premissa de que é o MMV, e não uma máquina física, que se comunica com o SO visitante. Além disso, o MMV pode realizar a virtualização total, em que o SO visitante considera que está executando diretamente na máquina física (CHAVES, 2010). Um emulador é um tipo de sistema semelhante a uma máquina virtual de virtualização total. O emulador executa os passos da máquina emulada artificialmente, atuando como um sistema que imita o comportamento do hardware subjacente. A principal diferença do emulador para uma máquina virtual, é que esta toma o controle da máquina virtualizada, recebendo as entradas e respondendo com as saídas esperadas. O SO Windows, a partir do Windows 7, possui um emulador pré- construído chamado WOW64 para a arquitetura do conjunto de instruções X86 de 32-bits. Dessa forma, mesmo em uma máquina que execute com um processor de 64-bits, o Windows é capaz de executar qualquer aplicação de 32-bits perfeitamente, simplesmente por chamar o WOW64 para executar a aplicação. Infelizmente, aplicações de 16-bits não executam no WOW64. O motivo é que algumas estruturas de dados do Windows possuem 9 os 32 primeiros bits significantes, o que impede que tais estruturas sejam truncadas e passadas para aplicações de 16-bits sem perda de dados Referências bibliográficas CHAVES, S. A. Arquitetura e sistema de monitoramento para computação em nuvem privada. 2010. Dissertação ( Mestrado em Ciência da Computação )– Universidade Federal de Santa Catarina, Florianópolis, 2010. MICROSOFT. Running 32-bit Applications. 2018. Disponível em: https://docs.microsoft.com/en-us/windows/win32/winprog64/running-32-bit-applications. Acesso em: 25 jun. 2020. TEORIA EM PRÁTICA Considere que você é o arquiteto computacional de uma rede de supermercados no estado de São Paulo. Em cada uma das 15 lojas da rede de supermercados existe um sistema cliente-servidor local e isolado, o qual gerencia os caixas, o estoque de cada loja e o cadastro de funcionários. A fim de otimizar os estoques e permitir o compartilhamento de produtos entre eles, foi decidido que é necessário rearquitetar e unificar os sistemas de todas as lojas em um ambiente da nuvem. Você, como arquiteto, deve apresentar para o tomador de decisão da rede de supermercados quais as vantagens e desvantagens de utilizar cada modelo de implantação de nuvem (privada, pública, híbrida e comunitária). Escreva um relatório descrevendo as vantagens e desvantagens de implantar o sistema descrito acima para cada modelo de implantação. Você também deve descrever os requisitos para implantar o sistema, 10 Lorem ipsum dolor sit amet Autoria: Nome do autor da disciplina Leitura crítica: Nome do autor da disciplina descrevendo as vantagens e desvantagens, além de fornecer uma avaliação qualitativa (“Ruim”, “Médio” ou “Ótimo”) dos seguintes aspectos: operacional, segurança, complexidade, tecnologia e custo. A avaliação de cada aspecto deve ser justificada. Para conhecer a resolução comentada proposta pelo professor, acesse a videoaula deste Teoria em Prática no ambiente de aprendizagem. LEITURA FUNDAMENTAL Indicação 1 Este trabalho aborda um tópico importante da gerência de redes de computadores, que corresponde à virtualização de funções de rede com a ajuda da computação na nuvem. Muitos componentes de rede, como roteadores (hardware) e firewalls (software), realizam funções de já pré-programadas, que inviabilizam a sua modificação para atender a novas demandas dos usuários. Este trabalho desenvolveu um conjunto de técnicas que visa virtualizar tais funções em um ambiente de nuvem, gerando, assim, a possibilidade de aumentar o número de funcionalidades disponíveis na rede de instituições públicas. Para realizar a leitura, acesse a Biblioteca Virtual da Kroton e busque pelo título da obra. JUNIOR, L. S. G. Virtualização de funções de rede em nuvem para instituições públicas. 2017. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência Indicações de leitura 11 da Computação, Universidade Federal de Sergipe, São Cristóvão, 2017. Indicação 2 Este trabalho é interessante, pois apresenta uma arquitetura de nuvem real do Windows Azure. É indicado que o aluno realize a leitura dos capítulos 3 e 4, que apresentam a estrutura geral da arquitetura do Windows Azure e tópicos específicos de uma implementação de nuvem real. Para realizar a leitura, acesse a plataforma Biblioteca Virtual 3.0/ Pearson, na Biblioteca Virtual da Kroton, e busque pelo título da obra. GONÇALVES, P. M. F. D. Cloud computing sobre a plataforma Windows Azure. 2012. Dissertação (Mestrado em Engenharia Informática) – Instituto Superior de Engenharia do Porto, Porto, Portugal, 2012. QUIZ Prezado aluno, as questões do Quiz têm como propósito a verificação de leitura dos itens Direto ao Ponto, Para Saber Mais, Teoria em Prática e Leitura Fundamental, presentes neste Aprendizagem em Foco. Para as avaliações virtuais e presenciais, as questões serão elaboradas a partir de todos os itens do Aprendizagem em Foco e dos slides usados para a gravação das videoaulas, 12 além de questões de interpretação com embasamento no cabeçalho da questão. 1. Uma empresa adquiriu um novo dispositivo biométrico de reconhecimento facial, o qual vem com uma aplicação para controle de acesso dos funcionários. A empresa deseja instalá-la em sua nuvem privada, e sabe-se que, utilizando as plataformas de hardware e software recomendadas pelo fabricante, a aplicação executa perfeitamente, sem necessidade de adaptações. Considerando que a nuvem privada não possui a plataforma recomendada pelo fabricante e que a empresa deseja reduzir os custos de instalação, qual a abordagem adequada para instalar a aplicação de controle de acesso? a. Emulação. b. Virtualização total. c. Comprar as plataformas recomendadas pelo fabricante. d. Paravirtualização. e. Virtualização parcial. 2. Escolha a alternativa que preenche as lacunas corretamente. O _______ é um _______ da arquitetura da nuvem que contém os recursos de _______, armazenamento e de comunicação. a. Front-end; componente; aplicações. b. Data center; componente; processamento. c. Front-end; dispositivo; aplicações. 13 d. Sistema operacional; dispositivo; processamento, e. Data center; dispositivo; aplicações. GABARITO Questão 1 - Resposta B Resolução: A emulação é incorreta, pois não é necessária uma reprodução dos eventos do hardware no cenário apontado. Comprar as plataformas recomendadas pelo fabricante é incorreto, pois aumenta os custos de instalação. A paravirtualização é incorreta, pois o cenário não exige que a máquina virtual tenha ciência do hardware. A virtualização parcial é incorreta, pois seu conceito não existe. Questão 2 - Resposta B Resolução: O data center é um componente da arquitetura da nuvem (AN), a qual é formada por recursos de processamento, armazenamento e comunicação. O front-end não é um componente da AN, o sistema operacional não é um dispositivo, mas sim um componente, e aplicações não possuem recursos. TEMA 2 Modelos de serviço da nuvem ______________________________________________________________ Autoria: Tiago Cariolano Leitura crítica: Douglas Fabiano Lourenço 15 DIRETO AO PONTO Os modelos de serviços da nuvem oferecem características específicas que devem ser observadas durante sua contratação ou implantação. A Figura 1 mostra que, no modelo on premise (modelo tradicional), todas as responsabilidades, desde a implantação da infraestrutura até o desenvolvimento da aplicação, são do usuário. No modelo IaaS, o provedor de serviço tem a responsabilidade de adquirir os equipamentos de rede, dispositivos de armazenamento, os servidores de computação e instalar os sistemas necessários para fornecer virtualização para os usuários. Neste modelo, os recursos são distribuídos por meio de múltiplos servidores e o escalonamento de tarefas é dinâmico. O usuário não tem controle na nuvem e não pode, por exemplo, contratar a compra de dispositivos físicos, como processador ou memória, para uso na nuvem. O IaaS oferece a maior flexibilidade, pois o usuário tem acesso aos recursos da infraestrutura. O modelo PaaS consiste em plataformas que dão suporte ao desenvolvimento de aplicações, como sistemas operacionais, middleware (firewalls, balanceamento de carga, gerenciamento de máquinas virtuais, etc.) e runtime, os quais são controlados pelo provedor de serviço. O usuário tem o controle das máquinas virtuais instaladas nos servidores do data center e demais recursos de infraestrutura da nuvem. Além disso, ele possui a capacidade de escolher sistemas operacionais, linguagens de programação e outras ferramentas fornecidas pelo provedor de serviço. Desenvolvedores de software fazem uso do modelo PaaS, pois ele oferece serviços de apoio ao desenvolvimento de aplicações, como middleware, sistemas operacionais e ferramentas de programação. 16 No modelo SaaS, todos os serviços são de responsabilidade do provedor de serviço, que deve implantá-los ou contratá- los deprovedores de PaaS ou IaaS. No SaaS, o usuário não tem controle nem conhecimento da infraestrutura subjacente da nuvem. O provedor de SaaS pode desenvolver sua aplicação com recursos de um PaaS. É importante notar que serviços de rede, armazenamento e servidores são fornecidos por provedores de IaaS, os quais podem dar suporte para serviços de PaaS ou SaaS. Figura 1 – Principais características dos modelos de serviço da nuvem Fonte: elaborada pelo autor. Entender as características desses modelos éimportante para avaliar o impacto de uma migração de uma aplicação on premise para um dos outros três modelos. 17 A migração para a nuvem consiste em implantar uma aplicação, totalmente ou parcialmente, para nuvem. Segundo Câmara (2015), existem quatro tipos de migração de aplicações, os quais são descritos a seguir. O primeiro tipo de migração pode ser chamado de migração invasiva. Nele, um componente da aplicação é substituído e implantado na nuvem. Este tipo é menos invasivo, no entanto, o componente substituído necessita se integrar e se comunicar com os outros componentes que permanecem on premise. Para realizar tal integração, são necessárias adaptações, reescrita de código e reconfigurações dos componentes. O segundo tipo pode ser chamado de migração parcial, pois apenas algumas funcionalidades da aplicação são migradas para a nuvem. Nesse tipo, toda camada da aplicação ou diversos componentes de várias camadas são implantados na nuvem. O terceiro tipo de migração consiste em embutir a aplicação em máquinas virtuais para execução na nuvem. Nele, nem todos os componentes necessitam ser migrados para máquinas virtuais na nuvem. O quarto tipo de migração, denominado Cloudify, consiste em migrar a aplicação completa para nuvem. Nesse cenário, tanto os dados quanto os algoritmos que implementam a lógica do negócio são migrados. Referências bibliográficas CÂMARA, A. S. Um modelo de custo para comercialização de software como serviço na nuvem. Dissertação (Mestrado em Informática Aplicada) – Fortaleza, 2015. 18 PARA SABER MAIS O acordo de nível de serviço (SLA – Service Level Agreement) é um contrato acordado entre o provedor de serviço e o usuário, em que a descrição, a entrega e a cobrança dos serviços contratados são definidas formalmente (GENEZ, 2012). O SLA é um acordo (contrato) que serve como base para garantir que o provedor de serviço e o usuário considerarão os mesmos parâmetros para avaliar os requisitos de qualidade de serviço (QoS) definidos em contrato. O acordo de nível de serviço especifica as responsabilidades de duas partes. Geralmente, essas partes são o provedor de serviço e o usuário, no entanto, também pode ocorrer de dois provedores de serviço assinarem um SLA. Um cenário em que essa situação pode ocorrer é quando um provedor de SaaS contrata um provedor de PaaS para ter acesso a plataformas de programação e versionamento de código. Nesse cenário, os provedores podem acordar um SLA para embasar os itens acordados. Existem diversos tipos de serviços contratados que podem ser incluídos em um SLA, segundo Genez (2012): desempenho, gerenciamento de problemas, responsabilidades das partes, garantias, medidas emergenciais, planos alternativos e de soluções temporárias, relatórios de monitoramento, segurança, confidencialidade e cancelamento de contrato. Existem dois tipos de SLA: sob demanda e o reservado. No primeiro, o contrato é assinado sem um compromisso de longo prazo, pois o usuário paga pela quantidade de tempo que usa do serviço. No SLA reservado, o compromisso acordado é de longo prazo (por exemplo, um a três anos), ocorre um aluguel do serviço e uma taxa inicial pode ser paga para reserva dos 19 recursos (GENEZ, 2012). A Figura 2 mostra um ciclo de passos para estabelecer um SLA. Figura 2 – Ciclo de estabelecimento de acordo de nível de serviço Fonte: elaborada pelo autor. Referências bibliográficas GENEZ, T. A. L. Escalonamento de workflows para provedores de SaaS/PaaS considerando dois nı́veis de SLA. 2012. Dissertação (Mestrado em Ciência da Computação) – Campinas, 2012. 20 TEORIA EM PRÁTICA Suponha que você tenha recebido a tarefa de escolher um serviço de IaaS para o desenvolvimento de uma nova aplicação de compartilhamento de fotos. Analise as soluções de IaaS da Amazon, AWS EC2, escreva um relatório descrevendo as vantagens e desvantagens e responda às seguintes perguntas para cada solução: qual o modelo de custo? Qual a forma de licenciamento? Quais os níveis de serviços. Para conhecer a resolução comentada proposta pelo professor, acesse a videoaula deste Teoria em Prática no ambiente de aprendizagem. LEITURA FUNDAMENTAL Indicação 1 Esta dissertação de mestrado teve como objetivo propor um modelo de custo de migração de uma nuvem on premise para uma nuvem IaaS, PaaS ou SaaS. O modelo proposto pelo o autor permite avaliar o impacto financeiro de migrar uma aplicação para a nuvem, tanto para o desenvolvedor de software quanto para os clientes. Esse tipo de modelo de custo de migração é muito importante para fornecer informações para a tomada de decisão de empresas. Para realizar a leitura, acesse a Biblioteca Virtual da Kroton e busque pelo título da obra. Indicações de leitura 21 CÂMARA, A. S. Um modelo de custo para comercialização de software como serviço na nuvem. 2015. Dissertação (Mestrado em Informática Aplicada) – Fortaleza, 2015. Indicação 2 Esta tese de doutorado propõe melhorar a qualidade de serviço de sistemas de banco de dados da nuvem. A ideia dos autores é gerenciar os recursos por meio de predição da carga de trabalho das aplicações e alocação e migração de tarefas. O objetivo em empregar tais técnicas é reduzir o número de violações de SLAs da nuvem. Para realizar a leitura, acesse a Biblioteca Virtual da Kroton e busque pelo título da obra. MOREIRA, L. O. Abordagem para qualidade de serviço em bancos de dados multi-inquilinos em nuvem. Tese (Doutorado em Ciência da Computação) – Fortaleza, 2014. QUIZ Prezado aluno, as questões do Quiz têm como propósito a verificação de leitura dos itens Direto ao Ponto, Para Saber Mais, Teoria em Prática e Leitura Fundamental, presentes neste Aprendizagem em Foco. Para as avaliações virtuais e presenciais, as questões serão elaboradas a partir de todos os itens do Aprendizagem em Foco e dos slides usados para a gravação das videoaulas, 22 além de questões de interpretação com embasamento no cabeçalho da questão. 1. Em qual modelo de serviço toda a infraestrutura de hardware e software fica a cargo do provedor de serviço, enquanto o usuário não possui nenhuma responsabilidade? a. SaaS. b. IaaS. c. On premise. d. CaaS. e. PaaS. 2. No modelo IaaS, os recursos são ________ e o escalonamento é ________. Assinale a alternativa que preencha as lacunas corretamente. a. Escassos; estático. b. Distribuídos; dinâmico. c. Escassos; dinâmico. d. Distribuídos; estático. e. Distribuídos; horizontal. 23 GABARITO Questão 1 - Resposta A Resolução: O modelo em que toda a infraestrutura da nuvem fica sob responsabilidade do provedor de serviço e o usuário não possui nenhuma gerência é o SaaS (software as a service). Questão 2 - Resposta B Resolução: Os recursos da IaaS são distribuídos por todos os servidores da nuvem e o escalonamento é dinâmico, pois ele ocorre de acordo com a demanda dos usuários. TEMA 3 Aplicações da computação em nuvem ______________________________________________________________ Autoria: Tiago Cariolano Leitura crítica: Douglas Fabiano Lourenço 25 DIRETO AO PONTO A Internet das Coisas é o paradigma que visa conectar todas as coisas, em qualquer lugar, por meio da internet. O dispositivo da IoT (coisa) é qualquer objeto (normalmente sensores ou atuadores) instrumentado com recursos computacionais e com conexão com a internet. Segundo Silva (2017), a IoT é composta por seis grandes grupos de tecnologias descritos na Figura 1. A identificação corresponde a tecnologias de gerenciamento de identidades, as quais identificam unicamente os dispositivos da IoT, bem como os usuários. O sensoriamento consiste em coletar os dados do mundo físico por meio de sensores. A comunicação se refere à forma de conexão entre os diferentes dispositivos da IoT. A computação envolve tecnologias e plataformas em que os dados dos dispositivos da IoT são processados. Os serviços são sistemas e softwares que fornecem funcionalidades da IoT paraos usuários. A semântica se refere à capacidade de extrair conhecimento a partir dos dados gerados pelos dispositivos da IoT. Figura 1 – Tecnologias que compõem a IoT Fonte: elaborada pelo autor. 26 A IoT é habilitada por meio da computação em nuvem, pois, devido aos dispositivos da IoT terem pouco poder de processamento, a nuvem é responsável por processar os dados. Uma arquitetura da IoT típica, habilitada por meio do paradigma de computação em nuvem, pode ser separada em camadas, como exemplificado na Figura 2. Figura 2 – Arquitetura da IoT típica de sete camadas Fonte: elaborada pelo autor. As camadas Coisas e Borda são compostas por equipamentos de sensoriamento e atuação denominados dispositivos da IoT. No entanto, tais equipamentos pertencentes à camada Borda se diferenciam daqueles da camada Coisas por possuírem poder computacional maior do que sensores e atuadores, e capacidade de processar os dados sem enviá-los para a nuvem. Dispositivos da Borda podem também realizar agregação de mensagens. São exemplos os roteadores inteligentes, dispositivos de borda, gateways robustos, entre outros. A camada Infraestrutura Global corresponde a toda a infraestrutura da nuvem, utilizada para processar os dados da IoT. A Ingestão e Análise de Dados são compostas por tecnologias para armazenamento e técnicas para análise e processamento. As camadas Aplicações e Pessoas e Processos correspondem aos serviços fornecidos pela IoT para alavancar o desenvolvimento das atividades dos usuários. 27 Algumas aplicações da IoT de tempo real têm como requisito baixa latência. Isso significa que o intervalo de tempo entre a solicitação de um dado de um dispositivo da IoT e o momento em que ele é fornecido para aplicação deve ser pequeno. A distância geográfica dos dispositivos da IoT para a nuvem é muito grande, o que gera uma grande latência para envio e recebimento de mensagens entre os dispositivos da IoT e a nuvem. Dessa forma, a nuvem não pode processar dados de aplicações de baixa latência da IoT. Os equipamentos da camada Borda estão mais próximos das coisas e possuem poder computacional para atender as requisições geradas pelas aplicações. Logo, dispositivos da Borda podem processar dados das aplicações de baixa latência da IoT de maneira mais eficiente do que a nuvem. É importante observar que as camadas Coisas e Borda compõem o que é chamado de névoa, constituída por dispositivos da IoT que geram dados e realizam processamento. As camadas Ingestão de Dados e Análise de Dados são formadas por componentes para processamento dos dados, e as camadas Aplicações e Pessoas e Processos são compostas pelos componentes que geram o valor de negócio para as pessoas. Do ponto de vista de implantação, as camadas de Dados e ao Valor do Negócio geralmente são implantadas na nuvem. Referências bibliográficas SILVA, W. A. Uma arquitetura para orquestração da distribuição de água no semiárido brasileiro baseada em Internet das Coisas e computação em nuvem. 2017. Dissertação (Mestrado em Ciência da Computação) – Recife, 2017. 28 PARA SABER MAIS Além dos três modelos de serviço principais da nuvem, IaaS1 , PaaS2 e SaaS3 , o provedor também pode oferecer um modelo de serviço exclusivamente de banco de dados denominado DBaaS. A nuvem fornece base de dados que podem ser configuradas pelo usuário no DBaaS. Ele é adequado quando o provedor deseja entregar armazenamento elástico para o usuário. Este consiste em aumentar ou diminuir a capacidade de atendimento de requisições de acordo com a demanda da aplicação. As requisições chegam ao banco de dados e o provedor de serviço deve garantir que elas serão atendidas e que os parâmetros de desempenho acordados por meio de SLA sejam respeitados. A Figura 3 exibe uma arquitetura para o modelo de serviço DBaaS. Na camada mais inferior, a Infraestrutura Física é composta de diversos dispositivos de armazenamento. Cada um é conectado a um servidor dentro de um rack do data center, e um serviço pode possuir mais do que uma unidade de armazenamento. Acima da Infraestrutura Física está o Hypervisor, que é responsável por estabelecer a comunicação entre as máquinas virtuais e a infraestrutura física. Em cada máquina virtual, podem existir diversos bancos de dados (BD), os quais são acessados pelos clientes e aplicações. É importante notar que a infraestrutura física, bem como as tecnologias de virtualização, são transparentes ao usuário, o qual apenas necessita conhecer os protocolos de acesso ao serviço de DBaaS. 1 Infraestrutura como um Serviço (Infrastructure as a Service). 2 Plataforma como um Serviço (Platform as a Service). 3 Software como um Serviço (Software as a Service). 29 Figura 3 – Arquitetura do modelo de serviço DBaaS Fonte: adaptado de Abreu (2013, p. 19). Referências bibliográficas ABREU, D. A. MyDBaaS: um framework para o monitoramento de serviços de banco de dados em nuvem. 2013. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal do Ceará, Fortaleza, 2013. TEORIA EM PRÁTICA Reflita sobre a seguinte situação: a empresa em que você trabalha, chamada Transporter, oferece um serviço de transporte 30 de passageiros por aplicativo e deseja adicionar duas novas funcionalidades a ele. A primeira consiste em possibilitar ao usuário (passageiro ou motorista) gravar em vídeo todo o percurso da corrida por meio do celular. A segunda consiste na disponibilização das corridas gravadas para o usuário sob um plano de pagamento mensal. A Transporter não deseja arcar com os custos de implantar um banco de dados, então o pagamento do usuário tem o objetivo de cobrir os gastos de criar e manter o serviço de banco de dados. É importante notar que, no momento do armazenamento, o vídeo pode estar no formato MP4 ou ser convertido para o formato de áudio MP3, ou seja, o vídeo é armazenado no banco de dados em dois formatos diferentes. Você, como arquiteto de nuvem, necessita apresentar uma arquitetura coerente para tal cenário. A seguir, são descritos alguns componentes obrigatórios em sua arquitetura: “Nuvem”, “Usuário”, “Aplicação”, “Provedor DBaaS”, “Banco de Dados de Gravações”, “Conversor de Vídeos”, “Transporter”. É importante notar que outros componentes que você julgue necessários podem ser adicionados à arquitetura. Além disso, note que um componente pode conter outros componentes, e um componente pode ser a representação de um recurso físico ou de software. Os componentes devem ser conectados por meio de setas, as quais indicamações. Também cada seta deve estar acompanhada de uma descrição para facilitar o entendimento. Você deve apresentar uma descrição detalhada de cada componente, bem como explicar a função deles. Para conhecer a resolução comentada proposta pelo professor, acesse a videoaula deste Teoria em Prática no ambiente de aprendizagem. 31 LEITURA FUNDAMENTAL Indicação 1 Esta dissertação de mestrado tem como objetivo oferecer uma solução baseada em uma aplicação da IoT na nuvem para ajudar a resolver um problema do semiárido nordestino. Na região Nordeste, um sistema de abastecimento de água, por meio de caminhões-pipa, foi implantado para levar o líquido a locais em que a sua obtenção do meio ambiente não é possível. Tal sistema sofre fraudes, pois alguns motoristas fingem levar a água para o local designado, porém não o fazem, para que obtenham lucro sobre o combustível economizado. O trabalho de Silva (2017) propõe uma solução de embarcar dispositivos da IoT nos caminhões-pipa e realizar o rastreio de tais veículos para mitigar o problema de fraude no sistema de abastecimento. Para realizar a leitura, acesse a Biblioteca Virtual da Kroton e busque pelo título da obra. SILVA, W. A. Uma arquitetura para orquestração da distribuição de água no semiárido brasileiro baseada em Internet das Coisas e computação em nuvem. 2017. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Pernambuco,Recife, 2017. Indicação 2 Este artigo, publicado na revista Ciência e Informação, propõe uma discussão interessante sobre o panorama atual e perspectivas futuras da ciência da informação. Os autores mostram a Indicações de leitura 32 importância da computação em nuvem para a área de ciência de dados, apontando o processo de absorção de tal ciência nos problemas da computação em nuvem. Além disso, analisam o impacto da área da explosão informacional para a consolidação de diversas tecnologias, dentre elas a computação em nuvem. Para realizar a leitura, acesse a Biblioteca Virtual da Kroton e busque pelo título da obra. SOUZA, R. R. et al. Ciência da informação em transformação: Big Data, nuvens, redes sociais e web semântica. Ciência da Informação, Brasília, v. 42, n. 2, p 159-173, 2013. QUIZ Prezado aluno, as questões do Quiz têm como propósito a verificação de leitura dos itens Direto ao Ponto, Para Saber Mais, Teoria em Prática e Leitura Fundamental, presentes neste Aprendizagem em Foco. Para as avaliações virtuais e presenciais, as questões serão elaboradas a partir de todos os itens do Aprendizagem em Foco e dos slides usados para a gravação das videoaulas, além de questões de interpretação com embasamento no cabeçalho da questão. 1. Em uma arquitetura da IoT, a agregação de mensagens ocorre em qual componente? Assinale a alternativa correta. a. Nuvem. b. Dispositivo da IoT, 33 c. Aplicação. d. Banco de dados. e. Middleware. 2. Qual componente é responsável por ser uma camada intermediária entre a infraestrutura física dos recursos de armazenamento e as máquinas virtuais que contêm os bancos de dados em um modelo de serviço DBaaS? Assinale a alternativa correta. a. Máquina virtual. b. Sistema operacional. c. Middleware. d. Hypervisor. e. Serviço de virtualização. GABARITO Questão 1 - Resposta B Resolução: Na arquitetura da IoT, a agregação de mensagens ocorre em algum dispositivo da IoT que, posteriormente, pode encaminhar tais dados para a nuvem. Questão 2 - Resposta D Resolução: O hypervisor é a camada intermediária entre a infraestrutura física e as máquinas virtuais em um modelo de serviço DBaaS. TEMA 4 Projetos de arquiteturas na nuvem ______________________________________________________________ Autoria: Tiago Cariolano Leitura crítica: Douglas Fabiano Lourenço 35 DIRETO AO PONTO Otero (2013) propôs uma arquitetura para automatizar serviços de implantação de sistemas no ambiente de nuvem. Tal arquitetura permite que as tarefas de implantação de infraestrutura e de atualização de plataforma sejam realizadas automaticamente. Considerando modelo de visão 4+1, a Visão Lógica consiste em identificar os elementos de abstração-chave da arquitetura. Tais abstrações geralmente correspondem aos objetos ou às classes de objetos e servem para identificar os componentes de projeto do sistema. Na Figura 1, cinco componentes compõem a Visão Lógica de Otero: AccessManager, o qual gerencia o acesso à nuvem; Controller, o qual realiza toda a coordenação da nuvem; UpdateManager, o qual é responsável por checar as atualizações dos sistemas da nuvem e instalá-las; DeployManager, o qual implanta os serviços requisitados; e InfrastructureManager, o qual gerencia os recursos de infraestrutura. 36 Figura 1 – Visão Lógica de Otero (2013) Fonte: adaptada de Otero (2013, p. 40). A Figura 2 apresenta um exemplo de Visão de Processo para a instalação de uma atualização de software no trabalho de Otero (2013). A Visão de Processo captura o comportamento do sistema, a concorrência de tarefas e o fluxo de informações do sistema. Na Figura 2, o Desenvolvedor (Developer) acessa a interface gráfica (GUI – Graphical User Interface) para selecionar o software a ser instalado (SelectSoftware). Então, o Controlador (Controller) é acessado por meio da chamada SendSoftwareSelection e constrói (BuildScritptSoftware) um script contendo os comandos para instalação da atualização de software. O Controlador solicita a configuração da infraestrutura (ConfigureInfrastructure) para o componente CreateInfrastructure. O componente CreateInfrastructure envia o script para o Provedor de IaaS (CloudIaaSProvider) por meio da chamada SendScriptSoftware, e solicita a execução do script por meio da chamada ExecuteScriptSoftwar. 37 Figura 2 – Exemplo de Visão de Processo de Otero (2013) Fonte: elaborada pelo autor, adaptada de Otero (2013, p. 45). A Figura 3 apresenta a Visão de Implementação de Otero (2013), que consiste em pacotes que representam bibliotecas de código ou subsistemas, os quais são organizados hierarquicamente em camadas. Cada uma deve fornecer interfaces bem definidas para as superiores, representando as relações de importação de subsistemas. Na Figura 3, a implementação de cada componente pode ser realizada isoladamente, para apenas posteriormente ser integrada por meio das interfaces. A Visão Física consiste em identificar a topologia da arquitetura e definir os nós físicos que vão abrigar os componentes lógicos da arquitetura. 38 Figura 3 – Visão de Implementação de Otero (2013) Fonte: adaptada de Otero (2013, p. 48). Referências bibliográficas OTERO, L. E. A. Uma arquitetura para a implantação automática de serviços em infraestruturas de nuvem. 2013. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2013. PARA SABER MAIS Muitos provedores de nuvem oferecem o serviço de função como um serviço (FaaS – function as a service) para os usuários. Este serviço consiste em disponibilizar a implantação de software na forma de funções que são executadas na infraestrutura do provedor (BORTOLONI, 2019). O desenvolvedor apenas necessita implementar a função em uma das linguagens de programação 39 prdefinidas pelo provedor, sem a necessidade de sequer ter o conhecimento de qual sistema operacional está executando na infraestrutura subjacente. A Figura 4 apresenta a arquitetura de serviço de FaaS, em que requisições HTTP, agendamentos de temporizadores e outros tipos de eventos notificando o provedor de nuvem, o qual disponibiliza a implantação da função de SaaS. Quando o evento ocorre, a função realiza alguma operação, como serviços de autenticação, de armazenamento, ou operações em banco de dados. É importante notar que eventos internos do provedor de nuvem podem disparar a execução da função FaaS. Figura 4 – Arquitetura de serviço de FaaS Fonte: adaptada de Bortoloni (2019, p. 19). Serviços de FaaS podem ser úteis para comparar o custo de provedores de nuvem, pois a precificação para o modelo FaaS tende a ser menos complexa. Eles têm dois custos associados: a invocação e o consumo de recursos. O modelo de custo é 40 derivado a partir dos parâmetros de entrada: taxa média de chegada de requisições, tempo médio de execução da função de FaaS e quantidade de memória alocada. O custo por invocação corresponde à quantidade de vezes que a função de FaaS é chamada pelo preço por invocação. Já o custo por consumo de recursos é proporcional ao tempo médio de execução da função de FaaS pelo preço por quantidade de memória alocada. O custo total é a soma dos custos por invocação e por consumo de recursos. Referências bibliográficas BORTOLINI, D. Investigando desempenho e custo em plataformas FaaS. 2019. Dissertação (Mestrado em Computação Aplicada) – Universidade do Estado de Santa Catarina, Joinville, 2019. TEORIA EM PRÁTICA Considere um provedor de nuvem pública, o qual ofereça serviços de função como um serviço (FaaS). Existem dois requisitos funcionais que devem ser respeitados durante a especificação do projeto: (I) os eventos internos e externos que disparam a função de FaaS devem ser capturados e notificados; (II) a função de FaaS deve se comunicar com os demais serviços oferecidos pela nuvem de maneira transparente ao usuário. A partir dessas informações, especifique um diagrama de Visão Lógica para ocenário citado, que viabilize o serviço de FaaS e que atenda aos requisitos especificados. Após isso, especifique, por meio de um diagrama de Visão de Processo e descrição textual, quais as etapas que ocorrem ao chegar uma requisição que dispara a função de FaaS. 41 Para conhecer a resolução comentada proposta pelo professor, acesse a videoaula deste Teoria em Prática no ambiente de aprendizagem. LEITURA FUNDAMENTAL Indicação 1 Esta dissertação de mestrado apresenta uma comparação de custo entre quatro dos maiores provedores de nuvem do mundo: Amazon AWS, Microsoft Azure, Google Cloud e IBM Cloud. Os autores comparam o desempenho dos provedores com relação ao serviço de função como um serviço (FaaS) que cada um oferece. O trabalho investiga como o desempenho das funções oferecidas pelos provedores influencia no custo pago pelo cliente da nuvem. Para realizar a leitura, acesse a Biblioteca Virtual da Kroton e busque pelo título da obra. BORTOLINI, D.; OBELHEIRO, R. R. Investigando desempenho e custo em plataformas FaaS. Dissertação (Mestrado em Computação Aplicada) – Universidade do Estado de Santa Catarina, Joinville, 2019. Indicação 2 Este trabalho propõe uma arquitetura de nuvem para implantação do modelo de serviço Big Data como um serviço (BDaaS – Big Data as a Service). No BDaaS, a nuvem oferece serviços para processamento de dados de Big Data, que consistem em grandes Indicações de leitura 42 volumes de dados, gerados com um alto nível de variedade e velocidade. O BDaaS fornece serviços de nuvem para que os usuários possam gerar, adquirir, armazenar e analisar dados do Big Data. O trabalho proposto apresenta uma abordagem para implantar uma nuvem privada que seja capaz de fornecer serviços de BDaaS aos usuários. Outra característica interessante deste trabalho é que ele não especifica o modelo de arquitetura por meio do modelo de visões arquiteturais 4+1. O autor faz uso de um modelo de visões arquiteturais denominadas Visão de Contexto, Visão Funcional, Visão de Implantação e Visão Operacional. Para realizar a leitura, acesse a Biblioteca Virtual da Kroton e busque pelo título da obra. REIS, M. A. S. Uma arquitetura de Big Data as a service baseada no modelo de nuvem privada. 2018. Dissertação (Mestrado em Computação Aplicada) – Universidade de Brasília, Brasília, 2018. QUIZ Prezado aluno, as questões do Quiz têm como propósito a verificação de leitura dos itens Direto ao Ponto, Para Saber Mais, Teoria em Prática e Leitura Fundamental, presentes neste Aprendizagem em Foco. Para as avaliações virtuais e presenciais, as questões serão elaboradas a partir de todos os itens do Aprendizagem em Foco e dos slides usados para a gravação das videoaulas, além de questões de interpretação com embasamento no cabeçalho da questão. 43 1. Em qual visão do modelo de visão 4+1 os componentes devem estar dispostos obrigatoriamente em uma estrutura hierárquica? Assinale a alternativa correta. a. Visão de Implementação. b. Visão de Processo. c. Cenários. d. Visão de Implementação. e. Visão Lógica. 2. Quais dos componentes ou eventos descritos a seguir são essenciais para o funcionamento de um serviço de FaaS? Escolha a alternativa correta. a. Notificação de chegada de requisição. b. Serviço de banco de dados. c. Sistema operacional open source. d. Notificação de término de migração. e. Serviço de busca. GABARITO Questão 1 - Resposta D Resolução: A Visão de Implementação é aquela em que os componentes devem estar organizados hierarquicamente. Questão 2 - Resposta A Resolução: A notificação é o único evento essencial, pois é o que dispara a execução do serviço de FaaS. BONS ESTUDOS! Apresentação da disciplina Introdução TEMA 1 Direto ao ponto Para saber mais Teoria em prática Leitura fundamental Quiz Gabarito TEMA 2 Direto ao ponto TEMA 3 Direto ao ponto TEMA 4 Direto ao ponto Botão TEMA 5: TEMA 2: Botão 158: Botão TEMA4: Inicio 2: Botão TEMA 6: TEMA 3: Botão 159: Botão TEMA5: Inicio 3: Botão TEMA 7: TEMA 4: Botão 160: Botão TEMA6: Inicio 4: Botão TEMA 8: TEMA 5: Botão 161: Botão TEMA7: Inicio 5: