DEV Community

loading...

Eu, eu mesmo e o NoSQL

delbussoweb profile image Leandro Domingues ・7 min read

Fala pessoALL, hoje escrevo um post diferente. Diferente porque ele não será técnico, hoje vou contar pra vocês como entrei no universo NoSQL, como me apaixonei por MongoDB e o que tenho encontrado no meu dia-a-dia. Espero que seja uma leitura bacana e vocês se divirtam lendo tanto quanto eu me diverti escrevendo! Vamos lá?

Numa galáxia muito, muito distante... #sqn

Por gostar tanto de falar de NoSQL, muita gente acha que eu "nasci" nesse universo, quem dera, não sou tão novo assim! A verdade é que até 2014 eu trabalhava exclusivamente com SQL Server, meu background em desenvolvimento passando por tecnologias desde VB 6, ASP Clássico, PHP depois C# e ASP.NET me ajudaram em diversos aspectos e ambientes de trabalho. Durante esses períodos utilizei alguns bancos de dados (ou não) como Access, MySQL, Interbase, Firebase e SQL Server. Mas foi em 2007 quando entrei em uma empresa de dados e daí sim me especializei em desenvolvimento para SQL Server e também comecei a gostar mais de dados, mas sem nunca tirar o pezinho do desenvolvimento, e vai por mim, isso foi muito bom!

Nessa empresa tive mais contato com a parte de administração do SQL Server e funcionalidades que transcendiam o desenvolvimento puro e simples. Então foi aí que passei a administrar os servidores de banco da empresa que naquela época eram 100% SQL Server. Fiz vários treinamentos oficiais mas nunca me certifiquei (sinto falta disso e acho que ainda dá tempo).

Aprendi muito com o SQL Server, mas o mais importante foi aprender a gostar dos dados e uma frase que carrego pra vida: "Entrou lixo, vai sair lixo".

Mas como surgiu o NoSQL?

Bom, o ano era 2014 e nos deparamos com uma necessidade para um produto dessa mesma empresa. Como trabalhávamos com dados, àquela altura tínhamos vários servidores SQL Server suportando as aplicações, por esse motivo e por me considerar "bom" em query SQL disse que resolveria utilizando o SQL Server mesmo! Resolvi? Sim, mas a performance era sofrível e foi aí que fui procurar outras alternativa.

Foi aí que o NoSQL, mais especificamente o Neo4j entrou na minha vida! Apenas pra contextualizar o Neo4j é um banco de dados NoSQL que se enquadra na classe de Grafos, ou Graph Databases. Mas era um mundo totalmente novo pra mim, a documentação era muito escassa e não foi uma caminhada fácil, mas o resultado foi muito bom. Tive que aprender a dimensionar e fazer deploy do ambiente, aprender uma query language totalmente nova e diferente de tudo o que já tinha visto a Cypher Query (linguagem nativa do Neo4j), mas foi legal, estudei bastante e fui um dos 50 primeiros no mundo a me certificar em Neo4j, minha história com certificações começou aqui! Como nem tudo são flores, foi aí que aprendi que no NoSQL não existe "bala de prata", ou seja, aprendi que o Neo4j era muito bom em alguns aspectos e muito ruim em outros... estava lançado mais um desafio!

Humongous!

Gostei de sair do mundo relacional e comecei a explorar outras alternativas para o armazenamento de dados. Na época a uma das bases de dados que eu administrava tinha cerca de 2.5TB de dados e tabelas com batendo na casa dos bilhões de registros. Pra dar conta disso tudo, essa base era replicada em alguns servidores, logo, um dos problemas era espaço em disco, foi aí que conheci o MongoDB!

Confesso que esse foi um outro paradigma muito grande a ser quebrado. Sempre digo que pensava: "nossa, porque eu estou saindo do Management Studio pra vir pra essa "tela preta"?". Se hoje as ferramentas ainda são poucas, imagina isso no final de 2014. Tive que aprender o básico de Linux, entender como aquilo tudo funcionava pra montar uma infra mínima. Logo depois foi entender o modelo de dados orientado a documentos ou o Document Model.

Modelar bancos de dados relacionais está enraizado dentro de nós. Saímos da faculdade sabendo tudo de normalização de dados, relacionamentos e a "maravilha" que é isso. Porém quando você chega no MongoDB vê que isso já não te serve de muita coisa

E aí vem uma dica importante: não tente colocar seu modelo relacional dentro do MongoDB, você terá sérios problemas! Uma pesquisa indica que de 80 a 95% das soluções que tentam utilizar algum tipo de NoSQL falha não por conta da ferramenta, e sim por conta da modelagem de dados.

Lembra do meu skill em desenvolvimento? Ele me ajudou exatamente nesse ponto: trabalhar com dados agregados! A representação JSON dos dados no MongoDB torna a vida do desenvolvedor muito mais fácil, por outro lado, pode dificultar um pouco o entendimento por parte de alguns DBAs. me debrucei sobre o modelo de dados que tinha na época e remodelei utilizando o document model. Não foi de primeira, mas cheguei a um modelo bem performático e tive dois ganhos: o primeiro em performance e outro na economia de disco! Saíram as máquinas gigantes, como muito poder de processamento e memória, entraram máquinas bem mais simples para fazer parte do trabalho. Aqui a palavra parte é bem colocada porque o SQL Server não foi totalmente substituído, lembra que não existe "bala de prata"? O SQL Server continuou com um papel muito importante e o MongoDB assumiu outra parte da aplicação.

Mas confesso que de lá pra cá, não me lembro a última vez em que precisar "pensar relacional" para uma aplicação!

A comunidade

Tudo muito bom, tudo muito bem... mas eu estava a ponto de virar minha carreira para uma tecnologia open source, e aí veio a dúvida: e se essa coisa morre? Fui então conhecer onde estava me metendo, em 2015 fui para o meu primeiro MongoWorld que aconteceu em NYC. Cheguei pra conhecer uma comunidade que naquele ano estava representada por pessoas de mais de 64 países, e tentar absorver o máximo de conhecimento possível, ver se o que eu estava fazendo estava ao menos aderente. Voltei cheio de conteúdo e mais apaixonado ainda!

Comecei junto com um grande amigo a fazer alguns meetups aqui no Brasil e me envolver mais com a comunidade, que naquela época estava bem fraca por aqui, mas com muita gente boa envolvida! Conheci bastante gente e fiz vários amigos, voltei ao MongoWorld em 2016, mas foi em 2017, dessa vez em Chicago, que o primeiro reconhecimento internacional veio! Participei do Advocacy Day, um dia exclusivo para os membros do Advocacy Hub e que concentra evangelizadores MongoDB ao redor do mundo. Pelo trabalho desenvolvido no Brasil fui reconhecido como maior influenciador em língua portuguesa, isso foi muito legal, consegui ver que todo tempo (e dinheiro) investidos não estava sendo em vão e que estava no caminho certo! Fiz mais amigos: indianos, espanhóis, italianos, colombianos, americanos e até um brasileiro que vive lá nos EUA até hoje! Esses caras são incríveis.

E aqui no Brasil o trabalho continuou, vários meetups, eventos como TDC, NoSQL BR, Zero2Hero e evangelização em MongoDB me renderam o título de MongoDB Evangelist e depois MongoDB Ambassador... mas eu sentia falta de uma coisa: a certificação.

A certificação

Esse foi um ponto que sempre persegui, já tinha minha certificação em Neo4j e tentei me certificar em MongoDB. Minha primeira tentativa e eu não passei. Mas me motivou a continuar estudando e acima de tudo: praticando. A prova exige a prática e não só a teoria, esse é um ponto que considero bem bacana, nada de "decorebas", tem que chegar lá e realmente mostrar que você sabe! São 60 questões em 90 minutos com um indiano te observando o tempo todo pela câmera!

No início desse ano renovei minha certificação agora contemplando a versão 4.0 do MongoDB e estou desenvolvendo um conteúdo de treinamentos específico para quem quer se certificar. Veja que oportunidade: aqui no Brasil temos apenas 23 profissionais certificados em MongoDB!

Além de MongoDB Certified Developer, em 2018 me certifiquei como MongoDB Certified Trainer, com isso venho treinando equipes dos mais diversos skills em várias empresas pelo Brasil.

Dia-a-dia

No final de 2017 vi que o mercado necessitava de consultoria e treinamentos em NoSQL e abri minha empresa. O foco é justamente auxiliar empresas, desenvolvedores e administradores de dados a entrarem ou se manterem no universo NoSQL.

O que tenho visto são projetos incríveis com grande potencial que precisam de, digamos, uma tutoria para que consigam ultrapassar a barreira da "arrebentação" e consigam sobreviver em alto-mar. E aqui mais uma necessidade de mercado: profissionais que realmente façam, coloquem a mão na massa e façam acontecer.

Tem sido uma caminhada difícil, mas por outro lado bem bacana! Passar por vários cenários em diferentes empresas e ver o NoSQL sendo aplicado de diversas maneiras é muito legal, além de gerar uma vivência incrível. Essa vivência me permite falar com propriedade sobre essas aplicações e contribuir para o crescimento profissional de muita gente Brasil afora!

MVP

Depois de toda essa caminhada, em fevereiro desse ano a Microsoft me concedeu o tão sonhado título de MVP na categoria Data Platform. Esse título pra mim é um motivo de muito orgulho, porque mesmo sem ser especialista em ferramentas Microsoft, ou seja, falando de NoSQL ou mais especificamente de MongoDB, eles viram e reconheceram meu trabalho.

Isso me levou a conhecer mais gente e fazer novos amigos em uma outra comunidade. Esse é um outro ponto que não tem preço.

O que vem por aí...

Posso dizer que ainda não acabou, 2019 tem sido um ano muito bacana pra mim e muita coisa está por vir. Três coordenações no TDC já foram garantidas, SQL Saturdays pelo Brasil todo, e vários outros eventos.

Espero que um pouco dessa minha história incentive quem quer entrar ou já está na caminhada com dados, sejam eles relacionais ou não relacionais. E para o que precisarem é só me pingar por aí nas redes! Se quiser saber mais sobre os treinamentos, dê uma conferida aqui

Um abraço e até mais!

Discussion

pic
Editor guide
Collapse
tdsz profile image
Tadeusz Janiszewski

Eu tava nesse aqui sqlsaturday.com/799/Sessions/Detai...
Muito bom ter um panorama de sua trajetória. Parabéns.

Collapse
michaelfdias profile image
Michael Felix Dias

História muito bacana e que certamente inspira quem está entrando agora nessa área. Parabéns!