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;
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.
É 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.