Arquitetura de microsserviço - dimensionamento
O dimensionamento é um processo de decompor um software em unidades diferentes. O dimensionamento também define em termos de escalabilidade. Escalabilidade é o potencial para implementar mais recursos avançados do aplicativo. Isso ajuda a melhorar a segurança, durabilidade e capacidade de manutenção do aplicativo. Temos três tipos de procedimentos de escalonamento que são seguidos nas indústrias. A seguir estão as diferentes metodologias de dimensionamento junto com os exemplos correspondentes da vida real.
Dimensionamento do eixo X
A escala do eixo X também é chamada de escala horizontal. Neste procedimento, todo o aplicativo é subdividido em diferentes partes horizontais. Normalmente, qualquer aplicativo de servidor da web pode ter esse tipo de escala. Considere uma arquitetura MVC normal que segue a escala horizontal, conforme mostrado na figura a seguir.
Como exemplo, podemos considerar qualquer aplicativo de servlet JSP. Nesta aplicação, o controlador controla todas as solicitações e irá gerar visualização comunicando-se com o modelo sempre que necessário. Normalmente, os aplicativos monolíticos seguem este método de dimensionamento. O dimensionamento do eixo X é muito básico por natureza e consome muito menos tempo. Nesta metodologia, um software será dimensionado dependendo das diferentes tarefas pelas quais a unidade é responsável. Por exemplo, o controlador é responsável por controlar a solicitação de entrada e saída, a visualização é responsável por representar a funcionalidade do negócio para os usuários no navegador, enquanto o modelo é responsável por armazenar nossos dados e funciona como banco de dados.
Dimensionamento do eixo Y
A escala do eixo Y também é chamada de escala vertical que inclui qualquer escala de nível de recurso. Qualquer sistema DBaaS ou Hadoop pode ser considerado dimensionado para o eixo Y. Nesse tipo de escalonamento, a solicitação do usuário é redirecionada e restringida pela implementação de alguma lógica.
Vamos considerar o Facebook como um exemplo. O Facebook precisa lidar com 1,79 milhão de usuários a cada segundo; portanto, controlar o tráfego é uma grande responsabilidade dos engenheiros de rede do Facebook. Para superar qualquer perigo, eles seguem a escala do eixo Y, que inclui a execução de vários servidores com o mesmo aplicativo ao mesmo tempo. Agora, para controlar esse enorme nível de tráfego, o Facebook redireciona todo o tráfego de uma região para um servidor específico, conforme mostrado na imagem. Essa transferência de tráfego com base na região é chamada de balanceamento de carga na linguagem arquitetônica.
Este método de dividir recursos em pequenas unidades de negócios independentes é conhecido como dimensionamento do eixo Y.
Dimensionamento do eixo Z
A escala dos eixos X e Y é muito mais fácil de entender. No entanto, um aplicativo também pode ser dimensionado no nível de negócios, o que é chamado de dimensionamento do eixo Z. A seguir está um exemplo de dimensionamento de um aplicativo de serviço de táxi em diferentes verticais de unidades de negócios.
Vantagens do dimensionamento
Cost - O dimensionamento adequado de um software reduzirá o custo de manutenção.
Performance - Devido ao acoplamento fraco, o desempenho de um software dimensionado corretamente é sempre melhor do que um software não dimensionado.
Load distribution - Usando diferentes tecnologias, podemos facilmente manter a carga do nosso servidor.
Reuse - A escalabilidade de um software também aumenta a usabilidade do software.