Olá, pessoal!
No dia 22 de julho de 2011 aconteceu o evento MongoSP 2011 no hotel Braston no centro de São Paulo. Este foi um evento técnico voltado para a comunidade de usuários que trabalha com o banco de dados NoSQL chamado MongoDB.
A empresa americana 10Gen, responsável pelo desenvolvimento do MongoDB, junto com a Gonow patrocinaram o evento que junto com o primeiro encontro NoSQL BR, foi um dos primeiros a reunir a comunidade em tordo de bancos de dados NoSQL no Brasil.
Este foi o primeiro ano de realização do evento MongoSP. A programação do evento foi dividia em duas partes: durante a manhã foram realizadas quatro palestras no salão principal. Na parte da tarde houve apenas uma trilha que abordou vários assuntos: o uso de Python com este banco de dados, detalhes internos da estrutura do MongoDB, escalabilidade, um case da Globo.com e o RoadMap para as próximas versões do software. Algumas palestras foram em português e outras em inglês com palestrantes internacionais (utilizando o recurso de tradução simultânea). A maioria dos participantes tinha pouca experiência com bancos de dados NoSQL . Percebi que muitos buscavam aprender os detalhes por trás da tecnologia empregada no MongoDB e também em bancos de dados NoSQL.
O host Christiano Anderson falou um pouco sobre o objetivo do evento. Apesar de ser um evento relativamente pequeno, que teve aproximadamente 100 inscritos, ficou claro que o objetivo da organização foi facilitar a troca de informações e estimular o network entre os participantes. Após algumas informações adicionais o Christiano Anderson fez a apresentação do primeiro palestrante: o engenheiro de software que cuida diretamente do desenvolvimento do MongoDB Greg Studer. 
Christiando Anderson, o host do evento
A palestra teve como tema a modelagem do esquema de um banco de dados no MongoDB e recebeu o nome de MongoDB Schema Design. A princípio o palestrante perguntou quem da platéia já utilizava o MongoDB e constatou que estes eram a minoria. Greg Studer explicou que a sua palestra focaria na comparação de como a modelagem é feita em bases de dados relacionais e como ela pode ser aplicada no MongoDB através do conceito de esquema livre (free schema). Acredito que a rápida e curta apresentação de como o MongoDB trabalha armazenando documentos e suas relações foi interessante para o público assim como a explicação sobre a terminologia empregada. Dando continuidade à palestra, Greg focou em alguns exemplos de código para trabalhar com dados e em soluções de como a modelagem poderia ser realizada no MongoDB através de padrões de modelagem como herança, um para muitos, muitos para muitos, estruturas hierárquicas e filas.
Greg Studer na palestra sobre modelagem de dados com o MongoDB
A palestra seguinte foi apresentada pelo Eduardo Maçan e se chamava Geospacial Indexing com MongoDB. Esta palestra basicamente focou em um estudo de caso do site Apontador e se concentrou nas características para se trabalhar com dados georeferenciados no MongoDB. O palestrante indicou que para uma determinada tarefa de processamento o MongoDB foi muito mais eficiente do que algumas soluções relacionais que foram testadas devido à utilização de índices geográficos dos documentos com coordenadas utilizados no Apontador. A ideia de um índice chamado geohashing foi apresentada junto com alguns detalhes do modelo utilizado sem entrar em linhas de código, ou seja, o palestrante focou na solução e características gerais do MongoDB para se trabalhar com dados georeferenciados.

Eduardo Maçan na palestra sobre índices geográficos
Após a palestra do Eduardo Maçan houve uma pausa para o cofee break. Em seguida tivemos a palestra The Good, The Bad and the Ugly apresentada em inglês pelo paraguaio Cesar Rodas. Esta palestra bem humorada fez referência ao clássico filme estrelado por Clint Eastwood indicando algumas necessidades e indicando como elas poderiam ser implementadas no MongoDB da forma feia (ugly), ruim (bad) e boa (good) de acordo com as melhores práticas de modelagem. Foi interessante notar que em cada uma das situações descritas há maneiras de se trabalhar com o MongoDB para que ele obtenha mais performance, seja mais redundante e trabalhe em geral de uma forma melhor. Foram apresentados os clássicos exemplos de armazenamento de dados em blogs (posts, tags, comentários) e de enquetes.

Cesar Rodas na palestra sobre melhores práticas com o MongoDB
A próxima palestra focou no driver de acesso ao MongoDB chamado mgo (pronunciado mango): este driver permite que programadores da linguagem GO possam trabalhar com o MongoDB de uma maneira mais fácil. O palestrante, Gustavo Niemeyer, trabalha na Canonical e no início de sua palestra focou na apresentação desta linguagem e na sua motivação para criar este driver. O destaque vai para o fato que a linguagem GO, na opinião do palestrante, não tem nada de novo além da sua maneira peculiar de se programar. Também houve uma reação do público quando o palestrante disse que montou o driver mango durante um natal (!) e que este driver continha diversos recursos interessante como, por exemplo, conceito de sessões, controle de concorrência, pre-fetching e outras características exclusivas.
Christiano Anderson apresentou a palestra Python e mongoDB. Esta palestra abordou assuntos como a dificuldade de se trabalhar com o MongoDB em Python e as alternativas para uso do MongoDB com o Django. Dentre todas as palestras esta foi a única que apresentou diversos exemplos de código e que citou uma aplicação importante suportada pelo MongoDB: uma ferramenta Web que permitia a visualização em tempo real de dados da bolsa de valores. O palestrante também abordou alguns aspectos sobre ORM (como o mongo-engine) e soluções para plataformas móveis.
Christiano Anderson na sua palestra sobre Python e MongoDB
A palestra seguinte foi apresentada por Mathias Stern com o tema Scaling with MongoDB: Sharding & Replica. Pude notar que muitas pessoas estavam esperando por esta palestra, pois uma das principais funcionalidades do MongoDB é a sua capacidade de escalar rapidamente e facilmente. O palestrante abordou os conceitos de Scale Up e Scale Out e discutiu detalhes sobre arquitetura e design da solução observando os aspectos de escalabilidade e também a replicação proporcionada pelo MongoDB junto com suas características.
Mathias forneceu o que a maioria do público almejava: muitos detalhes técnicos sobre a técnica de sharding e replica sets. Foi interessante notar a única demonstração prática realizada durante o evento: a utilização de replicação com três nós para testar a alternativa de escalabilidade quando um dos nós falha. Destaco que a técnica de sharding, ou seja, a separação de dados em nós diferentes de acordo com algum critério como intervalo de chaves (chunks), é uma das técnicas recomendadas há muito tempo para quem trabalha com bancos de dados relacionais não é algo novo (como muitos participantes que estavam ali presentes indicaram) e é conhecida como particionamento de dados.

Mathias Stern na palestra sobre sharding e replica sets
Após o segundo cofee break do evento tivemos a palestra que abordou um estudo de caso prático do MongoDB na Globo.com apresentada pelo Franklin Amorin. O palestrante comentou um pouco sobre o ambiente e as diversas tecnologias e bancos de dados utilizados na Globo.com, o braço tecnológico das organizações Globo. Foram indicados alguns números do portal Globo.com tais como 70 milhões de visitantes por mês, 550 milhões de visitantes únicos e 3 milhões de page views por mês em todas as páginas e sub-páginas do domínio Globo.com e G1.com.
O palestrante descreveu a aplicação Cartola FC (jogo virtual com 2 milhões de usuários cadastrados e 30 mil sessões simultâneas) e indicou que houve uma necessidade de implementação de um serviço de troca de mensagens no estilo do Twitter dentro do Cartola FC. Apenas este serviço de mensagens foi desenvolvido com o MongoDB, pois a equipe fez alguns testes e constatou que esta seria uma solução adequada para atender à forte demanda dos usuários deste serviço. Após a apresentação de detalhes técnicos da arquitetura a palestrante indicou alguns resultados positivos e discutiu sobre a adoção de novas tecnologias dentro da Globo.com
Franklin Amorin mostrando o case do MongoDB na Globo.com
A última palestra técnica do evento, MongDB Internals, foi apresentada pelo Mathias Stearn. Logo de cara esta palestra já chamou a atenção de todos pelo design dos slides: o palestrante não utilizou nenhuma fonte padronizada o que forneceu um aspecto artesanal à apresentação do conteúdo quando mostrou todos seus slides como se fossem desenhados por uma criança. Esta foi a palestra mais técnica do evento por que abordou assuntos associados ao funcionamento interno do MongoDB, tais como: as estruturas de dados utilizadas, o endereçamento e mapeamento de memória, a organização dos arquivos de dados, o padrão BSON e os tamanhos de tipos de dados e outros elementos do engine do MongoDB.

Mathias Stern na palestra sobre detalhes de armazenamento do MongoDB
A última palestra do evento foi apenas um bate papo entre o Greg e o Mathias a respeito do roadmap do MongoDB, com o que foi feito nas versões anteriores e quais são as próximas funcionalidades que vão ser desenvolvidas nas próximas versões. Este rápido bate-papo foi seguido do encerramento do evento com os tradicionais agradecimentos.
Em resumo posso dizer que o MongoSP foi um evento técnico muito bom e com foco nos desenvolvedores e DBAs que pretendem utilizar ou mesmo conhecer o MongoDB. O conjunto de palestrantes nacionais e internacionais foi bem escolhido e a organização, instalações, local e demais detalhes foram bons. Recomendo a todos que estiverem interessados no mundo de tecnologias NoSQL, em particular no MongoDB, que fiquem atentos a eventos como este para se manterem atualizados nestas novas tecnologias associadas com o desenvolvimento e banco de dados.
Todos os vídeos e os slides das apresentações estão disponíveis no blog da Gonow
Um grande abraço e até a próxima.













2 Comentários
Qual a sua opinião?