Baixe o app para aproveitar ainda mais
Prévia do material em texto
Computação em Nuvem Aula 2: Tecnologias Subjacentes Apresentação Nesta aula, olharemos os ambientes de computação em nuvem por dentro. Descreveremos os componentes de tecnologia que, em conjunto, disponibilizam as principais características e funcionalidades que caracterizam a computação em nuvem. Abordaremos a arquitetura da internet e redes de banda larga, a tecnologia de data centers, a virtualização, a web, a tecnologia múltiplos inquilinos, e a conteinerização. Todas essas tecnologias já existiam em sua forma amadurecida antes do surgimento da computação em nuvem. Entretanto, o avanço da computação em nuvem certamente colaborou para que certas áreas dessas tecnologias evoluíssem ainda mais. Objetivos Descrever a arquitetura da internet e redes de banda larga; Analisar a tecnologia de data centers, de virtualização e a tecnologia web. A arquitetura da internet e redes de banda larga Embora seja possível que consumidores de nuvem acessem a nuvem usando apenas sua rede privada (ex: nuvens privadas), a maior parte dos ambientes em nuvem certamente são dependentes da internet. O espírito primordial que orientou a criação da internet foi o modelo descentralizado de provisionamento e gerenciamento. Provedores de internet possuem liberdade para implantar, operar e gerenciar suas redes, além de poder selecionar parceiros para interconexão entre provedores (peer links). A topologia da internet se tornou um agregado dinâmico e complexo de provedores que são altamente interconectados pela pilha de protocolos TCP/IP (Transmission Control Protocol/internet Protocol). Há uma estrutura hierárquica de provedores, em que provedores de menor porte, também chamados de provedores locais (nível 1) estendem o alcance de provedores maiores, como provedores regionais (nível 2) e regionais (nível 3), conforme ilustrado pela Figura 1. Dois componentes fundamentais são usados para construir a arquitetura da internet: 1 A comutação de pacotes sem conexão 2 A interconectividade baseada em roteadores Comutação de pacotes sem conexão (rede de datagramas) Na internet, �uxos �m-a-�m (servidor-cliente) são divididos em pacotes de tamanho limitado (ex: 1500 Bytes). Após ser emitido por um remetente, um pacote é recebido por um switch ou um roteador, onde é processado e depois en�leirado para ser retransmitido até o próximo dispositivo de rede no caminho �m-a-�m. Isso é feito até que o pacote chegue ao destino. Figura 1: Visão geral da estrutura hierárquica da Internet. Cada pacote carrega o endereço do destino (IP na camada de rede, e MAC na camada de enlace) para que seja corretamente processado por cada dispositivo de rede intermediário que forma a infraestrutura da internet. Interconectividade baseada em roteadores Um roteador é um dispositivo que interconecta diferentes redes. Ele possui uma interface de rede conectada às redes às quais ele está diretamente conectado. Sua principal tarefa é encaminhar pacotes de uma rede para outra. Para cumprir essa tarefa, o roteador segue três passos simples: 1 Lê o endereço IP destino do pacote; 2 Usando o endereço IP do pacote, realiza uma consulta à sua tabela de roteamento; 3 Move o pacote para a interface de saída indicada na tabela de roteamento, onde o pacote esperará na �la para ser retransmitido, conforme ilustrado pela Figura 2. Figura 2: Roteador da Internet realizando repasse de pacotes A malha de roteadores que forma a internet constitui uma estrutura robusta com diversos caminhos possíveis entre um remetente e um destinatário. Dessa forma, mesmo que haja múltiplas falhas, a conectividade em geral se mantém, embora possam ser percebidas �utuações de atraso e vazão de pacotes. Provedores de nuvem disponibilizam seus recursos de TI para estarem acessíveis aos consumidores através da internet, conforme ilustrado na Figura 3. Figura 3: Ambientes de computação em nuvem em geral são disponibilizados aos consumidores através de conexões à Internet Esta estrutura é um pilar necessário para uma das características desejáveis de um ambiente de nuvem estudado na anterior, o acesso ubíquo. Não é difícil notar que a boa qualidade dos serviços de computação em nuvem é totalmente dependente da qualidade e da estabilidade das conexões à internet tanto por parte do consumidor quanto por parte do provedor de nuvem. Em especial, a banda �m-a-�m deve ser o su�ciente para suportar a demanda de tráfego a ser gerado pela interação entre as partes envolvidas. A banda �m-a-�m é o termo usado para de�nir a capacidade de transmissão em bits por segundo (bps) do sistema. O atraso, também chamado de latência (delay), pode ser de�nido como o tempo necessário para que um pacote viaje de um remetente até o destinatário. A internet, como uma infraestrutura sem conexão, não oferece a possibilidade de reserva de recursos �m-a-�m. Então, quando a demanda começa a se aproximar da capacidade, há formação de �la nos roteadores. O usuário percebe isso ao notar aumentos na latência, redução na banda �m-a-�m e degradação na perda de pacotes. Soluções de TI precisam ser analisadas conforme os requisitos de negócio sensíveis à banda e latência. A banda é crítica para aplicações que requerem transmissão de quantidades substanciais de dados entre o ambiente de nuvem e o consumidor; A latência é crítica para aplicações que sejam sensíveis ao atraso como, por exemplo, conferências de áudio e vídeo em tempo real. Dica Consumidores podem precisar usar múltiplos provedores de nuvem. É difícil gerenciar a qualidade de serviço (QoS) através de múltiplas redes que formam a infraestrutura da internet. Assim, os consumidores devem estar cientes de que a adoção de computação em nuvem pode ser mais fácil para aplicações com requisitos mais brandos de banda e latência. A con�abilidade e a disponibilidade dos links que conectam o consumidor e o provedor à internet também devem ser cuidadosamente considerados. Tecnologia de data center Com o tempo, a indústria da TI notou que é mais fácil alcançar níveis mais elevados de e�ciência no uso de recursos de TI compartilhados, e melhor acessibilidade para funcionários da área da TI. Isso naturalmente popularizou o conceito de data centers. Data centers modernos são infraestruturas usadas para hospedar de forma centralizada um grande conjunto de recursos de TI, como servidores, banco de dados, dispositivos de rede e telecomunicações, e sistemas de software. Em geral, data centers são formados pelas seguintes tecnologias e componentes: a. Virtualização; b. Padronização e modularidade (Commodity Hardware); c. Automação; d. Operação e gerenciamento remoto; e. Alta disponibilidade; f. Projeto centrado na segurança; g. Instalações; h. Hardware de processamento; i. Hardware de armazenamento; j. Hardware de rede. Acompanhe a seguir, cada um deles detalhadamente. Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online As tecnologias e componentes que formam os data centers Clique no botão acima. As tecnologias e componentes que formam os data centers Virtualização Data centers consistem em uma combinação de recursos de TI físicos e virtualizados. Recursos físicos de TI se referem a instalações de infraestrutura que hospeda equipamentos e sistemas de computação e rede, juntamente com sistemas de hardware e seus sistemas operacionais. A abstração de recursos e controle da virtualização é formada por ferramentas operacionais e de gerenciamento, normalmente baseadas em plataformas que abstraem recursos físicos e os transformam em componentes virtualizados facilmente alocados, operados, liberados, monitorados e controlados. Padronização e modularidade (Commodity Hardware) Data centers são projetados e implantados com base em commodity hardwares e projetados em arquiteturas modulares, agregando múltiplos blocos de instalações de infraestrutura e equipamentos que permitem facilmente trabalhar a escalabilidade. Commodity Hardware é um hardware de computador ou componente de TI relativamente barato, amplamentedisponível no mercado, e basicamente intercambiável com outro hardware de seu tipo. Como uma analogia, pense em blocos de lego que podem ser facilmente escalados, adicionados e/ou removidos. Automação Data centers usam plataformas especializadas para automatizar, sem necessidade de supervisão humana, tarefas como provisionamento, con�guração, instalação de patches e monitoramento. Operação e gerenciamento remoto A maior parte das tarefas operacionais e administrativas de recursos de TI em data centers é realizada remotamente através de consoles e sistemas de gerenciamento. Isso é importante pois, em geral, o corpo técnico não precisa visitar �sicamente as salas dedicadas a servidores, com exceção de casos bem especí�cos como, por exemplo, substituição de hardware. Alta disponibilidade Data centers precisam considerar a redundância para garantir a con�abilidade de disponibilidade de seus serviços. Isso se aplica a fontes de energia elétrica ininterrupta e redundante, cabeamento, subsistemas de controle ambiental (ex: refrigeração), assim como links de comunicação e clusters (aglomerados) de hardware para balanceamento de carga. Projeto centrado na segurança Requisitos minuciosos e abrangentes de segurança devem ser considerados, como controle de acesso físico e lógico, além de estratégias de recuperação. Instalações Instalações de data centers são projetadas de forma personalizada e preenchidas com equipamentos de rede, armazenamento e processamento. Essas instalações possuem diferentes áreas funcionais, assim como várias fontes de energia, cabeamento, e estações de controle ambiental que controlam a temperatura, ventilação, ar condicionado, proteção contra incêndio e outros subsistemas correlatos. Hardware de processamento A maior parte do processamento em data centers é realizado por commodity hardwares que possuem alto poder de processamento e de armazenamento. Diversas tecnologias são integradas nestes servidores modulares, como: Racks padronizados com interconexão de energia elétrica, rede e resfriamento interno; Suporte a diferentes arquiteturas de hardware, como x86 e RISC; Uma arquitetura de CPU de múltiplos cores com altos níveis de e�ciência energética, que permite que um mesmo rack contenha um enorme poder de processamento; Dispositivos redundantes que suportam hot-swap (troca quente), ou seja, remoção e substituição sem que seja necessário desligar o hardware. Hardware de armazenamento RAID: Data centers possuem sistemas especializados de armazenamento que contêm quantidades inimagináveis de informação digital. Nesses sistemas são armazenados um enorme número de HDs (Hard-Disks), que são organizados em arrays (vetores) de discos, denominados RAID (Redundant array of inexpensive disks), ou vetor redundante de discos baratos. Esses arrays automaticamente realizam divisão e replicação de dados entre múltiplos HDs físicos. Com isso, alcança-se desempenho e performance superior. SAN: Hardwares físicos de armazenamento são conectados ao demais componentes através de uma rede dedicada de dados (Storage Area Network). NAS: Network-Attached Storage, Arrays de HDs são contidos e gerenciados por dispositivos dedicados, que disponibiliza acesso aos dados através de protocolos padrão como o NFS (Network File System) e o SMB (Server message Block). Hardware de rede Data centers requerem o uso extensivo de hardware de rede para que sejam capazes de entregar alto nível de desempenho e conectividade. Podemos dividir a infraestrutura de rede de data centers em cinco componentes principais: Interconexão à rede externa: Trata da infraestrutura que conecta o data center à internet; Balanceamento de carga e aceleração Nível Web: Subsistema composto de dispositivos de aceleramento, como pré-processadores XML, soluções de processamento de criptogra�a, roteadores especiais que conseguem realizar roteamento baseado em conteúdo do pacote. Esses roteadores também são chamados de roteadores de 7 camadas. Malha de LAN (Local Área Network): Constitui a rede interna do provedor de nuvem, e provê alto desempenho, além de conectividade redundante para todos os recursos de TI que quiserem acesso à rede. Em geral, são usados switches gerenciáveis de alto poder de processamento capazes, inclusive, de implementar VLANs (Virtual Local Area Networks), agregação de links, roteamento limitado e controlado entre redes, balanceamento de carga e recuperação de falha (failover). Virtualização Usuários domésticos estão acostumados a usar o termo virtualização para descrever o processo de executar simultaneamente múltiplos sistemas operacionais em um mesmo computador físico. No contexto de computação em nuvem, virtualização é o processo de executar instâncias virtuais de um recurso de TI em uma camada abstraída de um hardware físico. Exemplos de recursos de TI que podem ser virtualizados são: Clique nos botões para ver as informações. Um servidor físico pode ser abstraído em múltiplos servidores virtuais. Servidores Um dispositivo de armazenamento físico pode ser abstraído em múltiplos dispositivos de armazenamento virtuais. Armazenamento Roteadores e switches físicos podem ser abstraídos em dispositivos lógicos de redes. Por exemplo, VLANS (Virtual Local Area Networks). Rede No-breaks físicos podem ser abstraídos em no-breaks virtuais. Energia Quando se trata de virtualização de servidores, o processo segue dois estágios básicos: Usar um software de virtualização para alocar recursos físicos de TI em uma abstração denominada servidor virtual; A instalação de um sistema operacional. O servidor físico que roda o software de virtualização e que receberá servidores virtuais é denominado host (hospedeiro). Já o S.O. instalado no servidor virtual via software de gerenciamento de virtualização é denominado guest (hóspede). Os guests e as aplicações que nele rodam não têm como saber que estão rodando em um processo virtualizado. Em outras palavras, esses recursos de TI virtualizados são instalados e executados de forma análoga ao que é feito em um servidor físico. O software executado no guest para abstrair recursos de TI físicos em virtuais é mais comumente chamado de hypervisor ou hipervisor. Entretanto, também são chamados de gerenciador de máquina virtual, ou monitor de máquina virtual (VMM - Virtual Machine Monitor). Esses sistemas garantem a independência de hardware, por meio da qual servidores virtuais possam ser facilmente movidos para outro host de virtualização, sem que haja problemas de incompatibilidade. Dessa forma, a manipulação e clonagem de recursos virtuais de TI se torna facilmente executável. A consolidação de servidores é outra característica importante de sistemas hipervisores, também focada na escalabilidade, ela descreve a capacidade de executar múltiplos servidores virtuais em um mesmo servidor físico. Por meio da consolidação de servidores que os provedores de nuvem podem garantir a alta utilização do hardware, o balanceamento de carga, e a otimização de recursos de TI. Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online Comentário A consolidação de servidores é uma capacidade fundamental dos hipervisores, pois sustenta as principais características desejáveis de um ambiente de nuvem: uso sob demanda, gerenciamento de recursos, elasticidade, escalabilidade, resiliência. A Figura 4 mostra duas abordagens para a virtualização: 1 Hosted Baseado em Sistema Operacional 2 Bare metal Baseada em Hardware puro Em (1) há um sistema operacional (host) instalado nativamente no hardware do host, e o hipervisor é um software instalado no S.O. host. Já em (2), o hipervisor é executado diretamente sobre o hardware host, sem intermédio de sistema operacional. O método descrito em (2) também é chamado de bare metal virtualization (virtualização em metal puro ou em hardware puro). Figura 4: (1) Virtualização hosted (2) Virtualização bare metal Hipervisores modernos incluem funções avançadas de gerenciamento que permitem a automatização de tarefasadministrativas, e reduzir a carga operacional sobre os recursos virtualizados. O gerenciamento de recursos virtualizados de TI é frequentemente disponibilizado por ferramentas denominadas virtualization infrastructure management (VIM), ou gerenciamento de insfraestrutura de virtualização, que usam um módulo responsável por implementar técnicas e mecanismos de gerenciamento de recursos para controlar coletivamente os recursos virtuais de TI do ambiente em nuvem. Tecnologia web A tecnologia web é, em geral, usada como meio de implementação e interface de gerenciamento de serviços em nuvem. Em geral, quando falamos em um serviço se baseia em tecnologia web, estamos descrevendo o fato de que o usuário interage com o serviço através do uso de navegadores web como o Google Chrome, Mozilla Firefox ou Microsoft Edge. O termo usado para descrever uma aplicação deste tipo é Web application, ou aplicação web. A arquitetura de aplicações web comumente é estruturada conforme representado na Figura 5. A camada superior é a camada de apresentação, em que, através de um navegador web, o usuário interage com a interface do usuário. A camada intermediária é a camada de aplicação onde o software é implementado de fato. Mais abaixo temos a camada de dados, que compõe as funções de armazenamento persistente de dados. Figura 5: Arquitetura comumente usada por aplicações web Note que a camada de apresentação possui componentes em ambos os lados (cliente e servidor). Servidores web recebem requisições do cliente, repassam à aplicação web, que processa o pedido e, se necessário, faz solicitaçãos ao servidor de armazenamento. Após cumprir a requisição, a aplicação web retorna os recursos solicitados diretamente como conteúdos de páginas web dinâmicas ou estáticas. O servidor web, então, repassa essa página web ao cliente. Tecnologia múltiplos inquilinos A ideia da tecnlogia múltiplos inquilinos é permitir que múltiplos usuários (inquilinos) acessem simultaneamente a mesma aplicação lógica. Cada inquilino possui sua própria e independentemente da aplicação que ele usa, administra e personaliza. Isso é implementado pela criação de uma instância dedicada do software. Veja a ilustração da �gura 6. Figura 6: Arquitetura múltiplos inquilinos Um inquilino não consegue perceber que há outros inquilinos usando a mesma aplicação. Isso é fundamental, pois garante que inquilinos não tenham acesso a dados e informações de con�guração que não sejam suas. A Figura 6 ilustra uma aplicação sendo concorrentemente usada por dois inquilinos diferentes. Conteinerização É uma tecnologia de virtualização em nível de S.O. usada para implantar e executar aplicações e serviços de nuvem sem a necessidade de instanciar um novo servidor virtual para cada solução. Ao disponibilizar conterinirização, o kernel permite a existência de múltiplas instâncias do espaço dos usuários que são isolados entre eles. Um serviço de nuvem executado dentro de um contêiner não percebe que está conteinerizado e acha que está rodando em um computador real. Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online Atividade 1) Explique por que estabilidade e alta taxa de transmissão (banda larga) são características fundamentais para a implantação de soluções baseadas em ambiente em nuvem. 2) Cite as principais tecnologias e os componentes principais de um ambiente em nuvem. 3) Nesta aula, estudamos que virtualização é o processo de executar instâncias virtuais de um recurso de TI em uma camada abstraída de um hardware físico. Cite e explique quais são os dois tipos virtualização. 4) Por que a tecnologia web é tão importante para a computação em nuvem? 5) Diferencie a virtualização da conteinerização. Notas Referências NETO, Manuel V. de S. Computação em Nuvem. Nova Arquitetura de TI. 1. ed. Rio de Janeiro: Brasport, 2015. Leitura do livro didático base, disponível na Biblioteca Virtual Estácio: - Capítulo 7, Data Centers: Arquitetura e Infraestrutura - Capítulo 10, Abordagens para a Arquitetura Multitenancy Próxima aula Termos e conceitos que endereçam a segurança da informação em ambientes em nuvem; Conjunto mais comum de ameaças e ataques a ambientes em nuvem. Explore mais Para complementar seus conhecimentos veja os conteúdos indicados. Leia: O que é bare metal? Container, o novo passo para a virtualização Assista ao vídeo: Apresentação da IBM sobre o que é conteinerização. Habilite as legendas e ative a tradução automática para o português. javascript:void(0); javascript:void(0); javascript:void(0);
Compartilhar