top of page

Um pequeno VPS como frota de servidores de jogo

Foto do escritor: Marcel Dütscher
Marcel Dütscher
5 de jul.
2 min de leitura

Todos os nossos mundos online — o portal, os Mundos Oficiais, os mundos criados pelos jogadores — rodam em um único servidor Linux alugado (VPS). Sem data center, sem conta de nuvem de cinco dígitos. Neste artigo vou mostrar como o servidor está montado e o que aprendemos pelo caminho.


Primeiro, o reforço de segurança. Antes de o jogo ter permissão para entrar no servidor, veio a segurança básica: um firewall (ufw) que só abre as portas necessárias, o fail2ban contra tentativas automáticas de login e SSH apenas com chaves. O Caddy roda como proxy reverso na versão Docker — ele busca certificados TLS automaticamente e encaminha as requisições para os contêineres certos.


Cada mundo tem seu próprio contêiner. O jogo roda como uma imagem Docker, e cada mundo recebe seu próprio contêiner com limites fixos: 768 MB de RAM e 2 núcleos de CPU por mundo, no máximo dez mundos ativos ao mesmo tempo. Assim, um único mundo nunca consegue derrubar o servidor inteiro.


Monitoramento que liga para a gente. O Netdata vigia o servidor com mais de 140 alarmes — de "disco enchendo" a "portal não responde". Se algo dispara, uma notificação push chega no celular (via ntfy). Assim, ficamos sabendo dos problemas antes dos jogadores.


A descoberta mais surpreendente: quando medimos em repouso, mais ou menos metade da memória usada nem ia para o jogo — ia para o Docker e para o próprio monitoramento. A infraestrutura que sustenta o jogo é mais pesada em repouso do que o jogo. Um bom lembrete de que é preciso medir em vez de chutar.


O veredito depois de alguns meses de operação: um servidor pequeno e bem protegido sustenta muito bem um jogo multijogador indie — se você definir limites e ficar de olho.

Posts recentes

Ver tudo

Comentários


Não é mais possível comentar esta publicação. Contate o proprietário do site para mais informações.
bottom of page