Benefícios
AWS re:Invent 2023
O conteúdo deste estudo de caso foi apresentado no AWS re:Invent 2023 na sessão “Modernização da Nintendo eShop: Microsserviço e engenharia de plataforma”. Assista ao vídeo para obter mais informações.
Sobre a Nintendo Systems Co., Ltd
A Nintendo Systems foi fundada em abril de 2023 com uma equipe de engenheiros da Nintendo e da DeNA Co., Ltd., com o objetivo de desenvolver sistemas para levar o entretenimento da Nintendo aos usuários. Os funcionários aplicam sua ampla variedade de habilidades, seu vasto conhecimento sobre as inovações da Nintendo e a tecnologia da DeNA, além de seu apreço pela originalidade e flexibilidade, para participar de discussões voltadas para a criação de resultados e sistemas incríveis que só podem ser alcançados pelo trabalho em equipe.
Visão geral
A Nintendo Co., Ltd. fundou a Nintendo Systems Co., Ltd. em abril de 2023 para criar sistemas que facilitam o entretenimento para os clientes. A nova empresa, que também está modernizando a plataforma Nintendo eShop, adotou a Engenharia de plataforma em 2020. A Nintendo Systems escolheu os serviços gerenciados da Amazon Web Services (AWS) para modernizar uma plataforma interna compartilhada para o desenvolvimento de sistemas voltados para o cliente. A tecnologia da AWS permite que a Nintendo Systems desenvolva internamente sistemas capazes de resistir a picos de acesso seguindo uma abordagem de autoatendimento.
Oportunidade | Modernizar a arquitetura para apoiar o crescimento dos serviços
A Nintendo Systems é responsável pelo desenvolvimento e pela exploração dos serviços da rede Nintendo, como a Nintendo Account e a Game News. A Nintendo eShop, uma loja online que permite aos usuários baixar softwares e comprar conteúdo adicional pela Internet, é um dos serviços oferecidos pela empresa.
Lançada em 2011, ela agora oferece serviço 24 horas por dia, 7 dias por semana, em mais de 40 países para o Nintendo Switch, que já vendeu mais de 130 milhões de unidades em todo o mundo. As vendas de conteúdo digital da Nintendo cresceram mais de dez vezes entre 2017 e 2023 e, atualmente, quase 50% do total de vendas de jogos da Nintendo são compras digitais.
A Nintendo inicialmente executou a plataforma eShop on-premises, mas a migrou para a AWS em 2015 para acomodar o rápido crescimento de usuários durante a temporada de compras de fim de ano. “Escolhemos a AWS por causa do Amazon RDS para Oracle, um serviço gerenciado para o uso de bancos de dados Oracle, e seu histórico comprovado em nossa empresa”, diz Junichi Furutaka, chefe do departamento de desenvolvimento de sistemas da Nintendo Systems.
Apesar de a migração para a AWS ter resolvido os problemas de escala, a arquitetura da Nintendo permaneceu monolítica. Consequentemente, restrições no tamanho das instâncias do Amazon Relational Database Service (Amazon RDS) limitavam a escalabilidade de todo o serviço da eShop durante períodos de tráfego intenso.
Além disso, funções recém-adicionadas e o cumprimento de requisitos legais internacionais como um serviço global estavam tornando a infraestrutura cada vez mais complicada e uma caixa-preta no que se refere ao desenvolvimento de aplicações. De acordo com Shinya Ogura, gerente do Departamento de desenvolvimento de sistemas da Nintendo Systems, “Com o passar do tempo, tínhamos cada vez menos engenheiros que compreendiam nossa lógica anterior. A modernização da arquitetura era imprescindível para remover as barreiras que impediam o aprimoramento da funcionalidade e o aumento da produtividade.”
Solução | Construir uma abordagem de engenharia de plataforma
Para o projeto de modernização, a Nintendo Systems separou os serviços adotando uma arquitetura de microsserviços para manutenção a longo prazo, melhor produtividade, ciclos de lançamento mais rápidos e escalabilidade econômica. Antes, cada serviço era desenvolvido por um desenvolvedor de aplicações e um engenheiro de DevOps, com as funções dos dois diferenciadas com base na conformidade e na governança. Os engenheiros de DevOps eram responsáveis pelas implantações e alterações de arquitetura.
A empresa passou a adotar uma abordagem de engenharia de plataforma para desenvolvimento e administração eficientes. Essa abordagem automatiza as operações de infraestrutura por meio de recursos de autoatendimento que tornam o trabalho dos desenvolvedores de aplicações mais fácil e produtivo.
“Dada a escassez de engenheiros de DevOps, precisávamos criar um sistema que aumentasse a produtividade do desenvolvimento, permitindo que os desenvolvedores de aplicações desenvolvessem aplicações e infraestrutura de forma autônoma”, explica Ogura. “Porém, a implantação de ponta a ponta por desenvolvedores de aplicações não é realista. Portanto, decidimos usar a engenharia de plataforma, que fornece uma infraestrutura de autoatendimento compartilhada, para facilitar as workloads dos desenvolvedores de aplicações.”
A chave para a engenharia de plataforma foi uma nova Plataforma de desenvolvedores internos (IDP), que inclui um framework de aplicações, um orquestrador de contêineres e CI/CD (integração contínua/entrega contínua). A Nintendo Systems opera uma plataforma para executar aplicações em serviços gerenciados do Amazon ECS no AWS Fargate, enquanto seus desenvolvedores criam aplicações e infraestrutura usando o IDP.
“Comparamos o Amazon ECS e o Amazon Elastic Kubernetes Service (Amazon EKS) como candidatos à infraestrutura de execução das aplicações”, diz Furutaka. “Para a governança, criamos contas dedicadas da AWS para cada serviço, mas achamos difícil executar o Kubernetes para cada conta. Escolhemos a plataforma Amazon ECS no AWS Fargate para capacitar os desenvolvedores não familiarizados com o Kubernetes a criar e operar facilmente aplicações em contêineres.”
Resultado | Lançamentos mais rápidos de serviços de aplicativos e infraestrutura Resultado | Lançamentos mais rápidos de serviços de aplicativos e infraestrutura
O esforço de engenharia da plataforma transformou a conscientização entre desenvolvedores de aplicações e engenheiros de DevOps e impulsionou o desenvolvimento de componentes que constituem o IDP. Em preparação para o lançamento do jogo Legend of Zelda: Tears of the Kingdom em maio de 2023, os desenvolvedores usaram os componentes do IDP para desenvolvimento por autoatendimento, o Amazon ECS no AWS Fargate como plataforma de aplicações, o Amazon DynamoDB para bancos de dados e o AWS CloudHSM para gerenciar direitos digitais.
O sistema resistiu aos picos de tráfego no dia do lançamento graças aos desenvolvedores de aplicações que usaram as previsões de lançamento e as pré-encomendas do jogo para escalar o Amazon ECS para 120 tarefas, escalar instâncias do AWS CloudHSM e alterar o modo de capacidade do Amazon DynamoDB.
“Nossa abordagem de engenharia de plataforma com a AWS proporcionou um desenvolvimento mais eficiente e rápido e a agilização do lançamento de novos serviços para aplicações e infraestrutura”, diz Ogura. “Continuaremos a promover a engenharia de plataforma entre todas as equipes de serviços.”
Na próxima etapa, a Nintendo Systems adotará o Amazon ECS Service Connect e o Amazon VPC Lattice para impulsionar ainda mais o autoatendimento, simplificando as conexões entre contas e entre VPCs.
De acordo com Furutaka, “a AWS nos forneceu amplas informações desde a fase de seleção da arquitetura. As solicitações para analisar nossa arquitetura durante o desenvolvimento foram atendidas com conselhos generosos e nossas muitas perguntas técnicas foram respondidas por meio de canais diretos. Os serviços gerenciados da AWS são indispensáveis para o desenvolvimento por autoatendimento. No futuro, continuaremos a aplicar os novos recursos da AWS para aprimorar nossa plataforma de serviços.”
Diagrama da arquitetura
“Descobrimos que nossa abordagem de engenharia de plataforma com a AWS levou a um desenvolvimento mais eficiente e ao lançamento mais rápido de novos serviços para aplicativos e infraestrutura.”
Shinya Ogura
Gerente do departamento de desenvolvimento de sistemas da Nintendo SystemsSistemas Nintendo
Shinya Ogura
Junichi Furutaka