O MySQL é um dos bancos de dados relacionais de código aberto mais conhecidos do mundo. Um dos motivos da popularidade dele é a capacidade de hospedar e gerenciar o banco de dados de várias maneiras que estejam em conformidade com os requisitos da carga de trabalho do usuário. Um usuário pode configurar o banco de dados autogerenciado no local, gerenciado em máquinas virtuais na nuvem ou usar uma oferta totalmente gerenciada de um provedor de nuvem. O foco deste artigo é a opção MySQL autogerenciado e a solução totalmente gerenciada, Cloud SQL para MySQL, fornecida pelo Google Cloud. Os prós e contras de cada uma das opções serão abordados.
A opção MySQL autogerenciado significa que o usuário, na maioria dos casos um administrador do banco de dados, é responsável pela maioria das atividades envolvidas na configuração, instalação, e manutenção do banco de dados, pelo sistema operacional (SO), rede, armazenamento, instância de máquina virtual (VM) e pelo hardware, que hospeda a instância e o servidor do banco de dados. Algumas dessas tarefas, como tarefas de hardware, instância de VM, armazenamento, rede e sistema operacional, podem ser realizadas com mais facilidade usando um provedor de serviços em nuvem, como o Google Cloud. Independentemente de um usuário autogerenciar um banco de dados no local ou na nuvem, essa pessoa é responsável por algumas tarefas importantes de gerenciamento de banco de dados necessárias para uma execução sem problemas do sistema. Essas tarefas estão listadas abaixo.
O diagrama abaixo mostra a responsabilidade do usuário ao ativar a configuração autogerenciada. Embora o autogerenciamento no Google Cloud reduza algumas tarefas relacionadas a hardware, computação, rede e armazenamento, as responsabilidades pelo gerenciamento das camadas restantes da pilha ainda são do usuário. O administrador do banco de dados e o desenvolvedor do aplicativo ainda precisam dedicar tempo, energia e recursos suficientes gerenciando o MySQL.
O Cloud SQL é um serviço de banco de dados totalmente gerenciado que oferece facilidade de uso para configuração, manutenção, gerenciamento e administração dos bancos de dados MySQL, PostgreSQL e SQL Server no Google Cloud. O Cloud SQL gerencia todos os aspectos de hardware, rede, SO, segurança, monitoramento, manutenção, disponibilidade e escalonamento do banco de dados MySQL. Todas essas responsabilidades são ocultadas dos usuários, permitindo que eles se concentrem no desenvolvimento de aplicativos e agreguem valor aos clientes.
O diagrama abaixo é semelhante ao diagrama acima, em que estão as tarefas envolvidas no gerenciamento das várias camadas do banco de dados MySQL, com a única diferença sendo que todas as tarefas gerenciadas pelo Cloud SQL em nome do usuário estão ilustradas em azul.
Além de gerenciar as muitas tarefas ilustradas acima, o Cloud SQL oferece vários recursos e soluções que não estão disponíveis nativamente em um ambiente autogerenciado. Veja abaixo alguns dos principais recursos oferecidos pelo Cloud SQL.
Confiabilidade: backup e recuperação são as atividades mais importantes no gerenciamento de banco de dados. O Cloud SQL oferece backup automatizado e backups sob demanda, que podem ser usados para restaurar o banco de dados em um determinado momento em caso de corrupção, desastre ou modificações de dados não intencionais.
Disponibilidade: o Cloud SQL oferece alta disponibilidade ao instanciar vários servidores que hospedam o banco de dados em várias zonas com capacidade de failover automatizada para fornecer alta disponibilidade em caso de falha de uma VM ou de um data center. O Cloud SQL garante disponibilidade superior a 99,95% em qualquer lugar do mundo.
Além do recurso de alta disponibilidade, o Cloud SQL também oferece uma equipe de engenharia de confiabilidade do site (SRE) 24 horas por dia, 7 dias por semana, responsável por garantir a confiabilidade das instâncias do banco de dados do Cloud SQL para MySQL no Google Cloud.
Réplicas de leitura entre regiões é outro recurso que pode ser usado como mecanismo de recuperação de desastres em caso de falhas. Ele permite que um usuário abra rapidamente o banco de dados afetado em outro local (região) com o mínimo de impacto nos negócios.
Escalonabilidade: o Cloud SQL oferece a criação de réplicas de leitura do MySQL, como outras instâncias somente leitura do MySQL, na mesma região ou em regiões remotas que permitem atender às solicitações das réplicas e à instância principal, melhorando a performance da leitura. Réplicas de leitura também podem ser usadas para fins de relatório e podem ser destruídas após as necessidades comerciais serem atendidas.
O Cloud SQL permite escalonamento vertical de recursos (CPU, memória e armazenamento) e redução dos recursos na instância do MySQL com tempo de inatividade mínimo. Já no caso da configuração autogerenciada, essas atividades complicadas exigem muito esforço, experiência e planejamento.
Segurança: os servidores de banco de dados do Cloud SQL para MySQL estão localizados em data centers protegidos do Google Cloud, garantindo o nível mais alto de segurança. Além disso, o Google Cloud oferece conectividade particular com a nuvem privada virtual e acesso de rede controlado pelo usuário com proteção de firewall, o que garante que os servidores de banco de dados do usuário estejam além do alcance de agentes maliciosos.
Outro aspecto da segurança é a conformidade com as regulamentações de segurança. O Cloud SQL está em conformidade com vários regulamentos reconhecidos, como SSAE 16, ISO 27001, PCI DSS e HIPAA.
O Cloud SQL oferece a capacidade de gerenciar usuários e o acesso deles ao banco de dados por meio da integração do IAM. Essa integração gerencia a autorização e a autenticação dos usuários do Google Cloud e fornece acesso granular a recursos específicos do Google Cloud, o que impede o acesso não autorizado ao banco de dados. Além disso, o Cloud SQL facilita o controle de identidade e acesso fornecendo papéis predefinidos projetados para controlar o acesso aos seus recursos do Cloud SQL.
Outro recurso de segurança do Cloud SQL é a criptografia de dados em repouso e em trânsito, garantindo que nenhum usuário não autorizado possa acessar esses dados.
O Cloud SQL oferece um recurso de validação de senha para usuários de banco de dados, que permite aos clientes definir a política de senha para complexidade da senha, tamanho mínimo da senha, intervalo de alteração de senha e uso do nome de usuário na senha no nível da instância. Os clientes também podem definir políticas para os dias de expiração da senha, número de tentativas com falha e requisitos antigos de alteração de senha no nível do usuário individual. Esses recursos no Cloud SQL oferecem práticas recomendadas de conformidade de segurança e reduzem o risco de acesso não autorizado aos dados críticos.
O Cloud SQL também fornece uma maneira de auditar ações e operações no banco de dados MySQL usando um plug-in de registro de auditoria. O registro de auditoria fornece insights sobre quem fez qual ação, em qual objeto e quando. A auditoria do banco de dados permite rastrear ações específicas do usuário no banco de dados, como atualizações de tabela, consultas de leitura, concessões de privilégios a usuários, entre outras.
Observabilidade: o Cloud SQL oferece várias soluções de monitoramento e tem uma lista crescente de métricas prontas para uso, que fornecem insights sobre o estado do banco de dados. Os usuários podem utilizar as métricas para criar alertas e os administradores cientes da integridade do banco de dados.
O Cloud SQL também fornece recursos, como o Query Insights e recomendadores, permitindo que os usuários resolvam problemas e identifiquem os gargalos de performance de uma consulta ou carga de trabalho. Esses recursos são difíceis de replicar em um ambiente MySQL autogerenciado.
Integração: o Cloud SQL facilita a conectividade de rede e a integração com outros serviços do Google Cloud, como o Google Kubernetes Engine, Compute Engine e Cloud Run, que facilitam o desenvolvimento de soluções profundamente integradas. O Cloud SQL também oferece integração nativa com o BigQuery e o Looker, que podem ser usados para o processamento analítico dos dados presentes no Cloud SQL.
Patching: como um serviço gerenciado, o Cloud SQL atualiza automaticamente as instâncias para garantir que o hardware e e o sistema operacional subjacentes sejam confiáveis, eficientes, seguros e atualizados. A maioria dessas atualizações é realizada enquanto a instância do Cloud SQL está em execução. No entanto, algumas atualizações do sistema podem exigir uma breve interrupção do serviço, em que os usuários podem definir janelas de manutenção para a atividade de upgrade.
Upgrades de versão: o Cloud SQL também oferece um processo automatizado de upgrade da versão do banco de dados (MySQL). Os usuários também podem fazer upgrade da versão principal migrando os dados para uma instância de uma versão superior.
Prós
Contras
Prós
Contras
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.