Bem pessoal,
Estou estudando uma forma de desenvolver uma arquitetura “ideal” para manter sites de grande porte distribuídos(Entenda grande porte como sites do tipo como o terra, o uol, o mercadolivre, guj, e etc… que tem milhares de pessoas utilizando…) em java e como não tenho experiência em todos os assuntos que serão mencionados futuramente neste tópico, gostaria de saber sobre a experiência/opinião de todos vocês sobre os *recursos(arquiteturas, técnicas de programação, framework’s, ferramentas, programas, servidores(hardware e software), e etc) que poderão ser utilizados para desenvolver/hospedar um site desse porte. Então vamos lá… O que é preciso fazer/programar/desenvolver/implementar/etc para garantir que o site seja performático, escalável, que tenha compatibilidade entre inúmeros browsers, que permita balanceamento de carga, replicação de banco de dados, servidores dedicados apenas para guardar as sessões(balanceando e replicando) dos usuários, que permita internacionalização…, enfim, um site que fique no ar o “tempo todo” e que responda as requisições com rapidez?
*É aconselhável que os “recursos” sejam gratuitos, até por que no final dos estudos, vamos montar e disponibilizar aqui no guj, a arquitetura “ideal”(baseada na experiência e nos estudos de todos nós) para hospedar sites desse porte.
Lá vai minha opinião… Creio que para garantir uma melhor perfórmance do site é preciso programar utilizando JSP/JSTL/SERVLETS/HTML/Tableless/JQUERY(É o mais aconselhável para garantir a compatibilidade entre os browsers?), pois assim temos um maior controle de como a view está funcionando. Pensei também em utilizar o apache, postgresql…
Obs.: Seria interessante mencionar os assuntos que serão explanados na resposta, no tópico da resposta(na parte assunto), pois desta forma qualquer pessoa que venha a ler a mesma, saberá de imediato o assunto que será tratado.