DevOps para celular na prática

Olá Habr! Hoje, estamos compartilhando com você um guia simples e compreensível sobre como colocar o DevOps móvel em prática. Além do manual em papel, também é possível encontrar gravações em vídeo do workshop com o mesmo nome, que abrange todos os aspectos do DevOps em relação ao desenvolvimento móvel.



Dou a palavra ao autor, Vyacheslav Chernikov.

DevOps para dispositivos móveis: um guia para ação


Saudações a você, leitor. O verão voltou a voar na velocidade de um cometa e, junto com o outono, chegou a hora de retornar a 150% da produtividade. Na primavera, a Microsoft e eu preparamos um guia "Mobile DevOps in Practice" sobre como automatizar o processo de desenvolvimento de aplicativos móveis ao máximo. A seguir, é apresentada uma folha informativa do guia completo.

1. Sobre o DevOps


1.1 Sobre a cultura DevOps


O próprio DevOps caminha lentamente pelo planeta abraçando técnicas de gerenciamento flexíveis. No entanto, se você olhar um pouco mais fundo, o DevOps é principalmente uma cultura na qual toda a equipe que desenvolve e mantém um sistema de TI trabalha como um todo. É a comunicação dentro da equipe que é necessária para criar uma interação saudável entre negócios, programadores, administradores de sistema e testadores.

O segundo elemento importante de qualquer processo do DevOps é o treinamento da equipe. Em um mundo ideal, uma equipe (começando com um negócio) deve aprender a atender melhor às necessidades do usuário final, criando valor para o consumidor. Mas, na prática, o “valor” também precisa ser aprendido para contar e tirar conclusões competentes disso. Para o treinamento, em qualquer caso, é necessário o feedback de usuários reais. Essa conexão são sistemas de monitoramento contínuo para a viabilidade de sistemas de TI e uma variedade de sistemas de registro.

E para que esse DevOps exista não apenas nas mentes dos desenvolvedores, ele deve ser colocado em prática usando ferramentas adequadas às necessidades da tarefa. Parte da cultura DevOps também é o desejo de automatizar atividades rotineiras. Isso torna o processo de desenvolvimento e desenvolvimento de sistemas de TI menos doloroso e mais eficiente.

1.2 Qual é a diferença entre DevOps e Mobile DevOps


O próprio DevOps apareceu como uma abordagem para grandes equipes e empresas que trabalham em grandes sistemas de TI, consistindo em um grande número de módulos, geralmente escritos em diferentes linguagens de programação e projetados para diferentes ambientes de tempo de execução. No entanto, à medida que o termo e a abordagem se tornaram mais populares, o DevOps começou a ser adaptado por várias equipes, resolvendo uma ampla gama de problemas.

Na maioria das vezes, o DevOps está associado a grandes produtos digitais, cujo desenvolvimento e manutenção são realizados por dezenas, centenas e às vezes milhares de especialistas. Muitas equipes já desenvolveram suas próprias práticas e suas próprias ferramentas para dar suporte ao processo do DevOps - um sistema para montagem, teste, implantação e monitoramento automáticos. Geralmente, tudo isso é criado em sua própria infraestrutura, mas as ferramentas de nuvem de CI / CD também estão se desenvolvendo ativamente.



Figura 1. Diferença entre Mobile DevOps e Enterprise DevOps

Tudo isso está pouco associado ao desenvolvimento de aplicativos móveis. O Mobile DevOps é uma versão "menor" do DevOps comum, pois os aplicativos móveis são principalmente uma interface conveniente para interagir com sistemas de TI externos. A escala menor da equipe e seus problemas específicos, específicos para aplicativos móveis (veja a Figura 1):

  • - várias plataformas;
  • - vários dispositivos.

1.3 Documentação unificada e um único idioma


Para que o DevOps funcione e haja uma interação real entre as equipes, você precisa de um único idioma e uma única documentação de trabalho, compreensível para todos os participantes. Aqui, nenhuma abordagem fornece diretrizes claras e os sistemas são todos diferentes. No entanto, é a documentação que convive com o projeto por todo o ciclo de vida e é uma ferramenta para comunicação e interação da equipe.



Figura 2. Documentação de trabalho

A documentação de trabalho competente pode simplificar e acelerar o desenvolvimento do projeto. Esse processo é descrito em mais detalhes em nosso Guia nº 2 " Design técnico de aplicativos móveis ".

Aqui vamos identificar os principais documentos (veja a Figura 2):

- lista de telas;
- mapa de transições e estados;
- tabela de telas.

O uso de nomeação e numeração de ponta a ponta nesses documentos é importante. Isso é o que simplifica e acelera o processo de comunicação dentro da equipe. Outro fator importante é a conformidade "código-de-documentação", que deixa clara a comunicação dos negócios com os desenvolvedores.

2. Recursos do CI / CD móvel


Então, decidimos sobre a cultura da interação e da documentação de trabalho e agora podemos passar para o suporte instrumental na forma de um pipeline de CI / CD. Quanto mais operações você puder automatizar, melhor.

2.1 Problemas no desenvolvimento de dispositivos móveis


O desenvolvimento móvel possui 3 áreas problemáticas distintas:

  • Vários sistemas operacionais e suas versões. O aplicativo deve funcionar corretamente em uma ampla variedade de sistemas operacionais diferentes, cada um com suas próprias características e limitações.
  • Várias opções para a arquitetura do processador central. O hardware de smartphones e tablets está em constante aprimoramento, mas não se esqueça dos "idosos" cinco anos atrás, que podem estar nas mãos de seus usuários reais.
  • Diferentes resoluções de tela dos dispositivos. Independentemente do número de pixels ou proporção, a interface do aplicativo móvel deve ser exibida corretamente em todos os dispositivos.

Em geral, é indispensável testar e depurar uma grande frota de dispositivos reais.

2.2 O que pode ser testado automaticamente


Na prática real, é impossível prescindir de testes manuais em smartphones ou tablets. No entanto, parte do código é facilmente coberta por testes automatizados baseados em testes de unidade (a seguir, simplesmente testes de unidade). Vejamos a arquitetura típica da maioria dos aplicativos - Figura 3.



Figura 3. Arquitetura clássica de três camadas

Testes de cobertura total é mais sábio realizar testes em 2 direções:

  • testes de unidade (funcional, integração) para a camada de acesso a dados ou repositórios.
  • Testes de interface do usuário (funcional, regressão) para camadas de lógica de negócios e interface do usuário.

Não é possível cobrir tudo com testes de unidade em aplicativos móveis, além de reduzir a velocidade de desenvolvimento e atualização do sistema. Para a fase de teste automático de unidade do pipeline de CI / CD, será útil cobrir os seguintes mecanismos da camada DAL:

  • Métodos de acesso à API de back-end
  • métodos de acesso a dados (repositórios);

Se falamos sobre testes automáticos de interface do usuário, podemos testar o seguinte:

  • operacionalidade da aplicação em dispositivos reais com as características necessárias;
  • a capacidade de executar os principais cenários de negócios.

Com base nos resultados dos testes de interface do usuário, as capturas de tela são coletadas a cada etapa de cada dispositivo; com base em um engenheiro de controle de qualidade, é possível visualizar manualmente o layout correto do aplicativo em diferentes resoluções e tamanhos de tela.

A conveniência, a suavidade das animações e outras características específicas do usuário são difíceis de dedicar aos autotestes; é melhor deixar para os testadores e os usuários beta.

Fim da ficha técnica.



Materiais úteis


Reserve DevOps para celular na prática




A versão digital completa do guia em papel “DevOps móveis na prática” .

Materiais de vídeo do workshop “DevOps móveis na prática” (4 partes por 3,5 horas)


Parte 1




Parte 2




Parte 3




Parte 4




DevOps Summit


Gostaria de discutir o Mobile DevOps ao vivo ou fazer perguntas - ficarei feliz em vê-lo no Microsoft DevOps Summit nos dias 13 de setembro em Moscou ( registro ) ou nos Dias do DevOps nos dias 14 e 15 de setembro em Kazan ( mais ).

Como sempre, serei grato pelo feedback e perguntas nos comentários! Fique em contato!

Sobre o autor


Vyacheslav Chernikov é o chefe do departamento de desenvolvimento da Binwell , Microsoft MVP e Xamarin Certified Developer. No passado, um dos Nokia Champion e Qt Certified Specialist, atualmente especialista em plataformas Xamarin e Azure. Ele entrou na esfera móvel em 2005; desde 2008, desenvolve aplicativos móveis: começou com Symbian, Maemo, Meego, Windows Mobile e depois mudou para iOS, Android e Windows Phone.

Você também pode ler os artigos de Vyacheslav no blog Medium .

Source: https://habr.com/ru/post/pt421465/


All Articles