Uma migração é um projeto, não um ticket.
A plataforma de alto tráfego de um editor, redesenhada para escala, testada sob carga e migrada para o nosso bare metal. O impacto visível para o cliente foi uma janela de cerca de cinco minutos dentro de uma operação de duas horas.
Neste artigo 4 secções
- O grupo de sites de alto tráfego de um grande editor tinha de mudar de datacenter para o nosso bare metal, redesenhado para escala pelo caminho. O tráfego das notícias de última hora é o negócio deles, e cada leitor veria uma má transição final (cutover).
- Desenhámos primeiro a plataforma: uma edge cache de dois níveis em all-flash SAN, um load balancer afinado para contagens de ligações muito elevadas, uma camada de base de dados com separação read/write e uma camada de object cache.
- Depois provámo-la com um teste de carga à escala real, antes de um único leitor real ser movido.
- O cutover foi uma operação de duas horas com uma janela de DNS visível para o cliente de cerca de cinco minutos, cada fase com um caminho de rollback.
São sites de notícias e lifestyle em que o pico de tráfego é o próprio negócio. Uma migração que os deita abaixo, ou os levanta mais lentos, é visível para cada leitor a meio de uma notícia de última hora. Isto nunca iria ser um ticket. Foi um projeto com uma noite de cutover.
Porquê uma só equipa para todo o trabalho
O trabalho precisava de duas coisas ao mesmo tempo, de uma só equipa: a engenharia para redesenhar as camadas de caching e de base de dados, e a infraestrutura própria (all-flash SAN enterprise, um verdadeiro fabric de rede) onde a assentar. Juntámos os engenheiros e o metal, e a noite do cutover foi responsabilidade nossa.
A plataforma, tal como foi desenhada
A intenção do desenho era três coisas ao mesmo tempo: redesenhar para escala na cache e na base de dados, fazer o cutover com uma janela mínima e delimitada, e levar cada peça do novo desenho intacta através do cutover. Eis no que se tornou.
Edge cache Varnish de dois níveis
HAProxy à frente
ProxySQL em cada web node
Cluster Percona XtraDB
Valkey + Sentinel
O determinístico vence o elegante
A base de dados foi movida com um hot backup recente em vez de um catch-up de replicação em direto. Foi uma decisão de desenho com uma justificação declarada: um backup é determinístico, por isso o que está no backup é o que o novo cluster tem, sem estado de replicação para desenredar no pior momento possível. O caminho mais elegante existe, e recusámo-lo de propósito. Na noite do cutover quer-se a mudança cujo resultado já se conhece.
Mover os dados depressa significou retransmiti-los em dois saltos: pela internet pública até um relay de staging, e depois pela LAN interna a line rate, transformando uma cópia limitada pela encriptação em poucos minutos. No destino, o cluster foi reconstruído a partir do backup e ressincronizado nó a nó.
E uma sincronização do filesystem levou uma lista de exclusões cirúrgica para que a migração não pudesse esmagar a configuração da nova casa: a configuração do apontador da base de dados, o drop-in da object cache e a instalação da cache de dois níveis foram todos explicitamente preservados. A única peça de estado que um restore de base de dados apaga silenciosamente, a ativação do plugin de cache-purge, foi mapeada de antemão com a sua reativação pronta a disparar. É isso que significa desenhar o cutover duas vezes: uma vez para a frente, e outra para tudo o que poderia morder pelo caminho.
Os dados, em dois saltos
Internet pública até um relay de staging, depois a LAN interna a line rate. Minutos, não horas.
Cluster reposto a partir do hot backup
Ressincronizado nó a nó.
Mudança do filesystem, protegida
Uma lista de exclusões protege a nova arquitetura de ser esmagada.
O DNS muda
A janela visível: cerca de cinco minutos.
A única definição apagada em silêncio, reativada
A horas, porque tinha sido mapeada de antemão.
“Não movemos os seus servidores. Reconstruímos a sua plataforma e assentámo-la na nossa, numa janela de cerca de cinco minutos, planeada de antemão.”
No que se tornou a relação
A migração foi o ponto de entrada, não o fim. Os sites irmãos seguiram o mesmo padrão, e a disciplina operacional veio como parte da construção e não como um upsell posterior: hot backups frequentes da base de dados e snapshots do filesystem retidos, edge caches afinadas, uma camada de monitorização de desempenho para toda a frota, e validação por teste de carga antes do lançamento. A relação assentou em «operamos e evoluímos a plataforma», não em «alojamo-la».
Respostas diretas
Conseguem migrar um site de alto tráfego sem o deitar abaixo?+
Planeamos uma janela delimitada e declaramo-la de antemão. Neste projeto: cerca de cinco minutos de propagação de DNS visível para o cliente dentro de uma operação de duas horas.
Backup e restore ou replicação para uma migração de base de dados?+
Ambos são legítimos. Aqui escolhemos um hot backup recente porque é determinístico: o que está no backup é o que o novo cluster tem, sem estado de replicação para desenredar a meio do cutover. O caminho elegante nem sempre é o seguro.
O que deve incluir um plano de rollback de uma migração?+
Um caminho de rollback em cada fase, e um caminho documentado de regresso à origem até a nova plataforma ter conquistado confiança.
Redesenham durante uma migração ou limitam-se a mover as coisas?+
Se a mudança merece um projeto, normalmente merece também o redesenho. Esta plataforma ganhou uma edge cache de dois níveis, uma camada de base de dados com separação read/write e uma camada de object cache pelo caminho. O lift-and-shift é por vezes o certo, mas é uma decisão, não uma predefinição.
A planear uma mudança? Traga-nos a plataforma, não um ticket.
Desenho, teste de carga, playbook de cutover, cordas de rollback. Dizemos-lhe a janela honesta antes da noite, e seguramos a rede de segurança.
Fale com um engenheiroChegou ao fim.
Ponha a leitura em prática
O que executa?
Fale-nos da carga de trabalho, do tráfego e dos requisitos de recuperação. Comece pelo configurador de servidores ou discuta os detalhes com um engenheiro.
Escrito pelos engenheiros que constroem e operam a infraestrutura que descreve.Fale com um engenheiro
