Escalar uma aplicação web sem a reescrever

·3 min de leitura

Escalar começa pela carga necessária e pela restrição que a impede.

Um grande módulo escuro e módulos menores ligados sob uma lupa de inspeção.

Escalar começa pela carga necessária e pela restrição que a impede. Uma reescrita altera demasiadas variáveis antes de provar o estrangulamento. Estabeleça uma referência para um percurso importante e melhore capacidade através de mudanças mensuráveis e reversíveis.

Descrever carga como trabalho

Registe tipos de pedidos, concorrência, tamanhos, tarefas e dependências. Um pico breve não equivale a crescimento sustentado; navegação não equivale a importação massiva. Acorde latência e falhas aceitáveis em vez de um número ambíguo de utilizadores. Os dados de teste devem refletir distribuições relevantes.

Encontrar a espera

Separe cálculo, fila, ligações e respostas externas. Reveja consultas lentas, leituras repetidas e resultados ilimitados antes de acrescentar servidores. Mais trabalhadores podem agravar contenção em bloqueios comuns. Examine latências extremas além da média e formule uma hipótese refutável para cada mudança.

Melhorar e proteger o resultado

Um índice, paginação limitada ou tarefa fora do pedido interativo pode resolver a restrição medida. Uma cache exige frescura e invalidação. Novas instâncias precisam de sessões e limites de ligação adequados. Repita a carga e verifique permissões, valores e tarefas além da velocidade. Documente a próxima restrição e o sinal para novo investimento, em vez de iniciar uma substituição especulativa da plataforma.

Um exemplo para validar

Uma lista pode ficar lenta apenas para organizações grandes. Compare volumes representativos com o mesmo pedido e meça trabalho da base e tamanho da resposta. Depois de alterar paginação ou acesso, confirme que não desaparecem itens entre páginas nem filtros de permissões. Repita durante importação concorrente e conserve condições e resultados. Um tempo menor num conjunto pequeno e isolado não prova que resolveu o estrangulamento que surge quando vários processos partilham recursos. A aceitação precisa de reproduzir precisamente o contexto que motivou a alteração.

Perguntas frequentes

Deve começar-se pela cache?

Só se leituras repetidas forem a restrição e a frescura estiver definida.

Basta escala automática?

Não elimina bloqueios na base, limites externos nem consultas ineficientes.

Porquê olhar para latências extremas?

A média pode ocultar grupos muito prejudicados.

Servem dados pequenos?

Para algumas funções, não para todos os efeitos de volume.

Quando considerar reescrita?

Quando mudanças limitadas não resolvem restrições demonstradas e a migração é compreendida.

Da ideia a um âmbito que se consegue executar

Partilhe o percurso do utilizador, integrações e condições de lançamento. Podemos preparar uma estimativa com pressupostos e exclusões.

Leitura complementar

Revisão cloud: fiabilidade e custos em contexto

Uma revisão cloud relaciona despesa com trabalho útil e fiabilidade com recuperação testada.

Auditoria de código ou teste de intrusão: escolher o âmbito

Auditoria de código e teste de intrusão respondem a perguntas parcialmente diferentes.

Revisão de arquitetura: provas a reunir

Uma revisão de arquitetura deve esclarecer se o sistema suporta as próximas decisões do negócio.