Cloud Computing e os desafios na Arquitetura de Software
Muito se tem falado sobre Cloud Computing, mas esse é um conceito que há muito tempo já é utilizado. Um exemplo claro disso são os serviços de webmail terceirizados oferecidos para empresas, onde se paga pela quantidade de armazenamento utilizado. Entretanto, o termo se popularizou com a disponibilização simplificada de recursos computacionais (processamento e memória) sobre demanda (pague o que utilizar) para pequenas e médias empresas. Isso possibilitou que essas empresas, normalmente sem muito dinheiro em caixa, não precisassem pagar por máquinas caras à espera de uma possível grande carga em seus sistemas. Agora é possível pagar por poucos recursos computacionais em momentos de pouca utilização e por mais recursos quando o tráfego aumenta. Isso tráz um grande ganho e melhores resultados a essas empresas.
A popularização desses mecanismos, representado principalmente pelo Amazon Elastic Compute Cloud (Amazon EC2, http://aws.amazon.com/ec2/), cria a cada dia novas oportunidades para pequenos sistemas competirem com grandes e ricos sites. Porém, tráz também grandes desafios para os arquitetos de software. Com a facilidade de adicionar novas máquinas à estrutura que suporta a sua aplicação, como projetar um sistema que pode ter partes sendo migradas para outras máquinas em busca de mais recursos? Como gerenciar, de forma segura e eficiente, os dados que terão que trafegar entre essas novas máquinas? Quando é realmente necessário mais recursos? Como otimizá-los para não pagar pelo que não é necessário?
Tentarei discutir mais sobre esses desafios em meus próximos posts…


Comments