Inicialmente foi dado um aparado geral sobre a nova versão do MySQL Server 5.4, ainda em versão beta, por Henrique Leandro. Não vou me prender muito a isso, mas algumas novidades são a provável mudança na forma de designar a versão do produto (a próxima seria o MySQL 2010). Entre as novidades estão a possibilidade de usar computadores x86 com até 16 núcleos, otimização de subconsultas, melhorias no backup on-line, entre outros.
Após essa parte introdutória, Camila Dias da Globo.com, deu um aparado geral da evolução do uso do MySQL dentro da organização, bem como mudanças de paradigmas.
Algumas curiosidades:
– A Globo.com usa Software Livre (principalmente LAMP) desde 2002 em sistemas internos;
– Em 2007 houve um revolução dentro da empresa, onde foram adotados novos rumos: agilidade no desenvolvimento, com o uso de SCRUM, liberdade criativa, incremento significativo em participação em eventos nacionais e internacionais (inclusive o FISL);
– Graças a participação em vários eventos de tecnologia, houve uma mudança de mentalidade dentro da empresa, em relação ao uso do MySQL, pois tiveram contatos com outras grandes empresas com CASES de sucesso;
– De 2007 para 2009, o MySQL cresceu em cerca de 60% de uso dentro da Globo.com, ultrapassando outras soluções de SGDBs.
A Camila citou 2 casos de sucessos, onde foram empregados soluções em Software Livre, com destaque para o uso do MySQL:
Globo Amazônia
É uma solução mashup, composta de um portal com conteúdo relacionado + dados INPE + Orkut + Google Maps + Twitter
Lançado em setembro de 2008, em 1 mês superou as espectativas que se tinha de alcançar resultados em um prazo maior. Ela deve isso a junção da mídia convencional da TV, com a interatividade da Internet. Exemplo, se a média de acessos eram 1000 simultâneos, cada vez que o “Pedro Bial” dizia “votem no endereço tal”, pulava em poucos segundos para 20mil acessos.
Essa solução, apesar do alto volume de acessos, usa APENAS 2 servidores MySQL com replicação master-master, com uso agressivo de web cache para o conteúdo estático e eles implementaram um sistema de fila para a gravação dos dados no banco.
Projeto WordPress
Mais de 1000 blogs editoriais utilizando WordPress e uma série de plugins de cache e uso de MySQL “slave” para consultas. Essa solução também usa 2 servidores com replicação master-master, mas tem mais uma série de servidores slaves que são usados nas consultas, ou seja, os servidores masters são usados apenas para insert e update;
Eles tem um farm exclusivo para o Big Brother Brasil, dada a quantidade de acessos e comentários em um único post.
Algumas lições que eles tiveram durante o desenvolvimento com o uso do MySQL (observação: são deles, algumas coisas se contradizem a palestra de ontem sobre segurança de aplicativos com MySQL):
– Comece o projeto de maneira simples;
– Use uma versão realmente estável e bem testada do MySQL, a menos que realmente precise de algo novo que não tenha sido implementada na versão estável (eles usam a versão 5.0.7 nesses projetos citados);
– Use uma distribuição Linux compilada para 64bits. Isso é muito importante. Eles tiveram perda de desempenho significativa, quando as chaves de índices começaram a ficar muito grande em 32bits (agora eles só usam 64bits no sistema operacional e no banco de dados). Por curiosidade, nesses 2 projetos eles estão usando CentOS 5.2;
– Use InnoDB como engine padrão do MySQL, a menos que você realmente precise de algum recurso que só tenha em outro engine;
– Use transações curtas com o banco de dados;
– Use comandos simples. Evite de usar, por exemplo, consultas complexas. Eles tiveram uma experiência desagradável com uma consulta complexa com insert em ambiente de produção, na replicação dos dados;
– Use índices em memória;
– Coloque as regras de negócio na aplicação (!);
– Abuse do cache em memória.
Para o futuro do desenvolvimento na Globo.com, já foi definido:
– Que o MySQL será a plataforma oficial de SGDB;
– Novos sites já são produzidos com MySQL;
– Vão buscar uma evolução da arquitetura.
Para finalizar gostaria de dizer que não concordo com tudo que foi apresentado na palestra mais vale com um CASE e conhecer melhor como o software livre vem sendo implementado em empresas privadas (já citei exemplos de casos em empresas públicas).
Qualquer hora destas eu creio que vou também apresentar um CASE e apontar as minhas considerações sobre o uso do MySQL e PostgreSQL em soluções de sistemas web. 🙂
Para quem se interessar, eles estão com vagas na empresa para novos talentos. Quem quiser é só procurar a Camila no estande da Globo.com amanhã, dia 27/06.