Skip to main content

Command Palette

Search for a command to run...

Guia para escalar seu App - parte 2

Updated
3 min read
Guia para escalar seu App - parte 2

Artigo em formato áudio:

Esse post é o segundo de uma série de 4 posts sobre arquitetura de software

Primeira parte aqui

Leosalesapp 5.0 - Adicionando Cache

Após implementar o padrão de microserviço seu app provavelmente deve ser capaz de suportar milhares de acessos dependendo da complexidade do app ele pode ser capaz de atingir até 1 milhão de usuários.

Porém para alguns aplicativos que precisam de muita leitura de dados é preciso otimizar a leitura da base de dados para ser capaz de aguentar picos de tráfego, um evento Black Friday poderia facilmente sobrecarregar o banco de dados, resultando em um apagão da base de dados.

Por isso é importante adicionar uma camada de cache para otimizar as operações de leitura, o mais popular hoje para essa finalidade é o Redis.

O Redis é um banco de dados de memória e adicionaremos os dados mais acessados aliviando o banco de dados relacional ao reduzir o número de operações de leitura executadas no banco de dados convencional, o acesso na memória pode chegar até 1000X mais rápido do que o acesso ao disco.

Para nosso aplicativo de exemplo, implementaremos o cache usando a estratégia de cache de leitura, primeiro os dados serão verificados no Redis se encontrados retornaram imediatamente, caso não sejam encontrados faremos uma consulta no banco de dados e gravados no cache para consulta futura.

Também podemos começar a falar sobre CDN onde ficará todo conteúdo estático do aplicativo (imagens, vídeos, css, js, html e etc).

Uma CDN (Content Delivery Network) serve o conteúdo estático de uma rede de servidores localizados mais perto do usuário final, reduzindo a latência e melhorando a velocidade de carregamento das páginas da Web. Isso resulta em uma melhor experiência do usuário, especialmente para usuários localizados longe do servidor de aplicativos.

Leosalesapp 6.0 - Escalando objetos com AWS S3

Alguns aplicativos necessitam de melhor gerenciamento e escalabilidade de objetos como: imagens, vídeos e outros arquivos.

Utilizando o AWS S3 para expandir o servidor de arquivos ganhamos em durabilidade e armazenamento ilimitado e com uma API fácil de armazenar e recuperar arquivos e também pode atuar diretamente como servidor de origem para a CDN.

Leosalesapp 7.0 - Microserviços

Com o tempo, se o negócio continua crescendo e a empresa continua contratando desenvolvedores, a cama de serviço evolui naturalmente para ser mais granular.

A arquitetura de microsserviços estrutura um aplicativo como uma coleção de serviços pequenos e independentes, com cada serviço executando seus próprios processos e se comunicando entre si por meio de protocolos leves como o gRPC.

Em nosso exemplo, dividimos os serviços em uma camada da Web onde os serviços lidam com solicitações de usuários do cliente.

Os serviços Web encaminham as solicitações para os serviços apropriados na camada de negócios. Aqui temos o serviço ao usuário, o serviço de pedidos e o serviço de inventário como exemplos.

Vale a pena notar que, na arquitetura de microsserviços, os bancos de dados tendem a se tornar específicos do serviço e são gerenciados pelas equipes específicas que possuem esses serviços. Em nosso exemplo, pode haver um cluster de banco de dados de usuário, um cluster de banco de dados de pedidos e um cluster de banco de dados de inventário. Cada um também pode ser fragmentado se as cargas de solicitação exigirem isso.

Em uma arquitetura de microsserviço, também é comum encaminhar solicitações não críticas de latência para filas de mensagens. Isso desacopla a parte crítica de latência do aplicativo daquelas que poderiam ser processadas de forma assíncrona.

Agora temos uma arquitetura de microsserviços completa. No geral, a arquitetura de microsserviços fornece uma maneira de dividir um aplicativo complexo em componentes menores e mais gerenciáveis, levando a uma maior eficiência do desenvolvimento. Isso resolve principalmente um problema organizacional, em vez de um problema técnico.

Termina assim a discussão da segunda parte, até a próxima

Guia de como escalar seu app

Part 2 of 3

Nessa série de artigos, vamos falar sobre escalabilidade de aplicativos exemplificando toda a transformação, de arquitetura monolítica para microserviço incluindo cache, elasticsearch, mensageria etc

Up next

Guia para escalar seu App - parte 1

Como transformar e dar escala para milhões de usuários