Nota oficial: Conclusão do processo de migração dos servidores GameVicio

#Notícia Publicado por GameVicio, em .

Após várias semanas de muito trabalho, ontem conseguimos concluir a maioria das mudanças não apenas no hardware, mas também na programação do site.

A nova infraestrutura

No início do ano tínhamos 3 servidores físicos (servidor principal, de mídia e de banco de dados) e conforme as visitas cresceram e novos projetos começaram a se desenvolver notamos que estávamos sendo limitados pelo hardware e metologodia presentes.

Os servidores físicos foram substituídos por 15 clouds (ou CCIs) que levam nomes dos personagens do anime e mangá Bleach. Enquanto nos servidores físicos usávamos o cPanel para administração do site e que no final não estava sendo tão eficaz, agora nos clouds fazemos a configuração "bruta" na mão e criamos nosso próprio gerenciador. Em uma única tela acompanhamos os dados de saúde (carga da cpu, memória, requisições do apache, espaço livre em disco, etc) de todas as CCIs. Neste novo modelo de administração, a cada 15 minutos, os serviços vitais de todas as CCIs são testados e caso algum falhe na segunda tentativa, um email é automaticamente disparado para nossa área de TI.

Cada CCI possui tarefas únicas, por exemplo alguns são responsáveis por entregar avatares dos usuários, outros por demais mídias (javascript, css, thumbs) outro para email, outro para API da home e assim por diante. Desta maneira, foi possível isolar os recursos home, club, forum e hhide.

A programação

Além da mudança na codificação da base de dados, precisamos reescrever nossa classe de conexão de banco de dados que já trabalhava com Singleton, mas agora precisava trabalhar com múltiplas instâncias, isto é, com mais de um banco de dados presente em outro servidor. Basicamente temos 3 CCIs para banco de dados: o banco de dados principal, o banco de dados de email e o banco de dados para contabilidade e filas.

O cache ficou mais inteligente, enquanto que na listagem de comentários ele foi eliminado, na busca do site ele foi aprimorado. Veja o modelo:

Sem cache: Usuário faz busca por "gta" -> site chama a api -> api chama o banco

Com cache: Usuário faz busca por "gta" -> leitura de dados locais

Desta forma, uma busca que poderia demorar de 5 a 15 segundos consegue ser entregue em 0,5 segundo (se já estiver em cache). O banco mais aliviado garante respostas mais rápidas para tarefas que não podem ser colocadas em cache como o login e a postagem do comentário.

Atualização mais inteligente

Atualmente temos cerca de 300 mil visitas diárias e planejamos o novo modelo para suportar o dobro de visitas e especialmente lidar com os picos de acesso. Introduzimos o conceito de filas. Vamos pegar um modelo prático para exemplificar como as filas trabalham para a construção das páginas do site. Vamos supor que em um período de 10 segundos uma mesma notícia recebeu 20 comentários.

Modelo sem filas: A página de leitura da notícia será reconstruída 20 vezes consecutivas

Modelo com fila: Como o período de atualização é muito curto, o construtor analisará e agrupará as construções e construirá a página 1 única vez ou no máximo 2 vezes. O construtor também analisa o equilíbrio de todas as demais CCIs, assim, em um horário de muito acesso, a construção pode ser atrasada por talvez 1 minuto.

Também vale ressaltar que a atualização de páginas adjacentes também se beneficiaram deste modelo, como por exemplo, ao postar uma notícia do jogo X, a ficha de perfil dele será reconstruída somente após a página de notícia e demais páginas prioritárias serem geradas.

Porém, queremos salientar que este modelo chegou à plenitudade apenas nos últimos dias. Enquanto estávamos aprimorando-o, estávamos cientes que certas áreas não se atualizavam. Também ressaltamos que este modelo está ativo, mas a nova estrutura está com bastante fólego que praticamente não tem havido atraso, imaginamos que só virá a ser útil depois das 450 mil visitas diárias. Não vai haver nenhuma perda para os usuários, se olharem com mais calma, notarão que as interações ficaram mais rápidas e as postagens de comentários mais dinâmicas.

Flow

O serviço do Flow foi reestabelecido neste último sábado (dia 8), ele foi o mais difícil devido às bibliotecas de criptografia usadas no modelo de comunicação não serem mais compatíveis com as versões mais recentes dos softwares instalados em nossas CCIs. Assim, tivemos de achar novas bibliotecas e reescrever todo o modelo de comunicação. Um detalhe importante é que se você já o tiver instalado em sua máquina, será necesssário baixá-lo novamente para voltar a funcionar.

Os bugs diminuíram, mas nunca sumirão por completo, pois sempre estamos trabalhando em aprimoramentos e também nos novos sites e serviços que não tardarão a chegar. Mas estamos felizes com os resultados positivos - apenas olhando o número de comentários e visualizações nas notícias. Também encorajamos a postagem de bugs em nosso forum, visto que podemos não estar cientes de alguns problemas que vocês possam estar enfrentando ao interagir com o site.

Agradecimentos ao SteelDragon, hoje um dos grandes especialistas em administração de servidores Linux e computação em nuvem do Brasil.

Att,

Equipe GameVicio

Marcos
Marcos #GameVicio

Só valorizamos o que nos é privado

, Curitiba