A equipa da Microsoft Xbox adota a função de SRE para criar uma transmissão de jogos

Veja como a equipa de operações e os programadores se tornaram parceiros de confiança para arquitetar uma implementação do Kubernetes distribuída globalmente.

O desafio: Criar um processo que permita o dimensionamento global

À semelhança de muitas equipas de operações, a equipa de Engenharia e Operações de Fiabilidade da Xbox (xREO) desperdiçava muito tempo a realizar tarefas manuais repetitivas para manter datacenters, implementar novo código e responder a problemas que emergiam da natureza do trabalho numa arquitetura rígida e monolítica concebida por outros profissionais. O esforço investido permitiu-lhes manter o funcionamento do serviço para milhões de subscritores mensais ativos em mais de 40 países e regiões. No entanto, quando a equipa foi incumbida da tarefa de suportar o projeto xCloud, uma experiência de transmissão de jogos com elevados requisitos de baixa latência para jogadores de todo o mundo, tornou-se óbvio que teriam de abandonar a função tradicional da engenharia de serviços, derrubar as barreiras que separam as equipas e reinventar a metodologia de trabalho.

"Even small changes posed a significant risk, which meant we spent a lot of our time firefighting. Our mode of operation was mostly reactive, and we weren't really empowered to do much about it."

James Whitesides, PM de SRE, Engenharia e Operações de Fiabilidade da Xbox

Solucionar o problema do dimensionamento através da colaboração e da automatização

No início do projeto, a equipa de desenvolvimento reconheceu a necessidade de recorrer à equipa de xREO para ajudar a conceber e a criar uma nova arquitetura que tirasse partido do alcance global do Azure. As equipas decidiram começar pelos contentores para separar o código de serviço da infraestrutura e pelo Kubernetes como a escolha óbvia para proceder à orquestração, o que levou a que escolhessem o Azure Kubernetes Service (AKS) totalmente gerido para eliminar muita da complexidade associada à gestão.

Contudo, apesar deste sistema simplificado, o volume de tarefas manuais necessário à criação de cada cluster do Kubernetes assoberbou rapidamente a equipa de xREO. Para assegurar a repetibilidade e a automatização, decidiram criar um pipeline de integração contínua/entrega contínua (CI/CD) com os Pipelines do Azure e utilizar modelos do Azure Resource Manager para aprovisionar recursos com celeridade.

"Now, in the SRE role, we build the platform with the devs, and we are part of their deployment process. We're really focused on building and improving rather than burning down checklists."

James Whitesides, PM de SRE, Engenharia e Operações de Fiabilidade da Xbox

Assumir uma nova função com uma nova missão

Atualmente, o pipeline de CI/CD implementa mais de 35 microsserviços baseados no AKS que dependem de mais de 100 recursos (por região) em diversas regiões do Azure e com mais a caminho. Para implementar uma nova região, a equipa adiciona seis linhas de código e espera que os recursos acelerem.

Com a implementação completamente automatizada, a equipa de xREO passou a exercer a função de engenharia de fiabilidade de sites (SRE), pelo que passa a maior parte do tempo a criar novas ferramentas em vez de a resolver problemas. A equipa de xREO é consultada com frequência como parceiro de confiança da equipa de desenvolvimento e a sua missão é a garantia de um trabalho proativo, altamente gratificante e de elevado valor.

Veja mais de perto a transformação da equipa na sua adoção de uma função de SRE.

Ler a história completa