domingo, 24 de julho de 2016

Cloud Computing - Considerações sobre design

Cloud Computing - Considerações sobre design

 
 
 
 
 
 
taxa de Este

Cloud Computing é, definitivamente, a transformar-se a cenoura proverbial para as empresas para hospedar seus aplicativos na nuvem pública. A nuvem promete muitos benefícios para os usuários da nuvem. Cloud Computing elimina a necessidade de despesas de capital iniciais para infraestrutura de computação, imobiliário e pessoal de manutenção. Esta tecnologia permite a ampliação ou da redução de demanda sobre a aplicação flutua.
Embora as vantagens são muitas, a migração de aplicativos para a nuvem não é uma tarefa trivial. A nuvem é essencialmente composto por servidores de commodities. A nuvem cria várias instâncias do aplicativo e executa-lo na mesma ou em diferentes servidores. O benefício de executar em paralelo é que a mesma tarefa pode ser concluída mais rapidamente. A nuvem oferece às empresas a capacidade de escalar rapidamente para lidar com a crescente demanda,
Mas o processo de implantação de aplicativos para a nuvem requer que o aplicativo ser re arquitetada para aproveitar este paralelismo que a nuvem proporciona. Mas a capacidade de lidar com a paralelização não é tarefa simples. Os principais atributos que precisam ser tratadas por sistemas distribuídos é a necessidade de consistência e disponibilidade. Se houver variáveis ​​que precisam ser compartilhados entre as instâncias paralelas, em seguida, o aplicativo deve tomar disposições especiais para lidar com esta situação e garantir consistência. Da mesma forma o pedido deve ser projetado para lidar com falhas.
As aplicações que se destinam a ser implantado na nuvem deve ser projetado para escalabilidade horizontal ao invés de ter a capacidade de escala-up. Intensificação refere-se ao processo de adição de mais cavalos de potência por meio de CPUs mais rápidas, mais memória RAM e processamento mais rápido. Mas os aplicativos que precisam ser implantados na nuvem precisa ter a capacidade de dimensionar ou escala horizontal em que mais servidores são adicionados sem qualquer alteração no processamento de potência. O projeto para a escalabilidade horizontal é a chave para a nuvem arquiteturas de computação.
Alguns dos princípios-chave para manter em mente ao projetar para a nuvem é o de assegurar que a aplicação é composta por processos de baixo acoplamento de preferência com base em princípios de SOA. Enquanto uma arquitetura multi-threaded, onde a partilha de recursos através de semáforos trabalha em aplicações monolíticas tal arquitetura é de nenhuma ajuda quando há várias instâncias do mesmo aplicativo em execução em servidores diferentes. Como é que se manter a consistência do recurso compartilhado entre instâncias? Este é um problema difícil de resolver.Idealmente, a aplicação deve ser segmento seguro e deve ser baseada em uma compartilhada - nada tipo de arquitetura. Uma dessas técnicas é a utilização de filas que a nuvem fornece como um meio de partilhar entre instâncias. No entanto, isto pode ter impacto na performance do sistema. Outros métodos incluem o uso de 'memcached' que tem sido utilizado com sucesso por Facebook, Twitter, LiveJournal, Zynga etc implantado na nuvem. Ainda outro método é usar o algoritmo Map-Reduce onde as variáveis ​​ao longo casos são tratados pelo "mapa" e a parte "reduzir" lida com a consistência entre as instâncias.
Outra consideração importante é a necessidade de apoiar os requisitos de disponibilidade. Desde a nuvem é composta de hardware commodity não há qualquer possibilidade de servidores falha. O pedido deve ser projetado com resistência inata para lidar com essas falhas. Isso poderia através da concepção de arquitetura ativo-standby ou pelo fornecimento de pontos de verificação de modo que a aplicação pode reiniciar a partir de algum ponto anterior conhecida.
Assim, enquanto a computação em nuvem é o caminho a percorrer no futuro, há uma necessidade de ser capaz de projetar cuidadosamente o aplicativo para que todo o proveito da nuvem podem ser tomadas.

Nenhum comentário:

Postar um comentário