Pesquisar neste blog

quinta-feira, 29 de maio de 2014

Arquitetura de Nuvem - Desafios e Oportunidades

O que é computação em Nuvem?


Segundo o Gartner Group (2010), Computação em Nuvem é um estilo de computação no qual recursos de TI, massivamente escaláveis são disponibilizados sob forma de serviços, por meio da Internet, para múltiplos consumidores externos.
De acordo com a Amazon (2006), Cloud Computing (Computação em Nuvem), refere-se a um ambiente de TI distinto que é projetado com o propósito de provisionar remotamente recursos de TI escaláveis e mensuráveis. Qualquer protocolo pode ser utilizado para acesso aos recursos remotos de TI.

Conceito NIST (National Institute of Standards and Technology)



Algumas Pesquisas

Uma pesquisa realizada pela CapGemini, com base em 460 entrevistas com executivos de TI e tomadores de decisões de negócio, através de sete setores e países selecionados por regiões chave, revela os principais motivos da adoção da Computação em Nuvem pelas empresas conforme indicação no gráfico abaixo:

Estratégia de adoção da Nuvem


Quem toma a decisão sobre a Nuvem


Pesquisas feitas pelo Gartner





A primeira pesquisa foi focada nas três principais preocupações que os profissionais de Datacenter têm com a computação em nuvem pública. A pontuação ponderada para "Segurança e Privacidade" foi maior do que a pontuação para as próximas preocupações juntas. 

As próximas pesquisas focam em planos de computação em nuvem pública contra planos de computação em nuvem privada. Três quartos disseram que estavam ou estariam buscando uma estratégia de computação em nuvem privada até 2012 (apenas 4% disseram que não estavam). Três quartos disseram que iriam investir mais em computação em nuvem privada do que na computação em nuvem pública até 2012. 

A pesquisa final focou-se nos desafios com a computação em nuvem privada. "Tecnologia", foi considerado sexto dos sete desafios oferecidos. "Gestão e Processos Operacionais" ficou em primeiro lugar, seguido de "Financiamento / Chargeback Model." 

Os Processos, as pessoas e as mudanças de relacionamento serão os maiores desafios com a computação em nuvem privada do que a Tecnologia.

Alguns exemplos de Cloud Computing

Windows Azure
  • Paas+IaaS;
  • Integração com produtos Microsoft;
  • Concorre com Amazon AWS.

GAE (Google App Engine)

  • PaaS;
  • Permite criar aplicações nos DATACENTERs do Google;
  • Nenhum ajuste de desempenho;
  • Nenhuma administração de sistemas.

OpenStack

  • PaaS
  • Coleção de projetos open source;
  • Inicialmente Cloud Files (RACKSPACE) + plataforma NEBULA (NASA);
  • Instalação e configuração não trivial;
  • Documentação em evolução.
Compatibilidade
  • Plataformas incompatíveis;
  • Tecnologias proprietárias;
  • Mobilidade entre nuvens é cara e complexa.
O que é arquitetura de nuvem ?

Arquitetura
  • Definição de arquitetura resultado de um conjunto de decisões técnicas e de negócios
    • Permite comunicação com stakeholders;
    • Permite antecipar decisões;
    • Múltiplas visões.
  • Arquitetura de Nuvem
    • Arquitetura de referência;
    • Requisitos do negócio;
    • Requisitos técnicos.
Arquitetura de referência
  • O quê  e não fazer ?
  • Ilustra os vários serviços de nuvem e os atores
  • Fornece uma referência para comparação de serviços de nuvem
  • Facilita a análise de padrões.
  • Não é a arquitetura de nuvem.




Atores (pessoas ou organizações)
  • Consumidor de Nuvem (Cloud Consumer) - adquire e utiliza serviços de nuvem.
  • Provedor de Nuvem (Cloud Provider) – responsavel por disponibilizar o serviço de nuvem.
  • Integrador de Nuvem (Cloud Broker) – gerencia o uso, desempenho e entrega dos serviços de nuvem e negocia a relação entre CP e CC.
  • Auditor de Nuvem (Cloud Auditor) – conduz a avaliação dos serviços de nuvem com foco em privacidade, desempenho e segurança.
  • Operador de Nuvem (Cloud Carrier) – Fornece conectividade e transporta os serviços entre CP e CC


Arquitetura de Nuvem Regra de Ouro (Jinesh Varia,AWS) 

Seja um pessimista ao projetar arquiteturas na nuvem, presuma que tudo irá falhar. Em outras palavras, sempre projete, implemente e implante arquiteturas considerando a falha.
  • Aplicação;
  • Infraestrutura.

Tolerância a Falhas

Tolerância a falhas pode ser caracterizada como a capacidade de um sistema de permanecer em operação mesmo que alguns dos componentes utilizados para construí-los venham a falhar. Vale para a infraestrutura e para o aplicativo. 

Infraestrutura
  • No caso da infraestrutura, algumas questões precisam ser levantadas : 
    • O que acontecerá se um nó em seu sistema falhar? Como você reconhece esta falha? 
    • Como eu faço para substituir o nó? 
    • Para quais tipos de cenários eu tenho que me planejar? 
    • Quais são meus pontos únicos de falha? 
    • Se um balanceador de carga está disposto na frente de um pool de servidores de aplicativos, o que acontecerá se o balanceador de carga falhar? 
    • Se não houver mestre e escravos na arquitetura, o que acontecerá se o nó mestre falhar? 
    • Como é que ocorre o failover e como é que um novo escravo é instanciado e colocado em sincronia com o mestre?
Aplicação
  • No caso da aplicação , algumas perguntas podem ser respondidas :
    • O que acontecerá com o meu aplicativo se os seus serviços dependentes mudarem suas interfaces? 
    • E se o serviço de downstream expirar ou retornar uma exceção? 
    • E se as chaves de cache crescerem além do limite de memória de uma instância?
Elasticidade 
  • Projetar arquiteturas inteligentes para nuvens elásticas, para que a infraestrutura seja executada somente quando necessária, é uma arte em si. A elasticidade deve ser um dos requisitos do projeto arquitetônico ou mesmo uma propriedade do sistema. 
  • Algumas perguntas se fazem necessárias: 
    • Quais os componentes ou que camadas em minha arquitetura de aplicativo podem se tornar elásticas? 
    • O que será necessário para tornar esse componente elástico? 
    • Qual será o impacto da implementação da elasticidade na arquitetura geral do sistema?
Desafios e Oportunidades

Riscos da Nuvem (Sidney Chaves, Dissertação USP, 2011)
  • Riscos Operacionais afetam o dia a dia da prestação de serviço;
  • Riscos do Negócio envolvem a riscos associados a atitude do Provedor frente a situações críticas;
  • Riscos Estruturais são riscos que podem afetar a prestação de serviços mas no  médio e longo prazo.

Riscos Operacionais
  • Falta de Privacidade;
  • Falhas de Integridade;
  • Erros;
  • Suporte Inadequado;
  • Baixo Desempenho;
  • Ataques por Saturação;
  • Dificuldade para Escalar;
  • Baixa Interoperabilidade.
Riscos de Negócio
  • Indisponibilidade;
  • Não Continuidade.
Riscos Estruturais
  • Não conformidade;
  • Licenciamento de Software;
  • Aprisionamento;
  • Má Reputação.
Não Conformidade Shared Responsability Model (Iaas, por exemplo)






Aprisionamento
  • Soluções
    • Open APIs (OCCI, Zend Simple Cloud API);
    • Middleware (Middleware Cloud Stratus).


Oportunidades
  • Empresas na nuvem:
    • Pequenas (quase tudo);
    • Médias (muitos serviços);
    • Grandes (alguns).


Fontes:
  • http://www.computerweekly.com/feature/A-history-of-cloud-computing;
  • http://en.wikipedia.org/wiki/Cloud_computing;
  • http://www.nist.gov/manuscript-publication-search.cfm?pub_id=909505;
  • http://www.uk.capgemini.com/thought-leadership/business-cloud-the-state-of-play-shifts-rapidly;
  • http://blogs.gartner.com/thomas_bittman/2010/04/21/polling-data-on-publicprivate-cloud-computing/


Nenhum comentário: