Ao longo dos últimos anos, venho trabalhando escalabilidade e performance de uma forma bem intensa. Já fiz algumas implantações de Jenkins para CI, uma de MongoDB que ficou muito interessante, algumas outras de RabbitMQ, ElasticSearch + LogStash + Kibana e Redis.
Na maioria dos times onde realizei essas implantações, os times estavam tecnologicamente defasados, mas o mais relevante é que não era incomum encontrar quem tivesse algumas das percepções, sobre essas tecnologias, das que vou listar:
- “É demais para o nosso projeto, é como usar um canhão para matar uma formiga”
- “Não precisamos de todas essa features, eu faço algo melhor, sob medida, com muito menos recursos, em uma semana.”
- “Nunca precisei disso antes, e sempre entreguei meus projetos. Isso é besteira, overdesign.”
Os pensamentos negativos sempre existirão, no entanto existem motivos suficientes para você se policiar quando tiver alguns desses pensamentos. E tenho um conjunto de argumentos que talvez possa te fazer abrir os olhos:
Entenda o tamanho do problema
O aprendizado é dividido em 4 etapas:
- Inconscientemente Incompetente: Você sequer sabe o que você precisa saber para dominar algum assunto.
- Conscientemente Incompetente: Você não sabe fazer, mas já sabe qual o caminho precisa percorrer e quais premissas são necessárias, você conseguiria montar um plano de estudo.
- Conscientemente Competente: Você já sabe fazer, mas hora ou outra precisa recorrer a algum material, como google, livros etc.
- Inconscientemente Competente: Você simplesmente faz, já não consegue nem dizer como, é como andar de bicicleta.
Sem no mínimo estar na segunda etapa do aprendizado, você não tem nenhuma capacidade de avaliar solução alguma. Você sequer consegue determinar o quanto precisa aprender para usar ou administrar a tal solução, ferramenta, framework ou biblioteca.
Uma notícia chata, você não é mais especialista que os especialistas
Se você não fizer parte do time do RabbitMQ, ou algum outro Message Broker, por favor, não acredite que suas habilidades no teclado, frente a uma IDE, são superiores às habilidades específicas daqueles que construíram e dão manutenção na solução. Enquanto seu business é entregar business, o business dessa galera é entregar essa solução, portanto as nuâncias, especialidades e mindset afloram na medida que você exercita as necessidades de tipos muito especialista de soluções.
Não subestime
Todas as soluções que cito aqui, são extremamente poderosas e específicas. Elas suportam grandes cargas, mas precisam de tunning na medida que você precisa de um throughput elevado. No entanto todas essas soluções custariam muito de um projeto para serem desenvolvidas com funcionalidades limitadas. A maturidade das soluções que apresentei é infinitamente maior do que algo que você possa pensar em construir em um ou dois meses. Fique atento, já vi empresas gastarem centenas de milhares de reais por quererem desenvolver um NHibernate proprietário. Embora já faça 10 anos que isso aconteceu, ainda vejo profissionais, pero no mucho, pensando nisso.
Conclusão
Estude o mínimo antes de opinar, e tire suas próprias conclusões.
0 comentários