Cloudsql: Vantagens e desvantagens do MySql no GCE.

Amanda de Aguiar
hurb.labs
Published in
3 min readMar 6, 2020

--

Os dados de uma empresa são, mais do que nunca, seu mais valoroso ativo o que fez do DBA um profissional com grandes poderes e grandes responsabilidades. Segurança, alta disponibilidade, performance, consistência são algumas das preocupações constantes.

Sempre trabalhei com mysql em empresas que precisavam de tudo isso com um baixo custo e até o momento sigo com o discurso de que esse é o melhor banco de dados com o custo/benefício que oferece. Desde que migrei pra nuvem isso ficou mais evidente com o baixo custo de hardware e manutenção. Nada de grandes janelas com horas de backup e grandes repairs para melhorar a performance. Nada de parar Produção para tunnig ou para escalonamento vertical ou horizontal. Tudo é feito com alguns cliques, hot.

Após anos em outra nuvem (cof, cof, aquela mesma)resolvemos mudar para o "novo" GCE, o ambiente cloud da Google quando tudo ainda era mato. Depois de alguns(muitos) testes no Cloudsql, resolvemos seguir com essa solução para os nossos bancos em todos os ambientes (dev, staging e produção).

Vantagens:

A interface é muito simples e objetiva. Intuitivamente conseguimos subir instâncias, réplicas, criar usuários e databases, migrar dados de diferentes sources(de um dump.sql a um banco on-premise ou co-location), a manutenção é programada e sem downtime. Todos os logs de operações e erros estão na mesma tela e em tempo real, facilitando o troubleshooting quando necessário.

Para o tunning o Cloudsql utiliza flags onde várias variáveis de ambiente estão disponíveis para a customização da instância. A alta disponibilidade é feita em alguns minutos(as vezes segundos) e sempre com um replica lag muito próximo do zero. O escalonamento vertical funciona escolhendo o modelo de máquina que mais se adequa a sua necessidade, com um downtime de alguns minutos. O monitoramento básico também fica disponível até 30 dias e ajuda muito na hora de apagar alguns incêndios.

Não poderia esquecer da minha feature favorita: auto storage increase. O banco cresceu absurdamente quando absolutamente ninguém poderia prever? Sem problemas! O cara faz o resize sozinho e você pode continuar dormindo tranquilo.

O cli disponível é ainda mais completo e seus scripts de automatização estão garantidos. O cloudproxy é outra feature importante para a segurança dos dados já que as aplicações não precisam saber o ip da instância e mais um nível de criptografia é implementado durante o tráfego de entrada e saída.

Desvantagens:

O lado(não tão) negro da força começa com a alta disponibilidade. Apesar das réplicas subirem na velocidade da luz, para o failover automático você precisa levantar uma instância exclusiva e sem utilidade alguma, a não ser é claro, em caso de failover. Já que tenho mais uma instância disponível, queria poder utiliza-la pra algo além disso, certo?

Ao contrário das VMs do Cloud Compute Engine, as instâncias de banco não são customizáveis. Ou seja, se você precisa de mais memória vai levar junto no pacote mais cpus e alguns cents na sua conta. É uma forma de evitar um erro de capacity planning porém para um ajuste fino de performance seria ideal.

A criação de usuários feita diretamente na interface funciona com um detalhe importante: permissão full no banco. Um perigo quando alguém cria um usuário numa emergência e depois esquece ele lá podendo fazer qualquer coisa na sua database.

O backup automático retido é de 7 dias e dependendo do seu negócio pode ser muito pouco.

Então, vale a pena?

Em todas as clouds que já testamos ou trabalhamos, vimos pontos fortes e pontos de melhoria. O diferencial da Google é agilidade e o empenho da equipe de desenvolvimento além do comprometimento dos business partners. Em dois anos já vimos melhorias sendo implementadas e continuamente estão entregando um produto melhor. Vale a pena para o bolso e para o sono de qualquer DBA.

--

--