Cameron Purdy fez uma apresentação sobre as 10 melhores maneiras de estragar (isso mesmo) a arquitetura das suas aplicações Java! Foi surpreendente porque eu fui pra essa apresentação sem expectativa nenhuma mas ela foi ótima e muito engraçada!
A apresentação foi num estilo meio cômico e a cada slide várias pessoas foram se identificando com várias decisões de arquitetura patéticas que a gente vê por aí (eu inclusive já fiz e ví várias delas!).
Algum dos exemplos que ele deu que podem acabar com a escalabilidade e a confiabilidade de uma aplicação foram:
- Estuprar o banco de dados: utilizar os recursos de banco para fazer coisas sem tanta importância como logar operações, guardar estado (session) ou guardar imagens.
- Introduzir gargalos: qualquer coisa que milhares de requests têm que utilizar e que têm latência associada a carga.
- Usar heaps gigantes na JVM: um FullGC de 10GB pode levar 3 segundos em laboratório mas em produção isso pode levar vários minutos travando completamente a aplicação.
E por aí vai…. Veja a apresentação completa (os slides estão bem legais por sinal).