BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Desafios de continuous delivery para desenvolvimento móvel

Desafios de continuous delivery para desenvolvimento móvel

Favoritos

Jesper Richter-Reichhelm, Chefe de Engenharia da Wooga, falou na GOTO Amsterdam 2014 sobre alguns dos desafios que as equipes enfrentam no desenvolvimento de mobile games com uma mentalidade de Continuous Delivery. Em particular Jesper ressaltou como a falta de controle sobre o processo de entrega de software no celular quase acabou com seus negócios.

Jesper ilustrou seu ponto com uma nova versão de um jogo na App Store no final do ano passado. A liberação demorou quatro dias para ser aceita pela App Store, mas continha um bug crítico que impactava 15% da base de usuários. Embora tenha levado algumas poucas horas para corrigir o erro e enviar uma nova versão à App Store, os usuários só tiveram acesso à nova versão 5 dias mais tarde já que o período coincidiu com feriado de Ação de Graças nos EUA. Milhares de comentários ruins e quase 200.000 usuários afetados quase mataram o jogo e, potencialmente, toda a empresa, disse Jesper.

Práticas cada vez mais comuns que suportam estratégias de continuous delivery na web, tais como a canary deployments (para lançamentos controlados de novas funcionalidades) ou comutação incremental de funcionalidades não são suportados pelo processo de liberação da App Store. Para contornar essas limitações, Wooga investiu no suporte à configurações on-line para os seus jogos e também recorreu a alguns truques como requisitos de dispositivos "artificiais" (como por exemplo, ter uma câmera), a fim de separar seus usuários e ser capaz de fazer canary deployment em algumas funcionalidades. Ainda assim, a equipe depende que os usuários instalem as atualizações de aplicativos e cerca de 10% da base de usuários permanece com versões defasadas em até 18 meses. Alguns preferiam usar o aplicativo off-line a jogar online por causa das atualizações forçadas.

Além disso, a Wooga descontinuou a confecção manual de builds a partir de uma máquina dedicada para submissão à App Store (embora Jesper recomende armazenar o arquivo dSYM no controle de versão para depuração de falhas) por se tratar de um ponto único de falha que aumentava o tempo de reparo caso um novo build precisasse ser enviado à App Store. Uma loja de aplicativos interna foi configurada para representar o processo de liberação e permitir que usuários internos testassem novas versões do jogo (de forma semelhante ao Facebook).

Além do mecanismo de distribuição e MTTR (Mean-Time To-Repair, ou tempo médio de reparo), Jesper também destacou a falta de controle em termos de rede e dispositivos como principais desafios no desenvolvimento móvel na Wooga.

Particularmente flutuações de latência da rede móvel e o uso offline podem levar a perda de dados que por sua vez torna difícil manter a consistência dos dados e depurar problemas enfrentados pelos usuários. A Wooga tentou minimizar este problema através da adopção de comunicação assíncrona com os clientes móveis, tratando todas as mensagens (até mesmo dias de idade) de forma igual e incluindo ETags para resolver conflitos de atualização.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT