Bonjour, Habr! Aujourd'hui, nous partageons avec vous un guide simple et compréhensible sur la mise en pratique de Mobile DevOps. En plus du manuel papier, sous la coupe, vous pouvez également trouver des enregistrements vidéo de l'atelier du même nom, qui couvre tous les aspects de DevOps en relation avec le développement mobile.
Je donne la parole à l'auteur, Vyacheslav Chernikov.Mobile DevOps: un guide pour l'action
Salutations à vous, lecteur. L'été a de nouveau volé à la vitesse d'une comète, et avec l'automne, il est temps de revenir à 150% de la productivité. Au printemps, Microsoft et moi avons préparé un guide «Mobile DevOps in Practice» sur la façon d'automatiser au maximum le processus de développement d'applications mobiles. Ce qui suit est une fiche d'information du guide complet.
1. À propos de DevOps
1.1 À propos de la culture DevOps
DevOps se déplace lentement autour de la planète dans une étreinte avec des techniques de gestion flexibles. Cependant, si vous regardez un peu plus en profondeur, alors DevOps est avant tout une culture dans laquelle toute l'équipe qui développe et maintient un système informatique fonctionne dans son ensemble. C'est la communication au sein de l'équipe qui est nécessaire pour créer une interaction saine entre les entreprises, les programmeurs, les administrateurs système et les testeurs.
Le deuxième élément important de tout processus DevOps est la formation de l'équipe. Dans un monde idéal, une équipe (à commencer par une entreprise) devrait apprendre à mieux répondre aux besoins de l'utilisateur final, en créant de la valeur pour le consommateur. Mais dans la pratique, la «valeur» doit également être apprise pour compter et en tirer des conclusions compétentes. Pour la formation, dans tous les cas, les commentaires des vrais utilisateurs sont nécessaires. Une telle connexion sont des systèmes de surveillance continue de la viabilité des systèmes informatiques et une variété de systèmes de journalisation.
Et pour que ce DevOps existe non seulement dans l'esprit des développeurs, il doit être mis en pratique à l'aide d'outils adaptés aux besoins de la tâche. Une partie de la culture DevOps est également le désir d'automatiser les activités de routine. Cela rend le processus de développement et de développement de systèmes informatiques moins douloureux et plus efficace.
1.2 Quelle est la différence entre DevOps et Mobile DevOps
DevOps lui-même est apparu comme une approche pour les grandes équipes et les entreprises travaillant sur de grands systèmes informatiques composés d'un grand nombre de modules, souvent écrits dans différents langages de programmation et conçus pour différents environnements d'exécution. Cependant, à mesure que le terme et l'approche devenaient plus populaires, DevOps a commencé à être adapté par diverses équipes résolvant un large éventail de problèmes.
Le plus souvent, DevOps est associé à de grands produits numériques, dont le développement et la maintenance sont assurés par des dizaines, des centaines et parfois des milliers de spécialistes. De nombreuses équipes ont déjà développé leurs propres pratiques et leurs propres outils pour soutenir le processus DevOps - un système d'assemblage, de test, de déploiement et de surveillance automatiques. Habituellement, tout est créé sur sa propre infrastructure, mais les outils cloud CI / CD se développent également activement.
Figure 1. Différence entre DevOps mobiles et DevOps d'entrepriseTout cela est peu associé au développement d'applications mobiles. Mobile DevOps est une version «plus petite» des DevOps ordinaires, car les applications mobiles sont principalement une interface pratique pour interagir avec des systèmes informatiques externes. La taille réduite de l'équipe et ses problèmes spécifiques aux applications mobiles (voir figure 1):
- - diverses plateformes;
- - divers appareils.
1.3 Documentation unifiée et une seule langue
Pour que DevOps fonctionne et qu'il y ait eu une réelle interaction entre les équipes, vous avez besoin d'une seule langue et d'une seule documentation de travail, compréhensible par tous les participants. Ici, aucune approche ne donne des directives claires et les systèmes sont tous différents. Cependant, c'est la documentation qui accompagne le projet tout au long du cycle de vie et est un outil de communication et d'interaction d'équipe.
Figure 2. Documentation de travailUne documentation de travail compétente peut simplifier et accélérer le développement du projet. Ce processus est décrit plus en détail dans notre guide n ° 2 «
Conception technique des applications mobiles ».
Ici, nous allons identifier les principaux documents (voir figure 2):
- liste des écrans;
- carte des transitions et des états;
- tableau d'écrans.
L'utilisation d'une dénomination et d'une numérotation de bout en bout dans ces documents est importante. C'est ce qui simplifie et accélère le processus de communication au sein de l'équipe. Un autre facteur important est le «code-documentation» de conformité, qui clarifie la communication des affaires avec les développeurs.
2. Caractéristiques de Mobile CI / CD
Nous avons donc décidé de la culture de l'interaction et de la documentation de travail et nous pouvons maintenant passer à un support instrumental sous la forme d'un pipeline CI / CD. Plus vous automatisez d'opérations, mieux c'est.
2.1 Problèmes Mobile Dev
Le développement mobile a 3 problèmes distincts:
- Différents systèmes d'exploitation et leurs versions. L'application doit fonctionner correctement sur un large éventail de systèmes d'exploitation différents, chacun ayant ses propres caractéristiques et limites.
- Diverses options pour l'architecture du processeur central. Le matériel des smartphones et des tablettes s'améliore constamment, mais n'oubliez pas les «personnes âgées» il y a cinq ans, qui peuvent être entre les mains de vos vrais utilisateurs.
- Différentes résolutions d'écran des appareils. Quel que soit le nombre de pixels ou le rapport hauteur / largeur, l'interface de l'application mobile doit s'afficher correctement sur tous les appareils.
En général, les tests et le débogage sur une large flotte d'appareils réels sont indispensables.
2.2 Ce qui peut être testé automatiquement
En pratique, il est impossible de se passer de tests manuels sur smartphones ou tablettes. Cependant, une partie du code est facilement couverte par des tests automatisés basés sur des tests unitaires (ci-après simplement des tests unitaires). Examinons l'architecture typique de la plupart des applications - Figure 3.
Figure 3. Architecture classique à trois niveauxTests de couverture complète, il est plus sage d'effectuer des tests dans 2 directions:
- tests unitaires (fonctionnels, d'intégration) pour la couche d'accès aux données ou les référentiels.
- Tests d'interface utilisateur (fonctionnels, régression) pour les couches Business Logic et Interface utilisateur.
Il n'est pas possible de tout couvrir avec des tests unitaires dans les applications mobiles, ce qui réduit la vitesse de développement et de mise à jour du système. Pour la phase de test unitaire automatique du pipeline CI / CD, il sera utile de couvrir les mécanismes de couche DAL suivants:
- Méthodes d'accès à l'API backend
- méthodes d'accès aux données (référentiels);
Si nous parlons de tests d'interface utilisateur automatiques, nous pouvons tester les éléments suivants:
- l'opérabilité de l'application sur des appareils réels avec les caractéristiques nécessaires;
- la capacité d'exécuter des scénarios commerciaux clés.
Sur la base des résultats des tests d'interface utilisateur, des captures d'écran sont collectées à chaque étape sur chaque appareil; sur la base de ces informations, un ingénieur QA peut afficher manuellement la disposition correcte de l'application à différentes résolutions et tailles d'écran.
La commodité, la fluidité des animations et d'autres caractéristiques spécifiques à l'utilisateur sont difficiles à consacrer aux autotests; il vaut mieux les laisser aux testeurs en direct et aux utilisateurs bêta.
Fiche de fin de document.
Matériaux utiles
Réservez Mobile DevOps en pratique
La version numérique complète du guide papier «DevOps mobiles en pratique» .Matériel vidéo de l'atelier «Mobile DevOps in Practice» (4 parties pendant 3,5 heures)
Partie 1
2e partie
3e partie
Partie 4
Sommet DevOps
Je voudrais discuter de Mobile DevOps en direct ou poser des questions - je serai heureux de vous voir lors du Microsoft DevOps Summit le 13 septembre à Moscou (
inscription ) ou lors des DevOps Days les 14 et 15 septembre à Kazan (
plus ).
Comme toujours, je serai reconnaissant pour les commentaires et les questions dans les commentaires! Restez en contact!
À propos de l'auteur

Vyacheslav Chernikov est le chef du département de développement chez
Binwell , Microsoft MVP et Xamarin Certified Developer. Dans le passé, un de Nokia Champion et Qt Certified Specialist, actuellement spécialiste des plates-formes Xamarin et Azure. Il est entré dans la sphère mobile en 2005, depuis 2008 il développe des applications mobiles: il a commencé avec Symbian, Maemo, Meego, Windows Mobile, puis est passé à iOS, Android et Windows Phone.
Vous pouvez également lire les articles de Vyacheslav sur le
blog sur Medium .