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 DevOpsTudo 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 trabalhoA 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 camadasTestes 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 .