Share via


Computação em nuvem: Desafios de configuração da nuvem

A seleção, a configuração e o desempenho de seus aplicativos baseados em nuvem terão um impacto imenso sobre o desempenho.

Dan Marinescu

Adaptado de "computação em nuvem: Teoria e prática"(Elsevier Science & Livros de tecnologia)

Desenvolvimento de aplicativos eficientes nuvem vem com muitos dos mesmos desafios decorrentes dos desequilíbrios naturais encontrados em ciência da computação, comunicação e e/s de largura de banda de sistemas físicos. Estes desafios são grandemente amplificados pela escala do sistema, sua natureza distribuída e o fato de que praticamente todos os aplicativos são muitos dados.

Apesar de qualquer infra-estrutura de computação em nuvem idealmente tentará automaticamente distribuir e equilibrar as cargas de processamento, você ainda ficará com a responsabilidade de colocar os dados próximo ao local de processamento e identificação de sua estratégia de armazenamento ideal. Uma das principais vantagens do cloud computing — a infra-estrutura compartilhada — também pode ser uma desvantagem.

Isolamento de desempenho é quase impossível de alcançar em um sistema real, especialmente quando o sistema é fortemente carregado. Isto é ainda mais difícil com cloud computing. O desempenho de máquinas virtuais (VMs) varia com base na carga, serviços de infra-estrutura, meio ambiente e número de usuários. Isolamento de segurança é outro fator desafiador para identificar em sistemas de múltiplos inquilinos.

Confiabilidade também é uma grande preocupação. Você pode esperar de falhas de nó sempre que um grande número de nós de competir por recursos de computação. Escolher uma instância ideal (em termos de isolamento de desempenho, confiabilidade e segurança) do que aqueles oferecidos pela infra-estrutura de nuvem é um fator crítico. Considerações de custo também desempenham um papel na escolha do tipo de instância.

A experiência da app

Muitas aplicações consistem de múltiplos estágios. Cada etapa pode envolver várias instâncias em execução em paralelo sobre os sistemas de nuvem e a comunicação entre eles. Assim, eficiência, consistência e comunicação escalabilidade são grandes preocupações para um desenvolvedor de aplicativos. Devido às redes compartilhadas e topologia desconhecida, infra-estruturas em nuvem apresentam latência entrenó e flutuações de largura de banda que freqüentemente afetam o desempenho do aplicativo.

Armazenamento de dados desempenha um papel crítico no desempenho de qualquer aplicativo de dados intensivos. Organizar o armazenamento, escolhendo o local de armazenamento e gerenciamento de largura de banda de armazenamento devem todos ser analisado cuidadosamente para desempenho otimizado dos aplicativos. Nuvens apoiar muitas opções de armazenamento, incluindo o armazenamento em nuvem da instância, montável bloco fora-instância armazenamento e armazenamento persistente para o tempo de vida da instância.

Muitas aplicações intensivas em dados usam metadados associados com os registros de dados individuais. Por exemplo, os metadados para um arquivo de áudio MPEG podem incluir o nome da canção, o cantor, gravando informações e assim por diante. Metadados devem ser armazenados para facilitar o acesso e o armazenamento deve ser escalável e confiável.

Outra consideração importante para o desempenho do aplicativo é log. É um equilíbrio delicado. Considerações sobre desempenho limita a quantidade de registro de dados, Considerando que a capacidade de identificar a fonte de resultados inesperados e erros é ajudada por log freqüente. Log é geralmente feito usando armazenamento de instância preservado apenas para o tempo de vida da instância. Assim, você sempre deve tomar medidas para preservar os registros para uma análise post-mortem.

Oportunidades de aplicação

Você pode dividir a aplicativos de nuvem existentes em várias categorias amplas: oleodutos, aplicações Web e sistemas de processamento em lote de processamento. As tubulações de processamento são aplicativos de dados intensivos e frequentemente computação intensiva. Estes representam um segmento bastante grande de aplicativos atualmente em execução na nuvem. Existem vários tipos de aplicações de processamento de dados:

  • **Indexação:**O pipeline de processamento suporta indexação de grandes conjuntos de dados criados por motores de rastreador da Web.
  • **Mineração de dados:**O pipeline de processamento suporta a pesquisa grandes coleções de registros para localizar itens de interesses.
  • Processamento de imagem: Algumas empresas deixem você armazenar imagens em nuvem, tais como Flickr e Google. Os pipelines de processamento de imagem oferecem suporte a criptografia, compactação e conversão de imagem.
  • **Transcodificação de vídeo:**A transcodifica de pipeline de processamento de um formato de vídeo para outro (por exemplo, de AVI para MPEG).
  • **Processamento de documentos:**O pipeline de processamento converte grandes coleções de documentos de um formato para outro (por exemplo, a partir do Word para PDF) ou criptografa os documentos. Também poderia usar reconhecimento óptico de caracteres (OCR) para produzir imagens digitais de documentos.

Sistemas de processamento em lote também abrangem um amplo espectro de aplicações intensivas em dados em computação empresarial. Tais aplicações têm tipicamente os prazos. Falha de cumprir esses prazos poderia ter graves consequências económicas. A segurança também é um aspecto crítico para muitas aplicações de processamento em lote. Uma lista não-exaustiva de aplicações de processamento em lote inclui:

  • Gerando diariamente, relatórios de actividades semanal, mensal e anual para as organizações em varejo, manufatura e outros sectores económicos.
  • Processamento, agregando e resumindo transações diárias para instituições financeiras, seguradoras e organizações de cuidados de saúde.
  • Gestão de inventário para grandes corporações.
  • Processamento de folha de pagamento e faturamento --record
  • Gerenciamento de desenvolvimento de software (como atualizações noturnas de repositórios de software).
  • Testes automáticos e verificação de sistemas de software e hardware.

Finalmente, e de importância crescente, são aplicativos de nuvem para acesso à Web. Várias categorias de sites da Web têm um periódico ou uma presença temporária, tais como os sites da Web para conferências ou outros eventos. Também existem sites que são ativos durante uma temporada especial como o Natal. Eles também podem oferecer suporte a um determinado tipo de atividade, tais como imposto de renda, relatórios com o prazo de 15 de abril de cada ano. Outros sites da Web de tempo limitado usados para atividades promocionais "sono" durante a noite e escala automática durante o dia.

Faz o sentido econômico para armazenar os dados na nuvem perto de onde o aplicativo é executado. O custo por GB é baixo e o processamento é mais eficiente quando os dados são armazenados perto os servidores. Isto pode levar a várias novas classes de aplicações de computação em nuvem nos anos vindouros. Por exemplo, pode haver o processamento em lote para sistemas de apoio à decisão e outros aspectos da análise de negócios.

Outra classe de novas aplicações pode ser processamento paralelo em lotes com base em abstrações de programação. Móveis aplicações interativas que processam grandes volumes de dados de diferentes tipos de sensores e serviços que combinam mais de uma fonte de dados são candidatos óbvios para cloud computing.

Ciência e engenharia poderiam beneficiar muito de porque muitos aplicativos nestas áreas são computação e dados-intensivos de computação em nuvem. Da mesma forma, uma nuvem dedicada à educação seria extremamente útil. Softwares matemáticos como MATLAB e Mathematica também poderiam executar na nuvem.

Desenvolvimento de aplicações, seleção, configuração e ajuste tudo de desempenho tornam-se atividades essenciais ao equilíbrio de um ambiente de computação em nuvem. Você terá muitas aplicações rodando em muitas maneiras diferentes, e a pilha do aplicativo será necessário algum controlo e manutenção.

Dan C. Marinescu

Dan C. Marinescu foi professor de ciência da computação na Universidade de Purdue de 1984 a 2001. Então ele se juntou ao departamento de ciência da computação da Universidade da Flórida Central. Ocupou cargos de professores visitando na IBM T. J. Watson Research Center, Instituto de Ciências da informação em Pequim, a divisão de sistemas escalonáveis de Intel Corp., Deutsche Telecom AG e INRIA Rocquencourt na França. Sua pesquisa interesses tampa paralela e sistemas distribuídos, computação em nuvem, científica computação, computação e quântica informação teoria quântica.

Para mais informações sobre este e outros títulos da Elsevier, confira Elsevier Science & Livros de tecnologia.

Conteúdo relacionado