Onde a jurupoca pia ao se escalar uma aplicação web feita em Java?

Tenho pouca experiência enfrentando problemas de escalabilidade de aplicações web feitas em Java.

A impressão que tenho lendo a respeito é que se desejo criar uma aplicação já com boa escalabilidade preciso de um bocado de conhecimento prévio, caso contrário tenho que ficar enfrentando esses problemas conforme eles aparecem e ir ganhando experiência lidando com eles.

Queria saber quais são os problemas típicos de uma aplicação web e o que normalmente é feito para enfrentá-los?

Por exemplo:

  • Quando o número de visitas aumenta é preciso balancear a aplicação;

  • Quando o acesso a banco de dados aumenta é preciso usar um pool de conexões;

  • Quando a aplicação fica complexa é preciso gerenciar as dependências com um mecanismo de injeção de dependências;

  • etc…

Quais seriam esses problemas?

Quando você corrige um erro a aparecem mais 10.

Penso que a solução para isso é refatorar o código. Ou reescrever a aplicação do zero (o que nem sempre é viável).

Opa bom dia. amigo quando participo de um projeto e a equipe ja almeja um certo crescimento nele, o pessoal ja cria o projeto com um bom gerenciamento de dependências como o maven, procura deixar o código mais fatorado possível, e se possível fazer testes automatizados, como os testes de fumaça e testes unitários, e sempre sempre deixar o container gerenciar as dependências com um pool de conexão, no começo comece com um pool pequeno e conforme a necessidade vai aumentando cria mais conexões.

Particulamente a arquitetura java e bem complicadinha de se fazer e manter.

Obrigado amigo pela resposta. :slight_smile:

Maven ou gradle é básico. O ideal é o último, mas é mais complicado pegar aquela sintaxe do Groovy. :stuck_out_tongue:

Testes de fumaça eu nunca ouvi falar. :slight_smile:

Pool de conexão eu acho interessante o HikariCP que é validado com bastante cuidado, mas ele não pertence a um container específico.

Por curiosidade, você considera a arquitetura Java complicada em relação a quê? E a quais complicações se refere exatamente?

Quando algo é mais complicado, geralmente é por que existem soluções mais simples.

É um óbvio meio ululante, mas seria bom se essas soluções mais simples fossem citadas junto com os respectivos porquês. Afinal que eu saiba não existe nada na linguagem responsável por produzir soluções mais complicadas que outras linguagens.