Universidade Federal do Ceará. Agenda. Computação em nuvem. Computação em Nuvem: Conceitos, Tecnologias, Aplicações e Desafios. Introdução Conceitos



Documentos relacionados
A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

Planejamento Estratégico de TI. Felipe Pontes

Universidade Federal do Ceará

Classificação::Modelo de implantação

Cloud Computing. Andrêza Leite.

CLOUD COMPUTING. Andrêza Leite.

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

SISTEMAS DISTRIBUÍDOS

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Fernando Seabra Chirigati. Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte

João Víctor Rocon Maia Engenharia de Computação - UFES

1

Computação em Nuvem. Henrique Ruschel, Mariana Susan Zanotto, Wélton Costa da Mota. Especialização em Redes e Segurança de Sistemas 2008/2

The Eucalyptus Open-source Cloud-computing System

Núvem Pública, Privada ou Híbrida, qual adotar?

O que é Cloud Computing?

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais

COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Introdução a Computação nas Nuvens

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Segurança da Informação

Microsoft Azure. Softmanager Soluções em TI. ModernBiz

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

ANÁLISE COMPARATIVA ENTRE APLICAÇÕES GRATUITAS EM NUVEM

Impactos do Envelhecimento de Software no Desempenho dos Sistemas. Jean Carlos Teixeira de Araujo

Detecção e investigação de ameaças avançadas. INFRAESTRUTURA

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

The Eucalyptus Open- source Cloud-computing System. Janaina Siqueira Lara Wilpert Marcelo Scheidt Renata Silva

Especificações da oferta Gerenciamento de dispositivos distribuídos: Gerenciamento de ativos

Online Help StruxureWare Data Center Expert

Arquitetura dos Sistemas de Informação Distribuídos

TRIBUTAÇÃO NA NUVEM. Tax Friday 21 de outubro de 2011 AMCHAM - RJ

Windows 2008 Server. Windows 2008 Server IFSP Boituva Prof. Sérgio Augusto Godoy.

DELL POWERVAULT SÉRIE MD ARMAZENAMENTO DE DADOS MODULAR ARMAZENAMENTO DE DADOS DELL POWERVAULT SÉRIE MD

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Sistemas Distribuídos

Profs. Deja e Andrei

Automação de Locais Distantes

Minicurso Computação em Nuvem Prática: Openstack

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

EUCALYPTUS: UMA PLATAFORMA CLOUD COMPUTING PARA

Sistemas Operacionais 1/66

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

Cloud Computing. Edy Hayashida

Computação em Nuvem: Conceitos, Tecnologias, Aplicações e Desafios

Alexandre Malveira, Wolflan Camilo

Introdução ao Modelos de Duas Camadas Cliente Servidor

Alex D. Camargo, Érico M. H. Amaral, Leonardo B. Pinho

Sistemas Distribuídos. Introdução

CLOUD. tendências CLOUD. entendendo e contratando assertivamente. Agosto/2012 INFORMATIVO TECNOLÓGICO DA PRODESP EDIÇÃO 02

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

Virtualização de Sistemas Operacionais

Gerenciamento e Interoperabilidade de Redes

Apresentação resumida

Conheça a nova solução de servidor que ajuda pequenas empresas a fazer mais Com menos.

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO.

Guia Rápido de Licenciamento do SQL Server 2012

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

TRIBUTAÇÃO NAS NUVENS Uma Regulação em Debate

A consolidação de servidores traz uma séria de vantagens, como por exemplo:

Qual servidor é o mais adequado para você?

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Kaspersky Security for Virtualization. Overview

Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli

Processos (Threads,Virtualização e Migração de Código)

Aula 03-04: Modelos de Sistemas Distribuídos

GIS Cloud na Prática. Fabiano Cucolo 26/08/2015

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Computação em Nuvem & OpenStack

Soluções Completas. Fundada em 1991, a.compos é pioneira na área de soluções em tecnologia, atuando nas áreas de:

Estratégia da VMware: O modelo corporativo definido por software e o desafio de simplificar a TI. Anderson Ferreira Bruno Amaral 22 Ago 2014

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Patrício Domingues Dep. Eng. Informática ESTG Instituto Politécnico de Leiria Leiria, Maio

Proposta de Avaliação de Empresas para o uso do SAAS

Gerenciamento de Incidentes

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

Por Antonio Couto. Autor: Antonio Couto Enterprise Architect

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

COORDENAÇÃO DE TECNOLOGIA (COTEC) ABRIL/2011

Plataforma na nuvem do CA AppLogic para aplicativos corporativos

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

SISTEMA DE GESTÃO DE PESSOAS SEBRAE/TO UNIDADE: GESTÃO ESTRATÉGICA PROCESSO: TECNOLOGIA DA INFORMAÇÃO

Fábrica de Software 29/04/2015

otimizando níveis de serviço em implantações na nuvem pública

Arquitetura de Banco de Dados

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

Transcrição:

Universidade Federal do Ceará Computação em Nuvem: Conceitos, Tecnologias, Aplicações e Desafios Flávio R. C. Sousa Leonardo O. Moreira Javam C. Machado ERCEMAPI 2009 Agenda Introdução Conceitos Definição e Modelos Tecnologias Aplicações Desafios Conclusão Computação em nuvem Virtualization QoS IaaS SaaS Amazon EC2 Amazon S3 Billing Hypervisors Public Cloud VMWare Storage Service Level Agreement PaaS Resource Metering Provisioning on Demand Pricing Security Web Services Utility Computing Manjrasoft Aneka Private Cloud Web 2.0 Enterprise Cloud SalesForce.com Privacy Google AppEngine Mosso Uhm, I am not quite clear Yet another buzzword..?

Computação em nuvem Serviços básicos e essenciais que são todos entregues de uma forma completamente transparente Serviços de utilidade pública Água, gás, eletricidade e telefone Modelo de pagamento baseado no uso Cobrança de acordo com as diferentes políticas para o usuário final Computação em nuvem A mesma idéia de utilidade tem sido aplicada no contexto da informática Cloud Computing ou Computação em Nuvem Computação em nuvem Uma tendência recente de tecnologia Proporcionar serviços de TI sob demanda com pagamento baseado no uso Tendências anteriores à computação em nuvem foram limitadas: A uma determinada classe de usuários Focadas em tornar disponível uma demanda específica de recursos de TI, principalmente de informática

Computação em nuvem Pretende ser global e prover serviços para as massas Usuário final que hospeda seus documentos pessoais na Internet Empresas que terceirizarão toda a parte de TI para outras empresas Nunca uma abordagem para a utilização real foi tão global e completa Não apenas recursos de computação e armazenamento são entregues sob demanda Mas toda a pilha de computação pode ser aproveitada na nuvem Computação em nuvem Nuvem É uma metáfora para a Internet ou infraestrutura de comunicação entre os componentes arquiteturais, baseada em uma abstração que oculta a complexidade de infra-estrutura Cada parte desta infra-estrutura é provida como um serviço Estes serviços são normalmente alocados em datacenters, utilizando hardware compartilhado para computação e armazenamento. Computação em nuvem SLAs Web Services Virtualization

Computação em nuvem Para utilizarem os serviços, os usuários necessitam: Um navegador e acesso a Internet Os recursos estão disponíveis na Internet As máquinas dos usuários não necessitam ter altos recursos computacionais Todo hardware pode ser utilizado para realizar alguma tarefa que seja adequada ao seu poder de processamento Novos recursos podem ser adicionados a fim de aumentar o poder de processamento e cooperar com os recursos existentes CONCEITOS Computação em nuvem Evolução dos serviços e produtos de TI sob demanda Utility Computing Objetivo da Utility Computing Fornecer os componentes básicos como: armazenamento, CPUs e largura de banda de uma rede como uma mercadoria através de provedores especializados com um baixo custo unitário

Utility Computing Os usuários não precisam se preocupar: Escalabilidade A capacidade fornecida é praticamente infinita Disponibilidade Acesso a qualquer momento Desempenho Tempos de resposta são quase constantes Backups Responsabilidade do provedor Utility Computing Pagamento pela utilização Sem investimentos iniciais em TI O custo cresce de forma linear e previsível com o uso Dependendo do modelo do negócio O provedor de serviços pode repassar o custo de armazenagem, computação e de rede para os usuários finais Já que é realizado a contabilização do uso Utility Computing Suponha que você tenha um requisito para operar 100 servidores por três anos Opções: alugar ou comprar? Alugar 0.40 dólares por instância/horas Cálculo: 100 servidores * $ 0.40 por instância/horas * 3 anos * 8760 horas/ano = $ 1.051.200

Utility Computing Comprar Custo para comprar cada servidor: $ 750 dólares Dois funcionários para administrar os servidores pagando 100.000 dólares por ano. Os servidores exigem 150 watts cada e o custo da eletricidade é de 0.10 por quilowatt-hora O custo anual para operar os 100 servidores é de 13.140 dólares Utility Computing Comprar e administrar : Cálculo 100 servidores * $ 750 + 3 anos * $ 13.140 eletricidade/ano + 3 anos * 2 funcionários * $ 100.000 salários/ano = $ 714.420 Comparativo Alugar: $ 1.051.200 Comprar: $ 714.420 Utility Computing Comparativo Se a utilização for de 100% Melhor comprar Se a utilização for de 68% ou menor Melhor alugar Mesmo considerando que Os números apresentados são apenas estimativas Nem todos os custos foram considerados Pode-se verificar que modelo de Utility Computing é preferível em muitos casos

Computação em nuvem O NIST (National Institute of Standards and Technology) define computação em nuvem como um paradigma em evolução Definições, casos de uso, tecnologias, problemas, riscos e benefícios sobre nuvem serão redefinidos e evoluirão com o tempo Modelo de nuvem do NIST é composto: Cinco características essenciais Três modelos de serviço Quatro modelos de implantação Computação em nuvem Definição (NIST) Computação em nuvem é um modelo que possibilita acesso, de modo conveniente e sob demanda, a um conjunto de recursos computacionais configuráveis que podem ser rapidamente adquiridos e liberados com mínimo esforço gerencial ou interação com o provedor de serviços Definição (Berkeley) A computação em nuvem é um conjunto de serviços de rede ativados, proporcionando escalabilidade, qualidade de serviço, infra-estrutura barata de computação sob demanda e que pode ser acessada de uma forma simples e pervasiva Modelos de Serviços

SaaS O modelo de SaaS proporciona softwares com propósitos específicos que são disponíveis para os usuários através da Internet Os softwares são acessíveis a partir de vários dispositivos do usuário por meio de uma interface thin client como um navegador Web SaaS O usuário não administra ou controla a infra-estrutura subjacente Rede, servidores, sistemas operacionais, armazenamento, ou mesmo as características individuais da aplicação Exceto configurações específicas Os desenvolvedores se concentram em inovação e não na infra-estrutura Possibilita o desenvolvimento rápido de softwares SaaS O Software está na Web Pode ser acessado pelos usuários de qualquer lugar e a qualquer momento Permite mais integração Entre unidades de uma mesma empresa Outros serviços de software Novos recursos podem ser incorporados automaticamente aos softwares sem que os usuários percebam estas ações Torna a evolução e atualização transparente dos sistemas.

SaaS O SaaS reduz os custos Dispensa a aquisição de licenças de softwares Exemplos de SaaS CRM (Customer Relationship Management) online do Salesforce Google Docs PaaS Oferece uma infra-estrutura de alto nível de integração para implementar e testar aplicações na nuvem O usuário não administra ou controla a infra-estrutura subjacente Rede, servidores, sistemas operacionais ou armazenamento Mas tem controle sobre as aplicações implantadas e as configurações de aplicações hospedadas nesta infra-estrutura PaaS A PaaS fornece: Sistema Operacional Linguagens de Programação Ambientes de Desenvolvimento Auxilia na implementação de softwares Contém ferramentas de desenvolvimento Colaboração entre desenvolvedores.

PaaS Os desenvolvedores dispõem de ambientes escaláveis Mas eles têm que aceitar algumas restrições sobre o tipo de software que se pode desenvolver Limitações que o ambiente impõe na concepção das aplicações Utilização de banco de dados do tipo chavevalor ao invés de banco de dados relacionais. PaaS Permite aos usuários utilizarem serviços de terceiros: Uso do modelo de suporte no qual os usuários se inscrevem para solicitações de serviços de TI ou de resoluções de problemas pela Web Pode-se descentralizar uma certa carga de trabalho e responsabilidades nas equipes de TI das empresas Exemplos de PaaS Google App Engine Aneka IaaS Responsável por prover toda a infraestrutura necessária para a PaaS e o SaaS O principal objetivo é tornar mais fácil e acessível o fornecimento de recursos: Servidores, rede, armazenamento Recursos de computação fundamentais para construir um ambiente de aplicação sob demanda Podem incluir Sistemas Operacionais e Aplicativos

IaaS Possui algumas características: Interface única para administração da infraestrutura API para interação com hosts, switches, balanceadores e roteadores Suporte para a adição de novos equipamentos de forma simples e transparente IaaS O usuário não administra ou controla a infra-estrutura da nuvem Tem controle sobre os sistemas operacionais, armazenamento e aplicativos implantados seleciona componentes de rede, tais como firewalls Virtualização A infra-estrutura pode escalar dinamicamente, aumentando ou diminuindo os recursos de acordo com as necessidades das aplicações IaaS Do ponto de vista de economia e legado Ao invés de comprar novos servidores e equipamentos de rede para a ampliação de serviços, pode-se aproveitar os recursos ociosos disponíveis Adicionar novos servidores virtuais à infraestrutura existente de forma dinâmica Exemplos de IaaS: O Amazon EC2 (Elastic Cloud Computing) Eucalyptus (Elastic Utility Computing Architecture Linking Your Programs To Useful Systems)

Modelos de Implantação Privado Público Híbrido Comunidade Privado A infra-estrutura de nuvem é utilizada exclusivamente para uma organização Nuvem local ou remota Administrada pela própria empresa ou por terceiros São empregados políticas de acesso aos serviços Gerenciamento de redes Configurações dos provedores de serviços Utilização de tecnologias de autenticação e autorização Público A infra-estrutura de nuvens é disponibilizada para o público em geral Acessível por qualquer usuário que conheça a localização do serviço. Não podem ser aplicadas restrições de acesso Gerenciamento de redes ou aplicar técnicas de autenticação e autorização

Comunidade Ocorre o compartilhamento por diversas empresas de uma nuvem A nuvem é suportada por uma comunidade específica que partilhou seus interesses A missão, os requisitos de segurança, política e considerações sobre flexibilidade Este modelo de implantação Pode existir localmente ou remotamente Pode ser administrado por alguma empresa da comunidade ou por terceiros Híbrido Existe uma composição de duas ou mais nuvens Privadas Pública Comunidade Nuvens híbridas são consideradas como entidades únicas Ligadas por uma tecnologia padronizada ou proprietária Permite a portabilidade de dados e aplicações Características Essenciais Self-service sob demanda Amplo acesso Pooling de recursos Elasticidade rápida Serviço medido

Self-service sob demanda O usuário pode adquirir unilateralmente recursos computacionais Tempo de processamento no servidor ou armazenamento na rede Na medida em que necessite Sem precisar de interação humana com os provedores de cada serviço Self-service sob demanda O hardware e o software dentro de uma nuvem Podem ser automaticamente reconfigurados e orquestrados Modificações são apresentadas de forma transparente para os usuários com perfis diferentes Podem personalizar seus ambientes computacionais Instalação de software e configuração de rede para a definição de determinados privilégios Amplo acesso Recursos são disponibilizados por meio da rede e acessados através de mecanismos padronizados possibilitam o uso por plataformas Thin ou Thin Client Celulares, Laptops e PDAs

Amplo acesso A interface de acesso a nuvem não obriga os usuários a mudar suas condições e ambientes de trabalho Linguagens de Programação e Sistema Operacional Os softwares clientes instalados localmente para o acesso à nuvem são leves Como um navegador de Internet Pooling de recursos Os recursos computacionais do provedor são organizados em um pool para servir múltiplos usuários Modelo multi-tenant Diferentes recursos físicos e virtuais são dinamicamente atribuídos e ajustados de acordo com a demanda dos usuários Pooling de recursos Os usuários não precisam ter conhecimento da localização física dos recursos computacionais Podendo somente especificar a localização em um nível mais alto de abstração País, estado ou datacenter

Elasticidade rápida Recursos podem ser adquiridos de forma rápida e elástica Em alguns casos automaticamente Escalável com o aumento da demanda Liberados na retração dessa demanda Os recursos disponíveis para uso Parecem ser ilimitados Podem ser adquiridos em qualquer quantidade e a qualquer momento Elasticidade rápida A virtualização ajuda na característica de elasticidade rápida na computação nuvem Cria várias instâncias de recursos requisitados utilizando um único recurso real A virtualização é uma maneira de abstrair características físicas de uma plataforma computacional dos usuários Exibe outro hardware virtual e emula um ou mais ambientes que podem ser independentes ou não Serviço medido Sistemas em nuvem automaticamente controlam e otimizam o uso de recursos por meio de uma capacidade de medição A automação é realizada em algum nível de abstração apropriado para o tipo de serviço Armazenamento, processamento, largura de banda e contas de usuário ativas O uso de recursos pode ser monitorado e controlado Transparência para o provedor e o usuário

Serviço medido Para garantir o QoS (Quality of Service) Níveis de acordo de serviço SLA (Services Level Agreement) O SLA tem informações sobre os níveis Disponibilidade Funcionalidade Desempenho Faturamento Penalidades Papéis na nuvem Arquitetura Baseada em camadas Cada uma trata de uma particularidade Divide logicamente os componentes Hardware Software Agrupa componentes por interesse Gerenciamento e monitoramento independente

Arquitetura Fornece: Escalabilidade Reusabilidade Flexibilidade Substitui ou adiciona recursos sem afetar outras camadas Independência Arquitetura Infra-estrutura física Contém: Datacenters Clusters Desktops Outros recursos de hardware Recursos heterogêneos Flexibilidade de agregação de novos recursos a medida que se tornem necessários

Camada de middleware Gerencia a infra-estrutura física Fornece o núcleo lógico da nuvem Contém: Negociações de QoS Gerenciamento dos SLA Serviços de cobrança Preço Serviços de virtualização Outros serviços Camada de desenvolvimento Fornece suporte para a construção das aplicações Contém: Ferramentas Ambientes de desenvolvimento Os ambientes possuem: Interfaces Web 2.0 Marshups Suporte a workflows Bibliotecas Linguagens de programação Camada utilizada por usuários experientes Outras camadas Camada de aplicação Camada utilizada pelos usuários finais Disponibiliza as aplicações implantadas na nuvem Camada de gerenciamento e adaptações Camada opcional Fornece adaptação as soluções em nuvem automática semi-automática Diminui esforços humanos para gerenciar arquiteturas de nuvem

TECNOLOGIAS MapReduce Programação Funcional Operações funcionais não modificam as estruturas de dados Sempre criam novas Os dados originais permanecem na forma não modificada Os fluxos de dados estão implícitos no programa workflows Ordem de operações não importa

Programação Funcional fun foo(l: int list) = sum(l) + mul(l) + length(l) A ordem de sum(), mul() e length(), não importa e não modifica I Paralelismo Implícito no Map Os elementos de uma lista a ser calculada pelo mapa, não podem ver os efeitos dos cálculos sobre outros elementos Isolamento Se a ordem de aplicação de f para elementos na lista é comutativa, podemos reordenar ou paralelizar a execução Este é o segredo que explora MapReduce Processamento em Larga Escala Processamento em grandes quantidades de dados (> 1 TB) Fornecer paralelismo em centenas e milhares de CPU MapReduce Paralelização automática e distribuição Tolerante a falhas Fornece ferramentas de status e acompanhamento Abstração para programadores

Map Registros da fonte de dados linhas de arquivos, linhas de um banco de dados, etc São alimentados em função do mapa como pares chave * valor Por exemplo(nome do arquivo, linha) map() produz um ou mais valores intermediários, juntamente com uma chave de saída Reduce Após a fase de map, todos os valores intermediários para uma dada chave de saída são combinadas em uma lista reduce() que combina os valores intermediários em um ou mais valores para a mesma chave de saída MapReduce

Paralelismo map() funções em paralelo, criando diferentes valores intermediários a partir de conjuntos de dados de entrada diferentes reduce() funções que também funcionam em paralelo, cada uma trabalhando em uma chave de saída diferente Todos os valores são tratados de forma independente Gargalo: a fase reduce pode não ser iniciada até a fase map está completamente terminada Localidade Programa Master Divide as tarefas com base na localização de dados Tenta ter map das tarefas na mesma máquina como dados de arquivo físico, ou, pelo menos, mesmo rack Tolerância a Falhas Master detecta falhas do trabalhador (worker) Re-executa tarefas map() concluídas e em progresso Re-executa tarefas reduce() em andamento Avisos notificam chaves de entrada/valores que causam falhas no map(), e ignora os valores na re-execução

Otimizações Não pode começar a reduce() até o map() está completo Um controlador de taxa lenta de disco único pode limitar todo o processo Master redundante executa tarefas map lentas Amazon EC2 Amazon Elastic Compute Cloud Objetivos Infra-estrutura como Serviço (IaaS) Concebido para tornar a computação na Web escalável e fácil para os desenvolvedores Utiliza instâncias de máquina virtual Reduzir o tempo necessário para obter e inicializar novas instâncias de um servidor Balanceamento de carga Altera a economia da computação: Pague apenas pela capacidade que você realmente usar

Conceitos Amazon Machine Image (AMI): Inicializável a partir do root Catálogo de usuários AMIs S.O.: Fedora, CentOS, Gentoo, Debian, Ubuntu, Windows Server Pilha de Aplicação: LAMP, mpiblast, Hadoop Instância: Executando uma cópia da AMI Lançamento em menos de 2 minutos Inicia/pára de forma programada Modelo de Segurança da Rede: Controle de acesso explícito Grupos de segurança Infra-estrutura como Serviço Elastic Compute Cloud Compute Simple Storage Service Store Message Simple Queue Service Simplicidade de Uso Criação da Amazon Machine Image (AMI) Upload da AMI no Amazon S3. Configuração de segurança e acesso a rede Escolha os tipos de instâncias que você quer executar Cria, termina e monitora várias instâncias de seu AMI conforme necessário, utilizando as APIs de serviços Web Paga por horas de instâncias e largura de banda que você realmente consome. Conexão com a AMI através de SSH

Atribuição de Preços Pagamento pelo uso O preço é por instância/horas consumido para cada tipo de instância Instância/hora consumida, parcialmente, são tarifadas como hora completa $0.10 - Small Instance (Default) 1.7 GB de memória, 1 EC2 unid. de computação (1 virtual core com 1 EC2 unid. de computação), 160 GB de instâncias de armazenamento, plataforma 32-bit $0.40 - Large Instance 7.5 GB de memória, 4 EC2 unid. de computação (2 virtual cores com 2 EC2 unid. de computação cada), 850 GB de instâncias de armazenamento, plataforma 64-bit $0.80 - Extra Large Instance 15 GB de memória, 8 EC2 unid. de computação (4 virtual cores com 2 EC2 unid. de computação cada), 1690 GB de instâncias de armazenamento, plataforma 64-bit Estratégia de Virtualização Utiliza o Xen como máquina virtual Diferente do Vmware e VPC ele usa paravirtualization onde os SOs são modificados para o uso especial de hypercalls Ilusão de estar sendo executado diretamente sobre o hardware Alto desempenho Suporte de hardware da Intel e AMD Suporta Live Migration de uma máquina virtual entre hosts Problemas Local de armazenamento não é persistente Quando você desligar, seus dados são perdidos Necessidade de escrevê-los em outro lugar, mas S3 é grátis! DHCP atribuição de endereços IP Então muda IP quando reiniciado instância Difícil de usar como um servidor público

Amazon SQS Oferece disponibilidade, escalabilidade e uma fila para armazenamento de mensagens entre computadores Transfere dados facilmente entre componentes distribuídos Por meio de uma API simples Útil para desenvolvedores Garantia de entrega Replicação Fornece segurança contra acessos não autorizados a fila e suas mensagens Amazon Simple Storage Service (S3) Um sistema de arquivos distribuído Armazenamento ilimitado Pagamento pelo uso $0.20 por GB de dados transferidos $0.15 por GB/mês para armazenamento utilizado Fornece um repositório seguro e confiável para armazenar as AMIs Armazena e recupera resultados intermediários dos processos S3 Não é como um sistema típico (raiz única) Os usuários podem ter até 100 buckets Unidade fundamental de armazenamento Nomes dos bucket são globais! Um bucket possui armazenamento ilimitado de arquivos Acesso por REST/SOAP

Amazon SimpleBD É um WS que disponibiliza funcionalidades de BD em nuvem Escalável API simples para armazenamento e acesso Sintonia automática na indexação S3 armazena dados brutos Cria índices em múltiplas dimensões Permite a rápida consulta de dados Utilizado para guardar o estado global do sistema Armazena os metadados referentes aos objetos contidos no S3 Eucalyptus Eucalyptus Projeto Eucalyptus Elastic Utility Computing Architecture Linking Your Programs To Useful Systems É uma infra-estrutura de software de livre para implementação de sistemas de computação em nuvem Compatível com o Amazon EC2

Componentes Cloud Controller (CLC) Cluster Controller (CC) Node Controller (NC) Storage Controller (SC) Walrus (put/get storage) Arquitetura Amazon EC2 Interface Client-side API Translator Cluster Controller Cloud Controller Node Controller Representação

Cloud Controller É o ponto de entrada na nuvem para: administradores, projetistas, desenvolvedores e usuários finais É responsáveis pelas consultas aos nodes e decisões de escalonamento por meio de requisições aos clustercontrollers Cluster Controller Geralmente é executado na máquina front-end ou em alguma máquina que tem conexão com todos os nodes São responsáveis por tomar informações sobre as maquinas virtuais ou sobre o tempo de execução das VMs Node Controller É executado em todo Node que hospeda uma maquina virtual É responsável por gerenciar a execução, inspeção e finalização das máquinas virtuais

Storage Controller Implementa um bloco de armazenamento na rede É capaz de interagir com diversos sistemas de armazenamento (NFS, ISCSI, etc) Um bloco de armazenamento elástico é um dispositivo de bloco que pode ser conectado a uma máquina virtual Walrus (put/get storage) Permite aos usuários armazenar dados persistentes organizados como registros e objetos Cria e apaga listas de registros Retorna e apaga objetos Controla política de acesso Benefícios Expansibilidade Arquitetura simples e APIs internas Interface para o cliente Interface e funcionalidades do Amazon EC2 Rede Redes privadas virtuais por nuvem Segurança Deve ser compatível com as regras de segurança locais Virtualização Servidores, rede, armazenamento, etc

Microsoft Azure Microsoft Azure A Plataforma de Serviços Azure da Microsoft é um grupo de tecnologias da nuvem Fornece um conjunto específico de serviços para desenvolvedores de aplicativos Pode ser usada tanto por aplicativos em execução na nuvem quanto por aqueles executados em sistemas locais Microsoft Azure

Principais Componentes Windows Azure: Fornece um ambiente baseado no Windows para executar aplicativos e armazenar dados nos servidores dos centros de dados da Microsoft Microsoft.NET Services: Oferece serviços de infra-estrutura distribuídos para aplicativos baseados em nuvem e locais Microsoft SQL Services: Fornece serviços de dados na nuvem baseados no SQL Server Live Services: Fornece acesso aos dados a partir de aplicativos Live da Microsoft e outros. Windows Azure Sistema Operacional para serviços na nuvem Utilizado no ambiente para: Desenvolvimento Hospedagem Gerenciamento dos serviços.net Services Fornece serviços baseados em nuvem que podem ser usados por: Aplicativos locais Aplicativos na nuvem Conjunto de serviços: Escaláveis Orientados ao desenvolvedor Componentes reutilizáveis na nuvem Possibilita o desenvolvimento focado na lógica da aplicação Abstrai a construção e disponibilização do serviço na infra-estrutura Oferece serviços de infra-estrutura distribuídos para aplicações

Componentes.NET Services Controle de Acesso: Faz com que cada usuário forneça ao aplicativo um token contendo algum conjunto de declarações Identidade Barramento de Serviço: Expõe os serviços de um aplicativo na Internet extensibilidade, flexibilidade e reuso Fluxo de Trabalho: Cria aplicativos compostos, como na integração de aplicativos corporativos requer lógica que coordena a interação entre as várias partes Orquestração Live Services Conjunto de componentes dentro do Azure para o tratamento de: Dados do usuário Recursos da aplicação Possibilita a construção de aplicações ricas que podem conectar com usuários do Windows Live Fornece a sincronização de dados dos usuários Possibilita a extensão de aplicações Web entre múltiplos dispositivos SQL Services Conjunto de serviços baseados em nuvem para armazenar e trabalhar com muitos tipos de dados, de não-estruturados a relacionais Expõe tanto interfaces SOAP como REST Construído sobre o Microsoft SQL Server Não expõe uma interface relacional tradicional Fornece um modelo de dados hierárquico que não exige um esquema pré-definido Cada item de dados armazenado nesse serviço é mantido como uma propriedade com seu próprio nome, tipo e valor

Google App Engine Objetivos Permite a execução de aplicativos da web na infra-estrutura do Google Fácil de criar, manter e escalar à medida que o tráfego e armazenamento de dados precisa crescer Simplicidade Elasticidade Confiabilidade Características Não há necessidade de manter servidores Somente enviar seu aplicativo e ele está pronto para atender a seus usuários Suporta aplicativos criados em várias linguagens de programação Java Phyton Ruby

Lado Comercial Pagamento pelo que usar Não há preços predefinidos nem taxas recorrentes Cobranças por recursos usados pelo seu aplicativo, como: Armazenamento Largura de banda Medidos em GB e cobrados a taxas competitivas O usuário controla a quantidade máxima de recursos que o aplicativo pode consumir Controle adequado ao orçamento Recursos Serviço de Web dinâmico Suporte completo a tecnologias Web Armazenamento persistente Consultas, classificação e transações (BigTable) Ajuste e balanceamento de carga automáticos APIs para autenticação e envio de e-mails através do Google Ambiente de desenvolvimento local com todos os recursos disponíveis no Google Esquema de tarefas programadas Ambientes de Execução O aplicativo pode ser executado em um dos dois ambientes de execução: Java Python Cada ambiente oferece: protocolos padrão tecnologias comuns para o desenvolvimento de aplicativos Web

Sandbox Um ambiente seguro que fornece acesso limitado ao sistema operacional Isola o aplicativo em seu próprio ambiente Seguro e confiável independentemente de hardware, sistema operacional e localização física do servidor da Web Algumas restrições Um aplicativo não pode gravar no sistema de arquivos Limitações de Resposta: deve retornar dados de resposta em 30 segundos O ambiente de execução Java Conjunto de ferramentas comuns de desenvolvimento da Web e padrões de APIs Inclui a plataforma JRE 6 e as suas bibliotecas As restrições do ambiente do sandbox são implementadas na JVM Otimização Um aplicativo pode usar qualquer bytecode JVM ou recurso da biblioteca Desde que não exceda as restrições do sandbox O ambiente de execução Java Para o armazenamento de dados inclui implementações das interfaces JDO (Objetos de dados Java) JPA (API persistente Java) Os serviços também incluem APIs de nível inferior Para implementar adaptadores adicionais Para serem usadas diretamente do aplicativo

O ambiente de execução Phyton É possível implementar o aplicativo e executá-lo em um interpretador otimizado Inclui APIs avançadas e ferramentas para desenvolvimento de aplicativos: Modelagem de dados, gerenciamento e acesso aos dados de forma simples O ambiente fornece APIs abrangentes: Armazenamento de dados, e-mail,... Uso de biblioteca de terceiros desde que Implementadas em Python puro Não exijam nenhum módulo de biblioteca padrão não suportado Armazenamento de dados Fornece um poderoso serviço de armazenamento de dados distribuído que contém: Um mecanismo de consultas Transações O armazenamento de dados não é um banco de dados relacional tradicional (BigTable) Os objetos de dados, ou entidades, têm um tipo e um conjunto de propriedades As consultas recuperam entidades de um tipo determinado, filtradas e classificadas segundo os valores das propriedades Armazenamento de dados As entidades do armazenamento de dados não possuem esquema A estrutura das entidades de dados é fornecida e aplicada pelo código do seu aplicativo O aplicativo pode acessar os dados diretamente Garantia de consistência, integridade e controle de concorrência otimista Uma atualização de entidade ocorre em uma transação com um número fixo de tentativas Caso outros processos estejam tentando atualizar a mesma entidade simultaneamente Confiabilidade Seu aplicativo pode executar diversas operações de armazenamento de dados em uma única transação

Aneka Objetivos Plataforma única de apoio a vários modelos de programação paralela e aplicações distribuídas Arquitetura flexível e extensível QoS corporativo Os aplicativos podem negociar a capacidade necessária Recursos Caracterização Middleware para Grids/Clouds corporativos Arquitetura orientada a serviços Baseado em ambiente.net/mono Linguagens: C#, C++, VB, Delphi, Java/IKVM e mais de 20 linguagens Plataformas: Windows XP/2000/2003 Linux e Mac OS X

Recursos Múltiplos modelos de programação/implantação Múltiplos estratégias de escalonamento Múltiplos modelos de autenticação Múltiplos mecanismos de persistência Múltiplos plataformas e SOs Projetado para ser um middleware configurável com o objetivo de apoiar uma duração indeterminada a um conjunto de abstrações para computação distribuída e implantação cenários Arquitetura Overview do sistema Aneka Container Aneka enterprise Cloud work units Executor Executor Manager internet Executor work units Scheduler internet Manager(s) Executor Workers Manager Client Applications Arquitetura Serviços Scheduling Services: Serviços básicos de escalonamento Suporte para: Pacotes independentes de escalonamento de tarefas Diferentes e acopláveis algoritmos de escalonamento Escalonamento para reservas avançadas Re-sumissão automática/configurada de tarefas diante de falhas Execution Services: Básico do sandboxing Suporte para execução de código legado (PSM) Storage: Múltiplos protocolos baseados em serviços de armazenamento (FTP)