Saltar para o conteúdo
EuroVPSEuroVPS

O que fazemos · Dados e web: Object caching com failover automático

Valkey e Redis managed com Sentinel, trios replicados, promoção automática em segundos, transparente para WordPress e PHP, sem single point of failure na cache.
Chassis de blades HPE c7000 no Digital Realty Athens

Uma object cache é o que impede o WordPress, o Magento e o Laravel de fazerem à base de dados a mesma pergunta milhares de vezes por minuto. Operamo-la como um trio replicado com promoção automática, para que a falha de um nó de cache nunca se transforme numa base de dados sem cache e sobrecarregada.

O que é

O Valkey (e o Redis, o seu antecessor compatível) guarda resultados calculados em memória: opções, menus, dados de sessão, resultados de queries, fragmentos renderizados. Isso torna a cache parte da sua disponibilidade, não apenas do seu desempenho. Uma única instância de cache é um single point of failure escondido, e nós não construímos dessas.

Como o construímos

  • Três nós, um primário e duas réplicas, em hosts separados com anti-affinity rígida, para que nunca dois fiquem no mesmo hardware.
  • Três Sentinels com um quorum de dois vigiam o primário. Se este falhar, entram em acordo, promovem uma réplica e indicam aos clientes onde está o novo primário.
  • As aplicações ligam-se através do Sentinel, usando o nome do serviço em vez de um host e porta fixos. Uma promoção é transparente para o PHP: nenhuma alteração de configuração, nenhum reinício.
  • Deteção rápida por desenho. O Sentinel está afinado para detetar um primário morto em poucos segundos. Um failover breve e desnecessário custa muito menos do que uma janela longa com um primário morto.
  • Isolamento onde conta. As propriedades mais pequenas podem partilhar um cluster através de bases de dados lógicas separadas; os sites grandes ou críticos recebem a sua própria instância, para que um evento de cache num site nunca possa esvaziar a de outro.

Integramos também o lado da aplicação: o drop-in de object cache do WordPress configurado para Sentinel, os drivers de cache e sessão do Laravel, ou o equivalente do seu framework.

Do que o protege

  • Um servidor de cache a falhar e todos os sites atrás dele a recorrerem à base de dados ao mesmo tempo.
  • Uma cache partilhada a encher e a expulsar as chaves de que todos os sites dependem.
  • Um flush ou um mau deploy de um site a esvaziar a cache dos vizinhos.
  • Intervenção manual a meio da noite para apontar as aplicações a um novo host de cache.
  • Entradas obsoletas que sobrevivem a uma release, porque fazemos flush e aquecemos a cache como parte de cada plano de deployment.

Na prática

Matar o primário, de propósito. Na plataforma de uma editora com vários sites parámos o primário da cache durante os testes de aceitação. O Sentinel promoveu uma réplica em cerca de seis segundos e todos os sites recuperaram sozinhos, sem qualquer ação humana. Numa plataforma de analytics construída mais tarde, o mesmo teste mediu cerca de sete segundos.

Porquê a EuroVPS

  • Failover baseado em Sentinel como predefinição, não como extra pago.
  • Anti-affinity imposta, para que as réplicas nunca partilhem hardware com o seu primário.
  • Configuramos também o lado da aplicação, para que o failover chegue de facto ao PHP.
  • Cada construção é testada em failover antes da entrega, com o tempo medido registado por escrito.

Perguntas frequentes

Valkey ou Redis? O Valkey é um fork open source compatível com o Redis. As aplicações e as bibliotecas de cliente funcionam sem alterações. Corremos o que a sua stack exigir.

O nosso site vai abaixo durante um failover da cache? Os pedidos em curso durante os poucos segundos da promoção podem falhar a cache ou ser repetidos. Depois, tudo continua no novo primário automaticamente.

Precisamos disto para um site pequeno? Uma única instância serve para um site pequeno cuja base de dados aguenta toda a carga. A partir do momento em que perder a cache sobrecarregaria a base de dados, deve ser replicada.

As sessões podem viver nela? Sim. Com replicação e Sentinel, as sessões sobrevivem à perda de um nó de cache.

Podem cuidar do nosso plugin de object cache do WordPress? Sim. Configuramo-lo e mantemo-lo como parte da stack.

Quer uma cache que faz failover antes de alguém reparar? Fale com um engenheiro.

O seu próximo parceiro de infraestrutura

Vamos analisar a sua infraestrutura.

Diga-nos o que executa hoje e o que precisa de melhorar. Um engenheiro vai analisar o seu pedido e ajudar a planear o passo seguinte.

+357 222 32280
Um engenheiro da EuroVPS a transportar um nó de servidor no piso do datacenter
Uma conversa com as pessoas que vão cuidar da sua infraestrutura.

Comecemos pela sua infraestrutura.

Um pouco de contexto ajuda-nos a começar a conversa certa.

Utilizaremos os seus dados para responder ao seu pedido. Política de privacidade