Содержание


Применение концепции DevOps для быстрого производства программных продуктов

DevOps + RAD = лучшие стороны обоих подходов

Comments

Предлагаемое эффективное решение базируется на двух инновационных идеях –концепции DevOps и модели RAD (rapid application development). Эволюция разработки программного обеспечения подтвердила на практике, что использование одного и того же метода для надзора за всеми этапами разработки программного обеспечения повышает эффективность при устранении выявляемых после выпуска программного продукта проблем с его производительностью и с его интеграцией. Производители программного обеспечения, такие как IBM, высоко оценили эффективность концепции DevOps и теперь предлагают инструменты, которые ускоряют и обогащают существующие у компаний компьютерные системы для достижения новых высот в сфере быстрой разработки программного обеспечения.

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

Концепция DevOps: предложение и спрос

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

На недавно прошедшей конференции по тематике DevOps, спонсорами которой выступили IBM и JumpCloud, посетители приняли участие в опросе о воздействии автоматизации разработки программного обеспечения на последние технологические инновации. Опрос подтвердил, что концепция DevOps в сфере быстрого производства программного обеспечения (RAD-прототипирование, автоматизация разработки программного обеспечения и оркестровка системы) пользуется большим спросом и что эти инновации являются главными факторами обеспечения конкурентоспособности, повышающими доходы технологически ориентированных организаций. Были опрошены представители 100 организаций, которые распределились следующим образом.

  • 75% организаций широко применяют DevOps ("DevOps-организации");
  • 15% организаций находятся в процессе превращения в DevOps-организацию;
  • Более 80% организаций используют облачное решение для прототипирования в среде DevOps/RAD.

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

  • 75% организаций в настоящее время нуждаются в инструментах для автоматического конфигурирования (например, Puppet и Chef).
  • 33% организаций в настоящее время нуждаются в инструментах для автоматической установки патчей, исправлений и обновлений.
  • Более 50% организаций в настоящее время нуждаются в заранее сформированных системных образах для автоматизации унифицированных установок.

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

Концепция DevOps: точность, аккуратность, пунктуальность

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

Рисунок 1. Интегрированная разработка программного обеспечения на основе концепции DevOps
Image showing integrated software development with DevOps
Image showing integrated software development with DevOps

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

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

  • Итерационная разработка. Повторяющиеся усовершенствования прототипа вплоть до достижения надлежащего состояния.
  • Инкрементная разработка. Повторяющиеся дополнения прототипа вплоть до достижения надлежащего состояния.
  • Каскадная разработка и модифицированная каскадная разработка.Стабильный, протекающий в одном направлении процесс, при котором разработка продукта осуществляется в рамках неперекрывающихся этапов вплоть до его полной готовности.
  • IBM® Rational® Unified Process. Процесс разработки, адаптированный к потребностям группы разработки и группы эксплуатации.
  • RAD-прототипирование.Быстрое прототипирование, требующее лишь минимального планирования.

Сочетание процесса Rational Unified Process и RAD-прототипирования стимулирует высокий спрос на DevOps-решения для быстрого производства программного обеспечения в организациях малого и среднего размера, а также на более крупных предприятиях.

Концепция DevOps и быстрое производство программных продуктов

IBM предоставляет программные продукты, необходимые для реализации процесса Rational Unified Process и RAD-прототипирования. С помощью этих продуктов некоторые организации смогли ускорить окупаемость инвестиций в два-три раза. Окупаемость инвестиций ускоряется благодаря семействам инновационных продуктов IBM, в том числе благодаря решениям категории DevOps for Cloud Computing для облачных вычислений и благодаря интеграции с инструментом Apache Maven для портлетных проектов с помощью инструмента IBM® Rational® Application Developer for WebSphere® Software. См. Таблицу 1.

Преимущества для быстрой разработки программного обеспечения и для DevOps, категоризированные по отдельным функциям
ФункциональностьПреимущество для быстрого производства ПОПреимущество для DevOps
Поддержка быстрого производства программного обеспечения в форме масштабируемых виртуализационных решений, эластичных сетей и хранилищ с высокой пропускной способностью, соответствующих требованиям обработки больших данных Полномасштабные среды тестирования и разработкиНезависимые гибридные или публичные среды как дополнение к имеющейся у компании компьютерной среде
Инструменты для обеспечения гибкого управления жизненным циклом приложений при использовании концепции DevOps Продукты IBM® Rational® DOORS® Next Generation, IBM® Rational Team Concert™, и IBM® Rational® Quality Manager облегчают отслеживание соответствия между требованиями пользователя/системными требованиями и ассоциированными с ними элементами работы, а также отчетность по показателям контроля качества Основаны на участии человека, но автоматизированы, чтобы гарантировать точность, удобство пользования и надежность создаваемых программных продуктов

Использование стабильно высокой скорости

Методика построения новых программных продуктов, придерживающаяся существующих технологий и процессов, сдерживает процесс разработки программного обеспечения, зачастую ограничивая понимание того, какие разрабатываемые элементы и в каком объеме могут быть созданы к определенному моменту времени. Современным компаниям настоятельно необходим способ ускорения производства программного обеспечения, который позволял бы своевременно внедрять новые идеи. Во многих случаях получение пользы от инноваций сильно зависит от времени. Если на разработку программного обеспечения требуются месяцы, то получаемые в результате инновации могут оказаться бесполезными.

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

Рисунок 2. Схема процесса RAD
Image showing the RAD process flow
Image showing the RAD process flow

Шаг 1

Первый шаг к ускорению разработки программного обеспечения с учетом его последующего использования в бизнесе — это осознание необходимости коллективной работы. Конечно, группы должны разделять ответственность за разработку программного обеспечения, чтобы производить качественные программные продукты, однако им также необходимо взаимодействовать между собой и использовать процесс SDLC (software development life cycle — жизненный цикл разработки программного обеспечения) для координации своевременного выполнения заранее определенных процессов и методик DevOps. Например, процедура отката (rollback) защищает целостность программного кода в ходе создания программного обеспечения, позволяя разработчикам отменить набор изменений кода и вернуться к более ранней версии или к более ранней точке разработки. При возникновении соответствующей необходимости процесс SDLC откатывается до того момента, где разрабатываемый программный код еще соответствовал конечным требованиям. К примеру, группам разработки и тестирования ПО приходится откатывать свои процедуры, чтобы удалить все модификации программного кода, сделанные после последней работоспособной версии или ревизии.

Шаг 2

Следующий шаг состоит в сокращении циклов разработки. Быстрое производство программного обеспечения — это основа RAD-прототипирования. При этом требуется лишь небольшой объем планирования, поскольку технический подход основан на объектно-ориентированном программировании. Концепция DevOps предоставляет структуру, а методика объектно-ориентированного программирования обеспечивает точность программирования, позволяя быстрее вносить изменения в программные продукты и завершать их создание. Например, прототип поисковой системы может иметь всего одно поле на веб-странице, предназначенное для введения с клавиатуры критерия поиска. После ввода нужной информации пользователь нажимает кнопку Go для запуска поиска, после чего поисковая система возвращает набор результатов. Это хороший, хотя и упрощенный, пример разработки базового программного кода, в ходе которой создается веб-страница как объект, источники данных как объекты и исполняемый поисковый код как объект. Если эти элементы разрабатываются независимо разными группами, можно сократить время, необходимое на создание программного продукта, однако действия группы, отвечающей за эксплуатацию, могут задержать окончательную готовность продукта, если эта группа не взаимодействует с другими или если ее члены не соглашаются со своей ролью в структуре SDLC. Концепция DevOps и модель быстрого производства в совокупности помогают упорядочить эту ситуацию за счет таких методов, как повторное использование программного кода, виртуализация (для сокращения затрат времени на установку образов систем) и автоматизированное развертывание, существенно ускоряющее процесс SDLC. Другими словами, каждое вмешательство человеком можно ассоциировать с соответствующим автоматизированным процессом в рамках концепции DevOps. Таким образом, быстрое производство программного обеспечения вполне реализуемо посредством таких мероприятий, как совершенствование взаимодействия в динамичной среде, применение принципов определения/разработки требований и внедрение RAD-прототипирования. Все эти мероприятия дают следующие преимущества: сокращение жизненного цикла разработки, удобство пользования, масштабируемость, способность к взаимодействию, устойчивость благодаря процессам поддержания и повышения качества, переносимость и т. д.

DevOps и быстрое производство программного обеспечения — залог успешного бизнеса

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

Инструменты для быстрого производства программного обеспечения

Гвоздем программы является набор инструментов, автоматизирующих процессы DevOps. Для внедрения быстрого производства программного обеспечения требуются высококачественные средства автоматизации, воплощающие процесс SDLC и его конкретные фазы (см. рис. 3). RAD-инструменты — это приложения, которые упрощают разработку прототипов за счет автоматизации различных функций в процессе разработки. Речь идет, в частности, о поддержке со стороны промежуточного программного обеспечения при разработке межплатформенных RAD-прототипов, выполнении функций коннекторов между базами данных, встраивании средств управления в программный продукт, добавлении возможностей для предупреждений и уведомлений, оркестровке компонентов программного продукта, предоставлении поддержки для разработки и программирования на настольной системе и поддержке RAD-прототипирования в облачной среде.

Рисунок 3. Процесс SDLC
Image showing the SDLC
Image showing the SDLC

Заключение

Концепция DevOps отвечает на потребность организаций в среде, которая обеспечивала бы неизменную успешность быстрой разработки и поставки программных продуктов. Использование структуры initiate/develop/deploy (инициирование/разработка/развертывание) при создании программного обеспечения поддерживает фазы процесса SDLC и предоставляет безопасный технический подход для массового производства. Это позволяет организациям быстрее удовлетворить рыночный спрос на инновации благодаря круглосуточному функционированию процесса создания программного обеспечения. Сегодня компании располагают почти неограниченными потенциальными возможностями для получения доходов за счет ускорения вывода на рынок своих программных продуктов. Концепция DevOps сделала быстрое производство программных продуктов самой прибыльной из имеющихся на сегодняшний день методик создания ПО.


Ресурсы для скачивания


Похожие темы

  • Оригинал статьи: DevOps for rapid software production
  • Результаты опроса участников конференции Automation Driving DevOps Adoption, организованной совместно компаниями JumpCloud и SoftLayer (10 февраля 2014 г.).
  • В сообщении в блоге DevOps Journal под названием Process Facilitates Rapid Change описываются основные изменения, реализованные в концепции DevOps в интересах использования методики RAD и улучшения поставки.
  • В статья компании CA Technologies Transforming Service Delivery Through DevOps описана автоматизация быстрого выпуска приложений с использованием поставки приложений на основе DevOps.
  • Сообщение о недавнем приобретении компании UrbanCode корпорацией IBM: IBM Escalates the DevOps War with UrbanCode Acquisition.
  • В документе Rapid Application Deployment with Simplified Management описана новая примечательная инновация — использование сервиса IBM PureApplication® Service on SoftLayer, позволяющего создавать шаблоны приложений методом перетаскивания.
  • В книге Release Management Tools: What You Need to Know for IT Operations Management в электронной библиотеке Scribd описаны процесс управления выпусками и варианты дистрибуции для ускорения разработки и развертывания.
  • В блоге Enterprise DevOps обсуждаются актуальные вопросы по тематике DevOps.
  • Ресурс IBM DevOps Services позволяет разработчикам взаимодействовать друг с другом при планировании, отслеживании, создании и развертывании программного обеспечения.
  • Познакомьтесь поближе с виртуальным сервером IBM Softlayer и опробуйте его.
  • Ознакомьтесь с дополнительной информацией по теме IBM Rational Unified Process.
  • Ознакомьтесь с дополнительной информацией по теме IBM SmartCloud.
  • Загрузите ознакомительную версию продукта Rational Application Developer for WebSphere Software.
  • Ознакомьтесь с дополнительной информацией по теме Rational DOORS Next Generation.
  • Ознакомьтесь с дополнительной информацией по теме Rational Team Concert.
  • Описание продукта Rational Quality Manager объясняет, как этот инструмент для коллективной работы и автоматизации помогает управлять качеством и процессом тестирования. Кроме того, можно загрузить ознакомительную версию этого продукта.

Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Rational
ArticleID=996033
ArticleTitle=Применение концепции DevOps для быстрого производства программных продуктов
publish-date=01262015