Equipe de operações de banco de dados da OVHcloud construiu uma infraestrutura de banco de dados escalável e confiável

Equipe de operações de banco de dados da OVHcloud construiu uma infraestrutura de banco de dados escalável e confiável

A equipe de operações de banco de dados da OVHcloud transformou a maneira como gerencia e otimiza sua infraestrutura. Desde melhorar a observabilidade até dimensionar hardware e reduzir consultas lentas em 50%, ela construiu com sucesso um serviço de banco de dados escalável e confiável que atende às necessidades de suas equipes internas de produtos.

O Desafio: Uma demanda crescente por Bancos de Dados Escaláveis

A OVHcloud oferece uma vasta gama de serviços de nuvem, e as equipes internas de produtos que desenvolvem esses serviços dependem muito da infraestrutura fornecida pela equipe de operações de banco de dados. Com mais de 100 clusters de banco de dados em produção, a infraestrutura da OVHcloud é construída no Kubernetes, mas pode acomodar máquinas virtuais e servidores bare metal. O desafio, no entanto, está em manter o desempenho ideal em escala, especialmente à medida que o número de serviços e clientes cresce.

A infraestrutura: clusters de banco de dados resilientes e flexíveis

Os clusters de banco de dados que a OVHcloud executa hoje normalmente consistem em três nós. Um nó primário gerencia o tráfego de gravação, enquanto os outros lidam com solicitações somente leitura e backups. A arquitetura é compartilhada entre os bancos de dados PostgreSQL e MySQL, com cada nó projetado para descarregar cargas de trabalho especializadas. Essa configuração permite que as equipes de produtos operem sem ter que pensar em gerenciamento de banco de dados, pois a infraestrutura é dimensionada conforme necessário, suporta backups e equilibra a carga automaticamente.

Melhor observabilidade necessária

Conforme a demanda aumentou, a equipe de banco de dados começou a ter gargalos. As equipes de produtos frequentemente relatavam problemas de desempenho, mas diagnosticar esses problemas provou ser difícil devido à falta de observabilidade. Para resolver isso, a equipe de banco de dados implementou uma pilha de observabilidade, extraindo logs do PostgreSQL e MySQL para um cluster OpenSearch e centralizando as principais métricas em painéis do Grafana. Isso permitiu que a equipe rastreasse o desempenho em tempo real e respondesse mais rapidamente aos problemas.

Atualizando o hardware para aumentar o desempenho

A observabilidade aprimorada revelou que muitos dos problemas de desempenho eram decorrentes de hardware inadequado. A equipe do banco de dados escalou verticalmente, atualizando para CPUs mais rápidas, adicionando mais RAM, melhorando as velocidades de disco e aprimorando a taxa de transferência de rede em todos os seus nós. Essas atualizações foram essenciais para abordar a causa raiz de muitos dos gargalos de desempenho.

A otimização de consultas SQL reduz consultas lentas em 50%

Além das melhorias de hardware, a equipe de banco de dados adotou uma abordagem mais abrangente para a otimização da carga de trabalho. Inicialmente, a equipe observou mais de 2 milhões de consultas lentas por semana em um único banco de dados. Para lidar com isso, a equipe lançou uma iniciativa de otimização contínua de consultas, analisando logs semanalmente e identificando os bancos de dados responsáveis ​​pelo maior número de consultas lentas. Ao fornecer visibilidade sobre o desempenho de bancos de dados específicos e oferecer feedback automatizado aos desenvolvedores, a equipe conseguiu reduzir o número de consultas lentas de mais de dois milhões para menos de 1 milhão em mais de 1.000 bancos de dados.

SLOs: Estabelecendo expectativas claras

A jornada dos membros da equipe em direção à otimização não parou com melhor observabilidade e desempenho de consulta. Eles implementaram SLOs para seus serviços de banco de dados, definindo metas claras de desempenho e garantindo que os bancos de dados atendessem às necessidades das equipes de produtos que atendem. Essa abordagem orientada por SLO ajudou a equipe a manter um desempenho consistente, mesmo enquanto escala.

Melhoria Contínua: Olhando para o Futuro

Embora a equipe de banco de dados da OVHcloud tenha feito avanços significativos, ela continua buscando maneiras de melhorar. Uma iniciativa atualmente em andamento é o desenvolvimento de um modelo de serviço em camadas, oferecendo diferentes níveis de desempenho de banco de dados com base em quão críticas são as cargas de trabalho. À medida que a OVHcloud continua se expandindo, a equipe de banco de dados também está explorando maneiras de estender sua abordagem a outros tipos de bancos de dados, incluindo armazenamentos de chave-valor e colunares, para garantir que todos os serviços da equipe se beneficiem do mesmo nível de otimização.

Conteúdo Relacionado

O Rails 8 está pronto para redefinir o Desenvolvimento Web
O Rails 8 sempre foi um divisor de águas...
O Futuro da Governança Generativa: Integrando Tecnologia e Valores Humanos
Na era do declínio do império dos Estados Unidos...
Tecnologias essenciais para o Desenvolvimento de Aplicativos Web
Os aplicativos da Web são uma pedra fundamental da...
Repatriação da Nuvem: Uma Tendência Emergente na Indústria de Tecnologia
O mundo da tecnologia tem estado agitado com discussões...
Dominando o java.lang.OutOfMemoryError: Metaspace - Diagnóstico e Soluções Eficazes
Os desenvolvedores Java enfrentam uma variedade de erros relacionados...
A Meta do Design
Com várias décadas de experiência, adoro criar aplicativos corporativos...
Escalabilidade do MySQL 5.7: Entendendo os Desafios e Soluções
A escalabilidade é um fator crítico quando se trata...
Gerenciando Testes Automatizados com Selenium WebDriver e TestNG
Ao trabalhar em um projeto de código aberto no...
A Importância da Inteligência Artificial Explicável (XAI) para Desenvolvedores
A Inteligência Artificial (IA) tem se tornado cada vez...
Modernização da Plataforma de Dados: Superando Desafios e Impulsionando a Inovação
A maioria das organizações enfrenta desafios ao se adaptar...
Quando os Bugs Aparecem, Nós Precisamos Entender os Logs
Quando nós, desenvolvedores, encontramos alguns bugs em nossos logs,...
A Importância da Cibersegurança para Empresas
A cibersegurança é um tópico cada vez mais importante...
A Experiência do Desenvolvedor (DX) com o Stalactite
A experiência do desenvolvedor (DX) é um tópico cada...
Entendendo Distribuições Multimodais em Testes de Desempenho
Ao relatar estatísticas resumidas para resultados de testes de...
O Poder dos Plugins no Kernel Semântico: Desbloqueando o Verdadeiro Potencial da IA Generativa
Explorando as Engrenagens do Kernel Semântico Falei um pouco...
Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.