3 Estratégias para Escalar Aplicações

Em minhas consultorias, quando questionado sobre escalabilidade, recorro sempre ao scale cube, compartilhado no excelente livro “The Art of Scalability”, como abstração para indicar as opções disponíveis.

A proposta é pensar alternativas para escalabilidade em três dimensões. Cada eixo, representando uma estratégia distinta, porém não exclusiva as demais.

  • Eixo X – Rodar múltiplas instâncias de um mesmo serviço, acessadas via balanceador de carga. Costumamos chamar aplicações que escalam dessa forma como “escaláveis na horizontal”, dado que o suporte a mais demanda é resolvido com a adição de mais unidades de computação (um outro servidor).
  • Eixo Z – Assim como ocorre no Eixo X, temos múltiplas instâncias de servidor, rodando exatamente o mesmo código. A grande diferença é que cada servidor trata apenas uma parcela dos dados. No lugar de um balanceador de carga, temos um Router identificando a demanda de cada requisição e encaminhando para o servidor responsável. Nesta dimensão, estamos falando sobre sharding.
  • Eixo Y – Diferentemente dos eixos X e Z, que rodam múltiplas instâncias idênticas da aplicação, a estratégia para o eixo Y é decompor a aplicação em diferentes serviços. Cada serviço, responsável por uma ou mais atividades relacionadas. Esta é a estratégia mais próxima da arquitetura baseada em microsserviços.

As três abordagens são extremamente poderosas e não excludentes. Podemos ter réplicas (Eixo X) tratando de um mesmo pedaço de dados (Eixo Z), por exemplo. A forma de pensar a escala será parte da definição arquitetural.

Se tiver interesse em entender mais sobre microsserviços, recomendo que acesse o Guia de Conteúdo para Microsserviços deste site.

Capa: Vladimir Kudinov

Compartilhe este insight:

4 respostas

  1. Olá, Elemar.

    Muito bacana, só fiquei meio confuso na definição do último eixo, o Y. Acho que você confundiu o eixo Y com o Z. Mas muito interessante esta abordagem. Até mais.

    1. Olá Elemar!

      Acredito que o comentário que o nosso colega, Guilherme Soares, quis dizer foi sobre o texto escrito para a explicação sobre o Eixo Y.

      “Eixo Y – Diferentemente dos eixos X e Y… “, quando seria “Eixo Y – Diferentemente dos eixos X e Z…”.

      Parabéns pela iniciativa em escrever sobre assuntos voltado a design de soluções arquiteturais.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Elemar Júnior

Sou fundador e CEO da EximiaCo e atuo como tech trusted advisor ajudando diversas empresas a gerar mais resultados através da tecnologia.

Elemar Júnior

Sou fundador e CEO da EximiaCo e atuo como tech trusted advisor ajudando diversas empresas a gerar mais resultados através da tecnologia.

Mais insights para o seu negócio

Veja mais alguns estudos e reflexões que podem gerar alguns insights para o seu negócio:

Uma das premissas fundamentais do conceito de contrato social é que nós, como indivíduos livres, abrimos mão do direito natural...
Agora em fevereiro, depois de 18 meses, fechei meu ciclo como CTO na Guiando para integrar o conselho consultivo da...
Nessa última semana, Fernando Neiva apresentou um compilado de nossas lições aprendidas implementando Kanban na Guiando. Aqui, compartilhamos o registro...
In the previous post, I mentioned Mario Fusco who wrote a blog post series questioning the way Java developers are...
To write parallel code is not a trivial task. There are details to consider and rules to observe. Could you...
Tentando ser “Júnior” Minha carreira como amador remunerado em programação começou em 1992. Eu tinha quase 13 anos e era...