Baixe Material sobre Big Data e Apache Hadoop e outras Notas de aula em PDF para Noções Básicas de Data Warehousing, somente na Docsity!
FUNDAMENTOS DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM - DEFINIÇÃO A computação em nuvem é um paradigma de computação distribuída em larga escala, conduzida por economias de escala, na qual um conjunto de recursos é entregue por demanda a usuários externos através da Internet. Este conjunto de recursos é formado por poder computacional, armazenamento, plataformas e serviços. A computação em nuvem difere de outros modelos por ser massivamente escalável, virtualizada, encapsulada em diferentes níveis de serviço para o cliente externo e por seus serviços serem configurados dinamicamente. Outra definição para computação em nuvem diz que a nuvem é um tipo de sistema paralelo e distribuído, consistindo de uma coleção de computadores interconectados e virtualizados que são tipicamente provisionados e apresentados como um ou mais recursos computacionais unificados, baseados em um SLA estabelecido entre o provedor do serviço e os consumidores. A computação em nuvem está ligada a questões de infraestrutura de recursos computacionais, tendo sua popularização a partir de 2006 com o serviço Elastic Cloud Computing (EC2) [3] da Amazon. Mesmo não sendo a primeira a propor o modelo, a empresa contribuiu para o modelo de computação utilitária, no qual o usuário pode provisionar máquinas virtuais no datacenter do provedor do serviço de nuvem, adicionando ou removendo capacidade da infraestrutura para atender à flutuação de sua demanda.
COMPUTAÇÃO EM NUVEM – CARACTERÍSTICAS ESSENCIAIS
- Auto-serviço por demanda
- Amplo acesso à rede
- Agrupamento de recursos
- Elasticidade rápida
- Serviço mensurável
- Auto-serviço por demanda: um consumidor pode unilateralmente provisionar recursos computacionais, como tempo de servidor e armazenamento na rede sem necessidade de interação com o provedor do serviço;
- Amplo acesso à rede: as funcionalidades ficam disponíveis através da rede e podem ser acessadas pelas plataformas dos clientes;
- Agrupamento de recursos: os recursos computacionais são agrupados para servir a múltiplos clientes em um modelo multi-tenant. Os recursos são atribuídos dinamicamente de acordo com a demanda. O consumidor não tem controle ou conhecimento sobre a localização do recurso que está utilizando;
- Elasticidade rápida: a capacidade dos recursos computacionais pode ser rapidamente provisionada e liberada para escalar conforme a demanda;
- Serviço mensurável: o serviço de nuvem gerencia e otimiza os recursos, e tem a capacidade de monitoramento e controle de forma transparente para o provedor e para o consumidor do recurso
COMPUTAÇÃO EM NUVEM – ATORES PRINCIPAIS
- Consumidor da nuvem
- Provedor de nuvem
- Auditor da nuvem
- Agente da nuvem
- Transportador da nuvem
- Consumidor da nuvem: uma pessoa ou organização que mantém um relacionamentode negócio e usa serviços do provedor de nuvem;
- Provedor de nuvem: uma pessoa, organização ou entidade responsável por tornarum serviço disponível para as partes interessadas;
- Auditor da nuvem: uma parte que pode conduzir avaliações independentes dosserviços da nuvem, operações nos sistemas de informação, performance e segurançada implementação de nuvem;
- Agente da nuvem (Cloud Broker): uma entidade que gerencia o uso, a performancee a entrega dos serviços da nuvem, e negocia o relacionamento entre os provedorese os consumidores da nuvem;
- Transportador da nuvem (Cloud Carrier): um intermediário que fornece conectividade e transporte dos serviços da nuvem entre provedores e consumidores
COMPUTAÇÃO EM NUVEM – TIPOS DE NUVENS
- Nuvem privada
- Nuvem Comunitária
- Nuvem Pública
- Nuvem Hibrida
- Nuvem Privada: a infraestrutura é provisionada exclusivamente para uma organização e seus consumidores;
- Nuvem Comunitária: a infraestrutura da nuvem é provisionada para uso exclusivo de uma comunidade de consumidores de organizações afins;
- Nuvem Pública: a infraestrutura é provisionada para uso aberto para o público em geral;
- Nuvem Híbrida: é a composição de dois ou mais tipos de infraestruturas distintas, a partir dos tipos apresentados anteriormente (privada, comunitária e pública)
COMPUTAÇÃO EM NUVEM – DESAFIOS A computação em nuvem trouxe a facilidade do auto-serviço, amplo acesso à rede, agrupamento de recursos, elasticidade rápida e serviços mensurável. Dessa forma, novas ideias e produtos podem ser desenvolvidos sem o alto custo de equipamentos e mão de obra especializada, pagando apenas pelos recursos utilizados. Assim, uma empresa pode começar a oferta do produto em pequena escala e, com o aumento da demanda, aumentar os recursos de hardware e de software de acordo com a sua necessidade. Por outro lado, empresas com grandes sistemas podem utilizar a elasticidade da nuvem para escalar o processamento dos dados, o que pode ser feito com a utilização de uma nuvem pública, com a criação de uma nuvem privada ou a combinação destas duas (a nuvem híbrida). A computação em nuvem tem relação com as aplicações (SaaS), a plataforma (PaaS) e a infraestrutura (IaaS) entregues como serviços para o usuário final. Dessa forma, os autores indicam que a computação em nuvem reduz os custos com eletricidade, rede, operações, software, hardware, espaço físico e, eventualmente, pessoal. A computação em nuvem é adequada para situações nas quais a demanda por um serviço varia conforme o tempo, podendo haver picos em dias específicos do mês e
COMPUTAÇÃO EM NUVEM – DESAFIOS
- Disponibilidade do serviço
- Dados bloqueados
- Confidencialidade/Auditabilidade
- Gargalos na transferência de dados
- Performance imprevisível
- Elasticidade Rápida
- Reputação
- Licenciamento de software
- Disponibilidade do serviço: espera-se que os serviços estejam sempre disponíveis, minimizandos o número de falhas para evitar prejuízos;
- Dados bloqueados: a interoperabilidade entre plataformas ainda está em estágio inicial e os usuários não podem facilmente transmitir dados entre elas. Uma solução seria a padronização das Application Programming Interfaces (APIs), de forma que os fornecedores de SaaS possam instalar seus produtos em diferentes plataformas de nuvem;
- Confidencialidade/auditabilidade dos dados: segurança é uma questão a ser levantada durante a adoção do modelo de nuvem pública, na qual a responsabilidade é dividida entre o usuário, o fornecedor do serviço de nuvem e outros fornecedores envolvidos no processo;
- Gargalos na transferência de dados: o custo para transferência de grandes volumes de dados na Internet é alto, fato que deve ser considerado porque as aplicações podem usar mais de um provedor de nuvem para garantir redundância;
- Performance imprevisível: a CPU e a memória de máquinas virtuais (VMs) são
compartilhadas com eficiência na nuvem. Contudo, a performance de I/O de disco e rede virtualizados é problemática. Uma possível solução seria a utilização de Solid- state drive (SSD)
- Elasticidade rápida: a nuvem deve aumentar e diminuir rapidamente a quantidade dos recursos computacionais. Uma opção, segundo [20], é usar machine learning como ferramenta de predição;
- Reputação: a reputação do provedor de nuvem pode ser prejudicada se um dos clientes tiver mal comportamento;
- Licenciamento de software: o modelo de licenciamento de software comercial não é o mais indicado para os provedores de nuvem, o que representa uma oportunidade para o software grátis e livre.
COMPUTAÇÃO EM NUVEM & BIG DATA – DESAFIOS Outros desafios:
- Provisionamento automatizado de serviços
- Consolidação de servidores
- Segurança dos dados
- Frameworks de software
- Tecnologias de armazenamento e gerenciamento de dados Além destes, outros desafios da computação em nuvem, apesar da sua ampla adoção pela indústria, envolvem:
- Provisionamento automatizado de serviços: a alocação e a liberação de recursos é o ponto chave da computação em nuvem, mas mapear requisitos de serviço (por exemplo QoS) em requisitos de baixo nível (por exemplo CPU) não é trivial;
- Consolidação de servidores: técnica na qual as VMs são agrupadas para maximizar a utilização do servidor, enquanto diminui o consumo de energia;
- Segurança dos dados: as políticas de segurança são de responsabilidade do provedor de nuvem, e precisam garantir confidencialidade e auditabilidade. Por isso, é necessária a criação de mecanismos de confiança na infraestrutura da nuvem;
- Frameworks de software: a performance de aplicações que usam frameworks como o MapReduce é fortemente dependente do tipo de operação, por exemplo, ordenação demanda o sistema de I/O, enquanto que análise de texto usa primariamente CPU. Assim, verifica-se que os frameworks apresentam gargalos de performance que podem ser otimizados com configurações dinâmicas;
- Tecnologias de armazenamento e gerenciamento de dados: os frameworks, incluindo Hadoop, são projetados para operar com diversos sistemas de arquivos e fontes de dados, entretanto, ainda há problemas na interoperabilidade com os sistemas de arquivos legados.
COMPUTAÇÃO EM NUVEM - MODELOS
PaaS – Plataform as a Service
Modelo onde a aquisição ou utilização de um software não está vinculado a
compra de licenças.
Ex: Skype, Dropbox
Neste modelo vc paga pela utilização do software, vc não adquire o software como num licenciamento padrão.
COMPUTAÇÃO EM NUVEM – INFRAESTRUTURA COMO SERVIÇO Proposta de framework para a camada IaaS segundo Dukaric e Juric:
- Abstração de recursos: compreende os componentes de computação, armazenamento, volume e rede;
- Núcleo de serviços: inclui os serviços de identificação, agendamento, repositório de imagens, cobrança, faturamento e logging;
- Suporte: camada de middleware que fornece os meios para que as outras camadas se comuniquem;
- Segurança: fornece serviços de autenticação, autorização e monitoramento;
- Gerenciamento: compreende as ferramentas de gerenciamento, federação, elasticidade, energia etc.
- Controle: inclui os serviços de SLA, medição, sistema de políticas, notificação e orquestração;
- Serviços de valor agregado: gerencia os componentes complementares, como gerenciamento de disponibilidade de zonas, alta disponibilidade, suporte a nuvem híbrida, migração ao vivo de VMs e etc. Considera-se que o IaaS é uma das camadas mais importantes da computação em nuvem, e que não há mecanismos eficientes para analisar, comparar e avaliar as suas implementações. Uma possível arquitetura para a camada de IaaS é proposta por Dukaric e Juric e estaria assim constituída:
- Abstração de recursos: tem papel crucial na infraestrutura de nuvem, e compreende os componentes de computação, armazenamento, volume e rede;
- Núcleo de serviços: principal parte da infraestrutura proposta, inclui os serviços de identificação, agendamento, repositório de imagens, cobrança, faturamento e logging;
- Suporte: camada de middleware que fornece os meios para que as outras camadas se comuniquem. Dispõe de um barramento de mensagens, banco de dados para armazenamento do estado da infraestrutura e serviço de transferência;
- Segurança: fornece serviços de autenticação, autorização e monitoramento;
COMPUTAÇÃO EM NUVEM – INFRAESTRUTURA COMO SERVIÇO Proposta de framework para a camada IaaS segundo Vogel et al:
- Gerenciador de nuvem: nível mais alto da infraestrutura, controla os usuários, os grupos, as permissões, as quotas e a qualidade do serviço;
- Gerenciador de infraestrutura: responsável pelo agendamento de recursos, imagens, rede, volumes, templates e criação das VMs;
- Gerenciador de máquinas virtuais: fornece uma abstração dos recursos físicos. É implementado através de um hypervisor que é executado no sistema operacional ou diretamente no servidor (bare metal);
- Hardware: compreende o nível mais básico da infraestrutura, com os recursos computacionais físicos.
COMPUTAÇÃO EM NUVEM – NUVEM PRIVADA
- Segundo Mell e Grance: Nuvem privada é um das formas de implantação da computação em nuvem, na qual os recursos computacionais estão disponíveis apenas para uma organização e seus consumidores.
- Segundo Assunção et al. Uma nuvem privada é aquela implantada em uma rede privada, gerenciada pela organização ou por uma empresa terceirizada.
- Segundo Armbrust et al. Uma nuvem privada se refere a datacenters de empresas ou organizações que não estão disponíveis para o público em geral. Nuvem privada é um das formas de implantação da computação em nuvem, na qual os recursos computacionais estão disponíveis apenas para uma organização e seus consumidores. Ela pode pertencer, ser gerenciada, localizada e operada pela própria organização, por uma empresa terceirizada ou ainda algum tipo de combinação entre elas. Uma nuvem privada é aquela implantada em uma rede privada, gerenciada pela organização ou por uma empresa terceirizada. Ela é adequada para negócios que precisam de alto nível de controle de segurança e privacidade de dados. Considerando este contexto, a nuvem privada pode ser usada para oferecer serviços e dados eficientemente entre diferentes departamentos de uma grande empresa. Uma nuvem privada se refere a datacenters de empresas ou organizações que não estão disponíveis para o público em geral. Neste caso, a infraestrutura é suficiente para se beneficiar com as vantagens da