Monitoração daqueles locais difíceis de alcançar: Linux, Java, Oracle e MySQL

Os ambientes de TI de hoje são cada vez mais heterogêneos, com Linux, Java, Oracle e MySQL considerados quase tão comuns quanto os ambientes tradicionais do Windows. Em muitos casos, essas plataformas foram integradas ao departamento de TI baseado em Windows de uma organização por meio de uma aquisição de uma empresa que se utiliza de uma dessas plataformas. Em outros casos, os aplicativos podem ter feito parte do departamento de TI por anos, mas eram gerenciados por um departamento separado ou um único administrador.

Mesmo assim, seja uma percepção da especialização necessária, frustração com as muitas combinações de versão dessas plataformas ou apenas incertezas e dúvidas gerais, Linux, Java, Oracle e MySQL criam confusão em massa no monitoramento e são considerados rotineiramente “difíceis de acessar” mesmo para um profissional de TI experiente. Esse problema ocorre nas duas vias (quando monitorar o Windows …

[Leia mais]
Atualização no Amazon Aurora: chame funções Lambda a partir de procedimentos armazenados; carregue dados do S3

Muitos serviços da AWS funcionam muito bem por si só, mas são ainda melhores juntos! Este aspecto importante do nosso modelo permite que você selecione um único serviço, aprender sobre ele, obter alguma experiência com ele, e, em seguida, estender o seu espaço para outros serviços relacionados com o tempo. Por outro lado, as oportunidades para fazer com que os serviços trabalhem em conjunto estão sempre presentes e nós temos algumas delas no nosso roteiro orientado para o cliente.

Hoje eu gostaria de falar sobre dois novos recursos para o Amazon Aurora, o nosso banco de dados relacional compatível com MySQL:

Invocação de Funções Lambda – Os procedimentos armazenados que você cria dentro dos seus bancos de dados Amazon Aurora pode agora podem invocar funções …

[Leia mais]
Como desenvolver uma solução de member get member em 24 horas

Desenvolver uma solução de member get member em 24 horas é, sem sombra de dúvida, um desafio. Com base nisso, o MercadoPago, empresa de solução de pagamentos online do Mercado Livre, chamou de Challenge Weekend o evento interno que realizou, reunindo desenvolvedores da empresa focados nessa missão: desenvolver uma solução de back-end que se encaixasse perfeitamente no aplicativo de ofertas para a Black Friday (Mercado Pago Ofertas). Esse aplicativo estava em processo de desenvolvimento e, por isso, mais do que nunca a comunicação entre as equipes envolvidas foi fundamental para o funcionamento e sucesso do projeto member get member.

A solução

Para atender à proposta nós, os integrantes da equipe vencedora do desafio, pensamos em um sistema separado em duas partes: uma API que provesse os serviços de geração de código de usuário e monitoramento de uma campanha de marketing (member get member) e um sistema de …

[Leia mais]
Dockerizando MySQL na Uber Engineering

O sistema de armazenamento Schemaless da Uber Engineering alimenta alguns dos maiores serviços da Uber, como o Mezzanine. Schemaless é um datastore escalável e altamente disponível no topo do grupo de clusters do MySQL[1]. Gerenciar esses clusters foi bastante fácil quando tínhamos 16 deles. Atualmente, temos mais de 1.000 clusters contendo mais de 4.000 servidores de banco de dados e isso requer uma classe diferente de ferramentas.

Inicialmente, todos os nossos clusters eram gerenciados pelo Puppet, um monte de scripts ad hoc e operações manuais que não podiam escalar no ritmo da Uber. Quando começamos a procurar por uma melhor maneira de gerenciar o crescente número de clusters do MySQL, tivemos alguns requisitos básicos:

[Leia mais]
Chame funções Lambda a partir de procedimentos armazenados

Muitos serviços da AWS funcionam muito bem por si só, mas são ainda melhores juntos! Este aspecto importante do nosso modelo permite-lhe selecionar um único serviço, aprender sobre ele, obter alguma experiência com ele, e, em seguida, estender o seu espaço para outros serviços relacionados com o tempo. Por outro lado, as oportunidades para fazer com que os serviços trabalhem em conjunto estão sempre presentes e nós temos algumas delas no nosso roteiro orientado para o cliente.

Hoje, eu gostaria de falar sobre dois novos recursos para o Amazon Aurora, o nosso banco de dados relacional compatível com MySQL:

  • Invocação de Funções Lambda – Os procedimentos armazenados que você cria dentro dos seus bancos de dados Amazon Aurora pode agora podem invocar …
[Leia mais]
Validação contínua do backup do MySQL: restaurando backups

Os bancos de dados MySQL do Facebook estão espalhados pelos nossos data centers globais e precisamos ser capazes de nos recuperar de uma interrupção em qualquer um desses locais, em qualquer momento. Em tal evento de desastre, não só temos que recuperar o serviço o mais rápido e confiável possível, mas também precisamos garantir que não percamos dados no processo. Para esse efeito, criamos um sistema que verifica continuamente a capacidade de restaurar os nossos bancos de dados a partir de backups.

Nosso sistema de restauração consiste em dois componentes principais:

  • Continuous Restore Tier (CRT) – Responsável por todo agendamento e monitoramento em torno de restaurações. Ele procura bancos de dados com novos backups e cria tarefas de restauração para eles, monitora o progresso da restauração e garante que cada backup seja restaurado com êxito.
  • ORC …
[Leia mais]
Guia da Certificação MySQL

Tudo sobre as certificações do SGBD open source mais popular do mundo!

Provas necessárias para cada certificação, conteúdo de cada prova, valores, número de questões, tempo disponível de realização da prova, e muitas outras informações.

Migrando Legados para MySQL 5.7 com Query Rewrite Plugin - Parte 2


No post anterior, vimos o que são os Query Rewrite Plugins, tanto preparse, quanto postparse. Agora é o momento de ver como este recurso pode viabilizar a migração de uma aplicação legada real. Para exemplificar, usaremos uma versão antiga do Moodle que é incompatível com MySQL 5.7. Veremos como implementar um preparse QR plugin.
O legado: Moodle 2.3Moodle é uma plataforma de aprendizado extremamente popular criada com o LAMP Stack. A versão 2.3 já é bastante antiga e não recebe mais atualizações desde janeiro de 2014.
Ao tentar instalar o Moodle 2.3 com MySQL 5.7, ocorre o erro:

[Leia mais]
Migrando Legados para MySQL 5.7 com Query Rewrite Plugin - Parte 1

Uma funcionalidade que pode fazer a diferença e viabilizar projetos de migração de legado para MySQL é a Query Rewrite Plugin. Com ela é possível interceptar comandos que são enviados ao MySQL e modificá-los online, sem a necessidade de alterar a aplicação.
Neste post, vamos entender como utilizar este recurso, com um exemplo real usando Moodle 2.3 no MySQL 5.7.

O que é o Query Rewrite PluginA partir do MySQL 5.7.6 há suporte para os Rewrite Plugins, que podem examinar e seletivamente reescrever comandos recebidos pelo servidor antes que sejam executados.
Quando uma instrução é recebido pelo MySQL Server, por exemplo um SELECT * FROM tabela where id = 1, ele passa por um parser que vai validar sintaxe e semântica, entre outros passos. Depois disso, o Otimizador de Consultas entra em ação, gerando e selecionando o melhor plano de execução para a query. Finalmente, o melhor …

[Leia mais]
MySQL InnoDB Cluster, now with remote nodes!

In this post I’m going to extend the tests I made with MySQL InnoDB Cluster on the previous post, creating a group of instances with separate servers, that is, I’m going to test how to create a new cluster with three different machines considering that, if you create a cluster using one giant server, maybe […]