Eu estou começando nessa assunto de microserviços, a palavra escalabilidade na aplicação não foi bem clara para mim.
Se alguém puder me ajudar, agradeço.
Supondo que você criou um sistema em que se considerava um total de 100 acessos por dia.
Obviamente, é um número ínfimo (pense, google, twitter e facebook devem ter uns 100000 acessos por segundo).
De repente, por alguma razão, o sistema começa a receber 1 milhão de requisições por dia.
Obviamente, a tua estrutura não está adaptada para tal volume.
Aí entramos nos conceitos de escalabilidade horizontal e vertical.
Para resolver o problema dos acessos, você decide adicionar mais nós a tua aplicação (como se você criasse réplicas da aplicação para responder em mais de um local). Isso é o que chamamos escalabilidade horizontal.
A quantidade de acessos agora está ok. Porém, algumas funcionalidade ficaram mais lentas. Como resolver?
Aí entramos na escalabilidade vertical: adicionar memória e/ou processamento.
Via de regra, não existe obrigatoriedade de escalar verticalmente quando se escala horizontalmente e vice-versa. Pode ocorrer, mas não é obrigatório.
Muito obrigado, agora entendi.
Depende do contexto.
Escalabilidade é uma palavra herdada do montanhismo.
Tem haver com o tamanho da montanha, o caminho escolhido, a estratégia adotada, etc.
Nesse caso, a escalabilidade tem mais haver com o crescimento de algo.
Quando um novo serviço é fornecido podemos dizer que há escalabilidade.
Digamos que sua aplicação fornece os serviços A, B e C.
Depois passa a fornecer os serviços D, E e F.
Depois G, H, J.
Então, os micro serviços tem a escalabilidade modular ou seja, vc vai adicionando novos modulos/serviços.
Aí entra avaliações sobre como manter o desempenho, integração, manutenção, etc.
Mas em qualquer caso, está associado com custos.
Aplicação que não traz algum tipo de retorno não escala, não naturalmente.