Mobile DevOps на практике

в 7:00, , рубрики: Binwell, devops, microsoft, mobile devops, Блог компании Microsoft, мобильная разработка, разработка мобильных приложений, системное администрирование

Привет! Сегодня мы делимся с вами простым и понятным руководством по тому, как применять Mobile DevOps на практике. Помимо бумажного руководства, под катом вы также сможете найти видео-записи одноименного мастер-класса, где рассмотрен каждый аспект DevOps применительно к мобильной разработке.

Mobile DevOps на практике - 1

Передаю слово автору, Вячеславу Черникову.

Mobile DevOps: руководство к действию

Приветствую тебя, читатель. Лето в очередной раз пролетело со скоростью кометы, и вместе с осенью приходит пора возвращаться к 150% продуктивности. Еще весной мы с Microsoft подготовили руководство “Mobile DevOps на практике” о том, как можно по максимуму автоматизировать процесс разработки мобильных приложений. Ниже приведен ознакомительный фрагмент из полного руководства.

1. Про DevOps

1.1 О культуре DevOps

Сам по себе DevOps медленно шагает по планете в обнимку с гибкими методиками управления. Однако если присмотреться поглубже, то DevOps это в первую очередь культура, в которой вся команда, развивающая и обслуживающая ИТ-систему, работает как одно целое. Именно общение внутри команды является обязательным для выстраивания здорового взаимодействия между бизнесом, программистами, сисадминами и тестировщиками.

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

И что бы этот DevOps существовал не только в головах у разработчиков, то его необходимо реализовать на практике с помощью инструментов, которые подойдут под нужды задачи. Частью DevOps-культуры также является стремление к автоматизации рутинных действий. Это делает процесс разработки и развития ИТ-систем менее болезненным и более эффективным.

1.2 В чем разница DevOps vs Mobile DevOps

Сам по себе DevOps появился как подход для больших команд и компаний, работающих над крупными ИТ-системами, состоящими из большого числа модулей, часто написанных на разных языках программирования и предназначенных для разных сред выполнения. Однако по мере популяризации термина и подхода, DevOps стал адаптироваться различными командами, решающих широкий спектр задач.

Чаще всего DevOps ассоциируется с крупными цифровыми продуктами, разработкой и обслуживанием которых занимаются десятки, сотни, а иногда и тысячи специалистов. У многих команд уже выработались свои практики и свои инструменты для поддержания процесса DevOps — системы автоматической сборки, тестирования, развертывания и мониторинга. Обычно это все создается на собственной инфраструктуре, но активно развиваются и облачные инструменты CI/CD.

Mobile DevOps на практике - 2

Рисунок 1. Отличие Mobile DevOps от Enterprise DevOps

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

  • — различные платформы;
  • — различные устройства.

1.3 Единая документация и единый язык

Для того, чтобы DevOps работал и между командами было реальное взаимодействие, необходим единый язык и единая рабочая документации, понятная всем участникам. Здесь четких руководств ни один подход не дает, да и системы все разные. Однако именно документация живет с проектом полный жизненный цикл и является инструментом для общения и взаимодействия команды.

Mobile DevOps на практике - 3

Рисунок 2. Рабочая документация

Грамотная рабочая документация способна упростить и ускорить развитие проекта. Подробнее данный процесс описан в нашем Guide #2 "Техническое проектирование мобильных приложений".

Здесь же мы обозначим основные документы (см. рисунок 2):

— список экранов;
— карта переходов и состояний;
— таблица экранов.

Важным является использование в этих документах сквозного именования и нумерации. Именно это упрощает и ускоряет процесс общения внутри команды. Также важным фактором является соответствие “документация-код”, что делает понятным общение бизнеса с разработчиками.

2. Особенности Mobile CI/CD

Итак, с культурой взаимодействия и рабочей документацией мы определились и теперь можно переходить к инструментальной поддержке в виде CI/CD-конвейера. Чем больше операций получится автоматизировать, тем лучше.

2.1 Проблемы Mobile Dev

У мобильной разработки есть 3 отличительных проблемных места:

  • Различные операционные системы и их версии. Приложение должно корректно работать на широком спектре самых различных ОС, каждая из которых имеет свои особенности и ограничения.
  • Различные варианты архитектуры центрального процессора. Железо смартфонов и планшетов постоянно улучшается, однако не надо забывать и о “старичках” пятилетней давности, которые могут быть на руках у ваших реальных пользователей.
  • Различные разрешения экранов устройств. Независимо от количества пикселей или соотношения сторон, интерфейс мобильного приложения должен корректно отображаться на всех устройствах.

В общем, без тестирования и отладки на большом парке реальных устройств не обойтись.

2.2 Что можно тестировать автоматически

В реальной практике невозможно обойтись без ручного тестирования на смартфонах или планшетах. Однако часть кода легко покрывается автоматическими тестами на базе Unit Testing (далее просто unit-тесты). Давайте рассмотрим типовую архитектуру большинства приложений — рисунок 3.

Mobile DevOps на практике - 4

Рисунок 3. Классическая трехзвенная архитектура

Полное покрытием тестами разумнее разумнее осуществлять по 2 направлениям:

  • unit-тесты (функциональные, интеграционные) для слоя доступа к данным (Data Access Layer) или Repositories.
  • UI-тесты (функциональные, регрессионные) для слоев Business Logic и User Interface.

Покрывать все unit-тестами в мобильных приложениях не представляется возможным, плюс это снижает скорость разработки и обновления системы. Для этапа автоматического unit-тестирования в рамках CI/CD-конвейера будет полезным покрыть следующие механизмы слоя DAL:

  • методы доступа к Backend API;
  • методы доступа к данным (Repositories);

Если говорить об автоматических UI-тестах, то можно протестировать следующее:

  • работоспособность приложения на реальных устройствах с нужными характеристиками;
  • возможность выполнить ключевые бизнес-сценарии.

По результатам UI-тестов собираются скриншоты с каждым шагом на каждом устройстве, на их основе QA-инженер в ручном режиме может просмотреть правильность верстки приложения на разных разрешениях и размерах экранов.

Удобство, плавность анимаций и другие пользовательские характеристики сложно отдать на откуп автотестам, их лучше оставить живым тестировщикам и бета-пользователям.

Конец ознакомительного фрагмента.


Полезные материалы

Книга Mobile DevOps на практике

Mobile DevOps на практике - 5

Полная цифровая версия бумажного руководства “Mobile DevOps на практике”.

Видео-материалы мастер-класса “Mobile DevOps на практике” (4 части на 3,5 часа)

Часть 1

Часть 2

Часть 3

Часть 4

DevOps Summit

Хочется обсудить Mobile DevOps вживую или задать вопросы — буду рад тебя видеть на Microsoft DevOps Summit 13 сентября в Москве (регистрация) или на DevOps Days 14-15 сентября в Казани (подробнее).

Как всегда, буду благодарен за обратную связь и вопросы в комментариях! Оставайтесь на связи!

Об авторе

Mobile DevOps на практике - 6 Вячеслав Черников — руководитель отдела разработки компании Binwell, 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.

Автор: sahsAGU

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js