Para ele, escalabilidade é tornar possível aumentar o workload de uma aplicação adicionando mais recursos. Obviamente esta estratégia possui um limite, simplesmente adicionar mais discos, processadores ou quaisquer outros dispositivos de hardware não resolverá problemas de escalabilidade. E este é um ponto interessante, pois ele considera escalabilidade apenas como adicionar novos recursos, leia-se hardware. Não seria a escalabilidade também implementada via software, sistemas distribuídos como o Google File System, por exemplo? A resposta é sim. E estas duas formas de conseguir escalabilidade são conhecidas como escalabilidade vertical e escalabilidade horizontal, respectivamente. Este post fornece um bom esclarecimento sobre cada uma delas.
Enquanto escalabilidade visa aumentar o workload de uma aplicação, ignorando a utilização ou não-utilização dos recursos disponíveis, elasticidade refere-se à habilidade de aumentar ou diminuir os recursos necessários para a execução da aplicação, on-the-fly. Deve-se notar que: possuir elasticidade não significa ser escalável.
No embalo da carruagem, Ricky Ho também mencionou outras características de aplicações na nuvem:
- Statelessness: Evitar criar aplicações que armazenem estado
- Minimizar o impacto causado pela movimentação de dados durante balanceamento de carga
- Bons algoritmos para gerenciar o grau de elasticidade
Nenhum comentário:
Postar um comentário