- PVSM.RU - https://www.pvsm.ru -
Привет! Сегодня мы делимся с вами простым и понятным руководством по тому, как применять Mobile DevOps на практике. Помимо бумажного руководства, под катом вы также сможете найти видео-записи одноименного мастер-класса, где рассмотрен каждый аспект DevOps применительно к мобильной разработке.

Передаю слово автору, Вячеславу Черникову.
Приветствую тебя, читатель. Лето в очередной раз пролетело со скоростью кометы, и вместе с осенью приходит пора возвращаться к 150% продуктивности. Еще весной мы с Microsoft подготовили руководство “Mobile DevOps на практике” о том, как можно по максимуму автоматизировать процесс разработки мобильных приложений. Ниже приведен ознакомительный фрагмент из полного руководства.
Сам по себе DevOps медленно шагает по планете в обнимку с гибкими методиками управления. Однако если присмотреться поглубже, то DevOps это в первую очередь культура, в которой вся команда, развивающая и обслуживающая ИТ-систему, работает как одно целое. Именно общение внутри команды является обязательным для выстраивания здорового взаимодействия между бизнесом, программистами, сисадминами и тестировщиками.
Вторым важным элементов любого DevOps-процесса является обучение команды. В идеальном мире команда (начиная с бизнеса) должна учиться все лучше удовлетворять нужды конечного пользователя, создавая ценность для потребителя. Но на практике еще и «ценность» надо научиться считать и делать из этого грамотные выводы. Для обучения в любом случае необходима обратная связь от реальных пользователей. Такой связью становятся системы непрерывного мониторинга жизнеспособности ИТ-систем и разнообразные системы логирования.
И что бы этот DevOps существовал не только в головах у разработчиков, то его необходимо реализовать на практике с помощью инструментов, которые подойдут под нужды задачи. Частью DevOps-культуры также является стремление к автоматизации рутинных действий. Это делает процесс разработки и развития ИТ-систем менее болезненным и более эффективным.
Сам по себе DevOps появился как подход для больших команд и компаний, работающих над крупными ИТ-системами, состоящими из большого числа модулей, часто написанных на разных языках программирования и предназначенных для разных сред выполнения. Однако по мере популяризации термина и подхода, DevOps стал адаптироваться различными командами, решающих широкий спектр задач.
Чаще всего DevOps ассоциируется с крупными цифровыми продуктами, разработкой и обслуживанием которых занимаются десятки, сотни, а иногда и тысячи специалистов. У многих команд уже выработались свои практики и свои инструменты для поддержания процесса DevOps — системы автоматической сборки, тестирования, развертывания и мониторинга. Обычно это все создается на собственной инфраструктуре, но активно развиваются и облачные инструменты CI/CD.

Рисунок 1. Отличие Mobile DevOps от Enterprise DevOps
Все это мало ассоциируется с разработкой мобильных приложений. Mobile DevOps является «уменьшенной» версией обычного DevOps, так как мобильные приложения это в первую очередь удобный интерфейс для взаимодействия с внешними ИТ-системами. Меньший масштаб команды, и свои специфические проблемы, характерные именно для мобильных приложений (см. рисунок 1):
Для того, чтобы DevOps работал и между командами было реальное взаимодействие, необходим единый язык и единая рабочая документации, понятная всем участникам. Здесь четких руководств ни один подход не дает, да и системы все разные. Однако именно документация живет с проектом полный жизненный цикл и является инструментом для общения и взаимодействия команды.

Рисунок 2. Рабочая документация
Грамотная рабочая документация способна упростить и ускорить развитие проекта. Подробнее данный процесс описан в нашем Guide #2 "Техническое проектирование мобильных приложений [1]".
Здесь же мы обозначим основные документы (см. рисунок 2):
— список экранов;
— карта переходов и состояний;
— таблица экранов.
Важным является использование в этих документах сквозного именования и нумерации. Именно это упрощает и ускоряет процесс общения внутри команды. Также важным фактором является соответствие “документация-код”, что делает понятным общение бизнеса с разработчиками.
Итак, с культурой взаимодействия и рабочей документацией мы определились и теперь можно переходить к инструментальной поддержке в виде CI/CD-конвейера. Чем больше операций получится автоматизировать, тем лучше.
У мобильной разработки есть 3 отличительных проблемных места:
В общем, без тестирования и отладки на большом парке реальных устройств не обойтись.
В реальной практике невозможно обойтись без ручного тестирования на смартфонах или планшетах. Однако часть кода легко покрывается автоматическими тестами на базе Unit Testing (далее просто unit-тесты). Давайте рассмотрим типовую архитектуру большинства приложений — рисунок 3.

Рисунок 3. Классическая трехзвенная архитектура
Полное покрытием тестами разумнее разумнее осуществлять по 2 направлениям:
Покрывать все unit-тестами в мобильных приложениях не представляется возможным, плюс это снижает скорость разработки и обновления системы. Для этапа автоматического unit-тестирования в рамках CI/CD-конвейера будет полезным покрыть следующие механизмы слоя DAL:
Если говорить об автоматических UI-тестах, то можно протестировать следующее:
По результатам UI-тестов собираются скриншоты с каждым шагом на каждом устройстве, на их основе QA-инженер в ручном режиме может просмотреть правильность верстки приложения на разных разрешениях и размерах экранов.
Удобство, плавность анимаций и другие пользовательские характеристики сложно отдать на откуп автотестам, их лучше оставить живым тестировщикам и бета-пользователям.
Конец ознакомительного фрагмента.
Полная цифровая версия бумажного руководства “Mobile DevOps на практике” [2].
Хочется обсудить Mobile DevOps вживую или задать вопросы — буду рад тебя видеть на Microsoft DevOps Summit 13 сентября в Москве (регистрация [3]) или на DevOps Days 14-15 сентября в Казани (подробнее [4]).
Как всегда, буду благодарен за обратную связь и вопросы в комментариях! Оставайтесь на связи!
Вячеслав Черников — руководитель отдела разработки компании Binwell [5], Microsoft MVP и Xamarin Certified Developer. В прошлом — один из Nokia Champion и Qt Certified Specialist, в настоящее время — специалист по платформам Xamarin и Azure. В сферу mobile пришел в 2005 году, с 2008 года занимается разработкой мобильных приложений: начинал с Symbian, Maemo, Meego, Windows Mobile, потом перешел на iOS, Android и Windows Phone.
Статьи Вячеслава вы также можете прочитать в блоге на Medium [6].
Автор: sahsAGU
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/microsoft/291298
Ссылки в тексте:
[1] Техническое проектирование мобильных приложений: https://medium.com/binwell/371173eb42a8
[2] Image: https://info.microsoft.com/ce-azureplat-cntnt-fy18-05may-25-mobiledevopsinpractice-mgc0002502_01registration-forminbody.html?wt.mc_id=AID729732_QSG_271504
[3] регистрация: https://www.microsoftevents.com/profile/form/index.cfm?PKformID=0x4718613abcd
[4] подробнее: https://devopsdays.com.ru
[5] Binwell: https://aka.ms/habr_321454_4
[6] блоге на Medium: https://aka.ms/habr_323296_8
[7] Источник: https://habr.com/post/421465/?utm_campaign=421465
Нажмите здесь для печати.