Uma atualização sobre nosso servidor
Prezada comunidade do Chess.com,
Em 23 de janeiro, publicamos um artigo sobre o quanto e quão rápido o xadrez tem crescido, bem como o desafio que isso representa para a nossa empresa, especialmente para o nosso "servidor ao vivo", que é onde se jogam as partidas. Desde então, o crescimento só aumentou.
Na sexta-feira, 3 de fevereiro, tivemos um recorde de 403.000 novos usuários registrados no Chess.com. Isso é alucinante e emocionante. Mas também é complicado. Queremos comemorar totalmente este boom do xadrez. Mas, para sermos honestos, sofremos mais do que desfrutamos, pois nossos servidores têm lutado para lidar com o tráfego durante os horários de pico. Sentimos muito pelos problemas que muitos de vocês enfrentaram nas últimas semanas.
Felizmente, acreditamos estar vendo a luz no fim do túnel. E assim queremos dar uma nova atualização sobre o que fizemos e alcançamos nas últimas duas semanas. Dito isto, ainda não estamos no nível de estabilidade que almejamos. Continua sendo um trabalho em andamento.
O que aconteceu?
- O tráfego no Chess.com mais que dobrou nos últimos meses. Somente no mês de janeiro, o tráfego passou de 7 milhões de usuários diários para mais de 11 milhões de usuários diários.
- Isto aconteceu por diversas razões. Entre elas, estar muito bem posicionado (inclusive o número 1) nas lojas de aplicativos, ter muitos eventos excelentes, ter uma comunidade de xadrez incrível que compartilha seu entusiasmo nas redes sociais, criadores de conteúdo de xadrez excepcionais e Mittens.
- Esse tráfego fez com que nossos servidores e nossa infraestrutura sofressem significativamente. Dois dos principais problemas foram os erros 502, que ocorrem quando nosso banco de dados está sobrecarregado, e as desconexões do servidor ao vivo, que ocorrem quando nosso servidor está sobrecarregado.
O que estamos fazendo?
Não é tão simples lidar com tamanho aumento de tráfego quanto identificar um gargalo e removê-lo. Existem muitos componentes de infraestrutura de hardware e nuvem que precisam ser aprimorados, bem como diversas otimizações que devem ser feitas. Aqui estão algumas das coisas que fizemos nas últimas duas semanas.
- Gastamos cerca de 2 milhões de dólares em hardware (servidores web, servidores de banco de dados, novo servidor de xadrez ao vivo, balanceadores de carga e máquinas de serviços adicionais). O hardware principal já foi instalado, mas continuaremos com a instalação durante a próxima semana. Embora dois milhões pareça muito dinheiro, seria muito mais (indispensável) se o Chess.com estivesse hospedado inteiramente na nuvem.
- Temos fragmentado e desacoplado nossa infraestrutura de banco de dados o mais rápido possível. Houve muito progresso nessa área, pois muitas tabelas MySQL foram divididas e nosso código foi refatorado para apontar para essas novas tabelas.
- Identificamos e corrigimos muitos gargalos de software que não eram aparentes antes de atingirmos essa escala.
- Descobrimos que um de nossos uplinks entre nosso centro de dados e um de nossos provedores da nuvem (usamos a nuvem nos casos apropriados!) atingiu a capacidade total e parecia estar tendo problemas quando estamos enfrentando picos de tráfego.
- Aplicamos um limite ao número de usuários não-premium que podem acessar nosso servidor ao vivo durante os horários de pico. Reduzimos esse limite à medida que as métricas melhoram e esperamos poder removê-lo totalmente em breve.
- Ao longo deste processo, cada engenheiro do Chess.com que pode contribuir está trabalhando nisso.
O que conseguimos?
Esta não é uma atualização de "Missão Cumprida". Seguimos trabalhando muito para atingir o nível de desempenho que aspiramos. Dito isto, fizemos melhorias mensuráveis e que queremos compartilhar.
- Reduzimos nossos erros 502 de "sobrecarga de banco de dados" em mais de 90%.
- Também reduzimos a frequência de desconexões do Servidor ao vivo em mais de 90% e facilitamos a reconexão em caso de desconexão.
O que ainda temos que fazer?
Nos próximos meses, continuaremos a fazer muitas melhorias, grandes e pequenas, em nossos servidores. Esperamos que isso continue a ter um impacto positivo para nossos membros. Aqui estão algumas das mudanças que podemos compartilhar.
- Vamos instalar todo o hardware que ainda vai ser entregue para continuar ampliando a capacidade.
- Toda a nossa equipe de engenharia permanece totalmente focada em resolver todos os outros problemas, incluindo mais trabalho de banco de dados, otimização de consultas, separação de peças de aplicação monolítica e transição para mais serviços.
- Trabalharemos com nosso centro de dados e provedor da nuvem para resolver suas limitações.
- Estamos no processo de reescrever nosso Servidor ao vivo, para que possamos passar de um único servidor para um serviço distribuído que pode ser expandido horizontalmente em vários servidores. Atualmente, executamos apenas uma pequena quantidade de partidas neste serviço (partidas de usuários convidados e a maioria das partidas sem rating) enquanto testamos, ajustamos e desenvolvemos os recursos. No entanto, esta semana também começaremos a testar partidas válidas para rating neste serviço. Esperamos muito em breve poder hospedar a maioria das partidas do Chess.com a partir de um serviço distribuído e escalável, em vez de um mega servidor.
O que estamos fazendo para melhorar isso?
Sabemos que muitos de vocês, incluindo membros premium, perderam partidas devido a uma desconexão ou não conseguiram acessar um serviço pelo qual estão pagando. Queremos fazer o que é certo.
- Nesta semana, implementaremos um reembolso automático de rating para partidas que foram perdidas devido à instabilidade do servidor. Este será um plano de alívio de curto prazo para aqueles que foram afetados, enquanto abordamos as questões centrais.
- Iremos disponibilizar as Batalhas de Problemas de forma gratuita para todos os usuários até o final de fevereiro.
- Para nossos usuários premium, este mês adicionaremos cursos premium dos GMs Magnus Carlsen, Peter Svidler, Hou Yifan e muito mais da biblioteca de conteúdo do Chess24 à biblioteca de lições do Chess.com.
Nas palavras do nosso CEO Erik (espere, sou eu… eu escrevi este artigo…), "Todos os dias eu sinto três coisas incrivelmente profundas: 1. coração partido toda vez que vejo a frustração que nossos usuários sentem quando o serviço está instável 2. orgulho da nossa equipe por tudo o que fizeram neste curto espaço de tempo, dada a imprevisibilidade, e 3. esperançoso e confiante de que estaremos em um lugar muito, muito melhor muito em breve."