Como a Epic Games usa Kubernetes para manter Fortnite

Apesar de Fortnite não haver um cliente nativo para Linux, os servidores do game rodam sob Linux, mais precisamente numa cadeia de contêineres organizada pelo sistema Kubernetes!

| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


Introdução

Os desenvolvedores de jogos têm requisitos de alto desempenho de sua infraestrutura de servidores de aplicativos. Esses requisitos são ainda maiores para a Epic Games, proprietária e operadora do game Fortnite, que é um dos jogos mais populares do mundo atualmente.

Em uma sessão de mídia e analistas na conferência KubeCon + CloudNativeCon NA 18, Paul Sharpe, principal desenvolvedor de engenharia de nuvem da Epic Games, fornece algumas dicas sobre como a Epic Games está começando a usar o Kubernetes para ajudar a manter felizes os milhões de fãs da Fortnite.

“Esta é a minha primeira vez na indústria de jogos, eu não sabia o que esperar quando entrei, mas acontece que escalar um videogame é como escalar qualquer outro produto de sucesso”, disse Sharpe. “O desenvolvimento de jogos modernos é na verdade um monte de microsserviços e outros tipos de tecnologia que são usados ​​fora da indústria de jogos.”

Sharpe disse que a Epic Games já investiu pesadamente na AWS (Amazon Web Services) e tem usado contêineres Docker. Ele acrescentou que mudar para o Kubernetes é uma evolução natural do trabalho da Epic Games, que trata de melhorar a vida dos desenvolvedores.

“Neste momento, nossos desenvolvedores precisam fazer muito manualmente com balanceadores de carga e com as próprias instâncias do EC2”, disse ele. “O Kubernetes nos permite fornecer abstrações para remover sua responsabilidade de lidar com isso diretamente, basicamente deixar que eles se concentrem apenas na solução de problemas que precisam de fato resolver diretamente.”

Além do Kubernetes, Sharpe disse que a Epic Games está interessada nos projetos OpenTracing de código aberto, incluindo o projeto Jaeger, e está no processo de descobrir as ferramentas certas para implementar na produção. Sharpe acrescentou que a Epic Games está trabalhando em customizações sobre como integrar os fluxos de trabalho do Kubernetes em seu ambiente de uma maneira que não seja prejudicial para os desenvolvedores.

Suporte Linux

Os principais serviços de back-end para o jogo Fortnite são executados em servidores Linux.

“Em termos da pilha em si, somos uma grande loja do Linux”, disse Sharpe. “Temos um conjunto de microsserviços, escritos em vários idiomas, incluindo Java e Scala, alguns serviços são RESTful e obviamente temos clientes C ++.”

Para monitoramento e métricas, a Epic Games está usando o projeto de código aberto Prometheus, FluentD, InfluxData e Telegraf. Ele acrescentou que a Epic Games está atualmente no EKS (EC2 Kubernetes Service) que é executado na AWS.

“Somos uma grande empresa de jogos, mas somos pequenos no sentido de contar com a quantidade de recursos que temos para administrar esse tipo de coisa, então coisas como o Kubernetes são muito úteis”, disse ele.

Kubernetes e Contêineres

Um container Linux é um conjunto de um ou mais processos organizados isoladamente do sistema. Todos os arquivos necessários à execução de tais processos são fornecidos por uma imagem distinta. Na prática, os containers Linux são portáteis e consistentes durante toda a migração entre os ambientes de desenvolvimento, teste e produção. Essas características os tornam uma opção muito mais rápida do que os pipelines de desenvolvimento ou máquinas virtuais, que dependem da replicação dos ambientes de teste tradicionais.

Já o Kubernetes, k8s (k + 8 caracteres + s, entendeu?) ou “kube”, para aqueles que gostam de ser concisos, é uma plataforma open source que automatiza as operações dos containers Linux. Essa plataforma elimina grande parte dos processos manuais necessários para implantar e escalar as aplicações em containers. Em outras palavras, se você desejar agrupar em clusters os hosts executados nos containers Linux, o Kubernetes ajudará a gerenciar esses clusters com facilidade e eficiência. Esses clusters podem abranger hosts em clouds públicas, privadas ou híbridas.

Futuramente farei uma publicação dedicada a explicar esse grande braço da informática que está em franca ascensão que são os contêineres.

#UrbanCompassPony

Artigo escrito originalmente por Sean Michael Kerner para a ServerWatch.com e adaptado para nosso idioma com as modificações necessárias.

Deixe um comentário