Применение концепции DevOps в разработке мобильных приложений

Источник: IBM

По всей вероятности, мобильные вычисления сегодня являются самой актуальной темой для групп разработки и групп эксплуатации. Сотрудники больших и малых компаний используют для своей работы разнообразные мобильные устройства, в том числе свои личные. Во всем мире компании стремятся использовать возможности рынка мобильных устройств, предоставляя клиентам и пользователям приложения, которые упрощают применение таких устройств. В связи с вышесказанным компаниям крайне важно продумать не только разработку мобильных возможностей, но и порядок их развертывания и способы гарантированного доступа к функциональным возможностям по мере их изменения с течением времени. В данной статье рассказывается о том, как образом концепция DevOps (development и operations - разработка и экксплуатация) помогает преодолевать проблемы, возникающие при развертывании различных версий приложений на различных устройствах.

Мобильные приложения: новые мыслительные процессы и новые стереотипы поведения

В мобильном мире существует множество потенциальных платформ для развертывания. До некоторой степени эта ситуация подобна ситуации, много лет назад имевшей место в области разработки традиционных настольных систем, где на тот момент существовало несколько конкурирующих стандартов. Отличительная особенность мобильного сектора заключается в том, что в нем не только существует несколько конкурирующих операционных систем, таких как Android, iOS, BlackBerry и Windows, но и используемые устройства существенно различаются по своим характеристикам: по разрешению экранов, по процессорам, по графическим возможностям, по сетевым возможностям и т.д. Каждая из этих характеристик потенциально добавляет еще один уровень сложности при развертывании мобильных сред.

В результате предприятиям приходится использовать при конструировании и разработке мобильной продукции различные мыслительные процессы и различные подходы. Например, один из подходов, который в настоящее время применяют многие компании, состоит в ориентации на мобильные веб-приложения. Группы разработчиков, которые уже занимаются веб-порталами и веб-приложениями, просто распространяют сферу действия своих продуктов на мобильные устройства с помощью технологии HTML5.

Однако такой подход имеет и оборотную сторону, которая состоит в невозможности использования всей мощи и всей функциональности различных мобильных платформ. Пользователи неизбежно потребуют улучшить интеграцию вышеуказанных продуктов с собственной функциональностью имеющихся у них мобильных устройств, например, с календарными приложениями. Если соответствующая платформа не представляет API-интерфейса для доступа к вышеуказанным функциям, то для удовлетворения этих требований понадобятся нативные приложения - и именно тогда встает вопрос о том, какие платформы сколько таких платформ вы собираетесь поддерживать. Кроме того, сколько версий той или иной платформы вы будете поддерживать? С учетом того, что большинство клиентов пользуется своим устройством на протяжении лишь нескольких лет, насколько велик риск исключения определенной версии и отказа от поддержки соответствующих клиентов? Поддерживаете ли вы полностью или, наоборот, полностью исключаете ту или иную платформу, напр., iOS? Или какую-либо одну версию Android, например, 3.2? Обеспечиваете ли вы поддержку всех возможностей Jelly Bean, новейшей версии Android?

Сложность разработки и развертывания мобильного приложения дополнительно повышается вследствие т.н. "консьюмеризации" ИТ. Все чаще сотрудники и клиенты привносят в корпоративную среду свои собственные устройства. Например, в январе на территории IBM работало приблизительно 10000 устройств iPad, а также более 30000 других устройств под управлением iOS. С точки зрения предприятия это означает, что оно больше не может иметь корпоративного стандарта, декларирующего, например, поддержку только iOS версии 4, поскольку потребители покупают новые iPhone и Samsung Galaxy, а также другие смартфоны и планшетные компьютеры. Несмотря на определенные преимущества, которые дает предприятию использование личных устройств сотрудников, консьюмеризация существенно расширяет набор подлежащих поддержке целевых сред, что увеличивает затраты на разработку и управление.

Подводные камни при развертывании мобильного приложения

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

Нередко компании желают применить этот же подход к разработке и развертыванию мобильных приложений, поскольку они хотят, чтобы первый выпуск их мобильного продукта в обращение - неважно, для клиентов или для сотрудников - был совершенным. На самом деле приложение не обязано быть совершенным; достаточно, чтобы оно было годным к употреблению и интуитивно понятным. Однако большинство предприятий не понимает этого, вследствие чего тратит массу времени и усилий на то, что может оказаться слишком дорогостоящей попыткой - которая нередко оказывается и последней. Большинство приложений, разработанных по методу водопада, слишком поздно выходят на рынок и во многих случаях не удовлетворяют потребности своих пользователей.

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

Мощные возможности DevOps

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

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

  • Из настольной среды разработчика с имитатором исполняющейся мобильной платформы (Android, iOS или какой-либо другой).
  • В среду тестирования, возможно, с привлечением сторонних организаций для тестирования различных устройств
  • На внутренние информационные системы, представляющие сервисы мобильным устройствам
  • В эксплуатационную среду, в которой приложения будут доставляться на различные устройства.

Каждая платформа имеет свои особенности с точки зрения развертывания, однако вне зависимости от платформы для успешной реализации необходимо выявить, отследить, зафиксировать и протестировать каждое изменение. Для этого требуется дисциплинированный подход, который объединяет группу разработки и группу эксплуатации, чтобы гарантировать бесперебойную, надежную, высококачественную поставку программного обеспечения. Группа разработки и группа эксплуатации работают совместно для достижения общей цели: непрерывная доставка работоспособных мобильных приложений без каких-либо компромиссов или оправданий. Критически важным требованием является автоматизация.

Именно поэтому концепция DevOps является столь мощной с точки зрения разработки и развертывания мобильных приложений. Возможности DevOps:

  • Регистрация изменений
  • Автоматизация осуществления этих изменений
  • Автоматизация тестирования
  • Поддержание небольших размеров изменений - достаточно небольших для того, чтобы уменьшить риски для бизнеса при переносе этих изменений в производственную среду
  • Гарантированное соблюдение требования, согласно которому на каждой стадии конвейера упакованные надлежащим образом бизнес-функции должны реплицироваться и продвигаться на следующую стадию.

Концепция DevOps обеспечивает применение дисциплинированного и автоматизированного подхода, основанного на развертывании малых функциональных улучшений, способных с течением времени превратиться в очень большие и всеобъемлющие возможности. Она предусматривает централизованное распространение приложений и обновлений через средства развертывания разнообразные оконечные устройства в мобильной экосистеме. Кроме того, DevOps обеспечивает прозрачность изменений, благодаря чему всем заинтересованным лицам известно о развитии новых возможностей, что ослабляет риски для бизнеса. Показатели и измерения фиксируются и отображаются на информационных панелях, что улучшает прозрачность и подотчетность.

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

Заключение

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


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=32918