Непрерывная доставка приложений (Continuous Delivery, CD) набирает популярность, поскольку ИТ-команды стремятся более оперативно и системно устранять ошибки и предоставлять новые функции в ПО. Опрошенные порталом InformationWeek эксперты рассказывают, как предприятию правильно настроить конвейер по доставке софта.

CD становится все более популярным подходом, который позволяет запускать ПО в коммерческую эксплуатацию в любое время, а не по расписанию. Под влиянием автоматизации и растущей потребности в более частых обновлениях она становится основной методологией разработки ПО. По словам Трейси Миранды, исполнительного директора независимой организации Continuous Delivery Foundation, которая предоставляет заинтересованным сторонам инструменты, поддержку и информацию по CD, основное достоинство непрерывной доставки заключается в быстром предоставлении новых функций ПО при одновременном обеспечении надежности и безопасности услуг для любого бизнеса. «CD имеет решающее значение в плане создания организациями ценности и поддержки гибкости бизнеса», — отметила она.

Множество выгод

Поставщики корпоративного ПО на протяжении десятилетий были сосредоточены на выходе крупных ежеквартальных релизов. «Эта система работает медленно, потому что если в таком большом релизе есть какие-либо ошибки, разработчикам приходится тщательно проверять развернутое обновление, чтобы найти проблему, которую нужно исправить», — сказал Эрик Джонсон, исполнительный вице-президент провайдера Open Source-платформы для совместной работы GitLab. Предприятия, применяющие CD, в ускоренном режиме выпускают серии высоко детализированных релизов. Таким образом, если в новом отдельном выпуске есть какие-либо ошибки, команды разработчиков могут легко и быстро исправить их.

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

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

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

CD также помогает снизить риск выгорания разработчика. «Исследования показывают, что CD повышает удовлетворенность сотрудников работой и создает культуру высокого доверия, благодаря которой разработчики сближаются со своими организациями», — сказала Миранда.

Темпы выпуска

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

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

Другим важным шагом является выбор инструмента для оркестровки CD, необходимого для обустройства надежного и эффективного рабочего процесса. «Создайте модельную испытательную среду и внедрите непрерывное тестирование, — рекомендует Венки Ченнапрагада, архитектор DevOps консалтинговой компании Capgemini в Северной Америке. — Затем спроектируйте и внедрите „ворота качества“ для передачи тестируемого ПО из испытательной среды в производственную и, наконец, автоматизируйте рабочие процессы».

В то же время Остин советует для автоматизации интеграции изменений кодовой базы от различных контрибуторов в один проект использовать непрерывную интеграцию (CI). «Покажите своим командам силу и преимущества последовательного и автоматизированного процесса сборки, тестирования и выпуска, — советует он. — Внедрите автоматизацию тестирования, непрерывное тестирование и сделайте так, чтобы ваши команды рассматривали тестирование не как отдельный процесс, а как процесс, который проходит в вашем конвейере автоматически».

Как достичь успеха

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

Многие организации, занимающиеся разработкой ПО, допускают критическую ошибку, полагая, что существует волшебный программный стек, который решит все их потребности или проблемы, возникающие на пути к успешному внедрению CD. «Очень важно прислушиваться к мнению инженеров и разработчиков DevOps и проверить тот стек, на котором работает ваша организация, — сказал Уилл Блю, менеджер по разработке ПО облачного хостинга Linode. — Если какая-то часть стека не работает, измените ее, прежде чем она начнет доставлять вам проблемы».

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