'
Научный журнал «Вестник науки»

Режим работы с 09:00 по 23:00

zhurnal@vestnik-nauki.com

Информационное письмо

  1. Главная
  2. Архив
  3. Вестник науки №5 (50) том 2
  4. Научная статья № 16

Просмотры  123 просмотров

Нуртдинов Э.Э.

  


НЕПРЕРЫВНОЕ РАЗВЕРТЫВАНИЕ ПО *

  


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

Ключевые слова:
конвейер, тестирование, автоматизация, развертывание, доставка приложений   


УДК 004.453.4

Нуртдинов Э.Э.

магистрант 2 курса, кафедра автоматизированных систем управления

Уфимский государственный авиационный технический университет

(г. Уфа, Россия)

 

НЕПРЕРЫВНОЕ РАЗВЕРТЫВАНИЕ ПО

 

Аннотация: статья посвящена процессу автоматизированной сборки, тестирования и развертывания программ.

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

 

Ключевые слова: конвейер, тестирование, автоматизация, развертывание, доставка приложений.

 

Автоматизированный шаблон развёртывания

Наиболее важная проблема, с которой сталкиваются разработчики при развертывании ПО, состоит в следующем: как в кратчайший срок предоставить пользователям очередную версию приложения после добавления в него нового средства? Новые полезные идеи появляются весьма часто. Кроме того, после обнаружения ошибки в приложении необходимо как можно быстрее устранить ее и предоставить пользователям исправленную версию. В настоящий момент существует много методик развертывания ПО, однако они посвящены, главным образом, управлению требованиями к развертыванию и влиянию этих требований на разработку приложения. Что же происходит, когда требования определены, решение найдено, а приложение создано и протестировано? Как объединить эти этапы таким образом, чтобы весь процесс был как можно более быстрым и надежным? Как организовать взаимодействие разработчиков, тестировщиков и администраторов наиболее эффективным образом? [1, С. 24]

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

 

Скорость и качество сборки продукта — главные конкурентные преимущества в разработке программного обеспечения. Поэтому на смену архаическим моделям программирования, таким как императивная, структурная или модульная, начала приходить новая концепция CI/CD — Continuous integration и Continuous delivery – непрерывная интеграция и непрерывная доставка. Она помогает свести к минимуму ошибки, повысить темпы сборки и качество разрабатываемого продукта. [1, С. 31]

CI/CD — одна из практик DevOps, подразумевающая непрерывную интеграцию и доставку. Этот набор принципов предназначен для повышения удобства, частоты и надежности развертывания изменений программного обеспечения или продукта. CI/CD относится к agile-практикам и позволяет разработчикам уделять внимание реализации бизнес-требований, качеству кода и безопасности продукта. [2, С. 184]

Цели CI/CD:

- обеспечение последовательного и автоматизированного способа сборки, упаковки и тестирования продуктов или приложений;

-  автоматизация развертывания в разных окружениях;

- сведение к минимуму ошибок и проблем.

Принципы CI/CD:

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

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

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

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

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

Проблемы ручного развертывания

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

  • Когда развертывание автоматизировано не полностью, часто возникают ошибки. Единственный вопрос: насколько они существенны. Даже если тесты хорошо спрограммированы, тяжело отследить источники ошибок.
  • Когда развертывание не автоматизировано, оно не может выполняться как надежный, часто повторяющийся процесс. В результате тратится много времени на обнаружение и устранение ошибок развертывания, а не приложения.
  • Процесс ручного развертывания должен быть документирован. Поддержка документации - сложная задача. На ее решение тратится много времени, и требуется вовлечение многих людей. Тем не менее документация чаще всего неполная и всегда устаревшая. В то же время в автоматизированном процессе в качестве документации служат сценарии развертывания.
  • Автоматизация развертывания способствует сотрудничеству участников процесса, потому что все, что необходимо для развертывания, явно отображено в сценарии.

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

  • Следствие вышесказанного: ручное развертывание зависит от квалификации исполнителя, и когда он увольняется или уходит в отпуск, приемник оказывается в затруднительном положении.
  • Развертывание вручную - весьма рутинный процесс, тем не менее требующий высокой квалификации. Когда квалифицированные специалисты делают скучную, рутинную работу, они неизбежно совершают ошибки самых разных типов. Автоматизация развертывания освобождает высокооплачиваемых специалистов для более интеллектуальной работы.
  • Единственный способ проверки процесса ручного развертывания состоит в его повторении. Часто это дорогостоящий процесс, требующий много времени. Автоматизированное развертывание дешевле, и его легче проверить.
  • Автоматизированное развертывание следует использовать всегда; оно должно быть единственной технологией выпуска ПО. Сценарий развертывания можно запустить в любой момент, когда это необходимо. Благодаря этому в критический день поставки релиза используется сценарий, протестированный сотни раз. Если возникают проблемы с поставкой релиза, можно быть уверенным, что они связаны с конфигурацией среды, а не сценарием. Иногда ручное развертывание проходит довольно гладко, но чаще всего это не так. Общепризнанно, что процесс развертывания может содержать ошибки и существенно задерживать выпуск.

 

СПИСОК ЛИТЕРАТУРЫ:

 

Джез Хамбл, Дейвид Фарли АВТОМАТИЗАЦИЯ ПРОЦЕССОВ СБОРКИ, ТЕСТИРОВАНИЯ И ВНЕДРЕНИЯ НОВЫХ ВЕРСИЙ ПРОГРАММ // Вильямс, 2011. 433с.

Руководство по DevOps. Как добиться гибкости, надежности и безопасности мирового уровня в технологических компаниях | Хамбл Джез, Ким Джин. // Mann 2018. 507с.

Continuous delivery. Практика непрерывных апдейтов | Вольф Эберхард 2018. 312 с.

 

Nurtdinov E.E.

2nd year Master student, Department of Automated Control Systems

Ufa State Aviation Technical University

(Ufa, Russia)

 

CONTINUOUS SOFTWARE DEPLOYMENT

 

Abstract: the article is devoted to the process of automated assembly, testing and deployment of programs.

It describes the need for an approach that uses automated pipelines to deliver changes to server loops.

 

Keywords: pipeline, testing, automation, deployment, application delivery.

  


Полная версия статьи PDF

Номер журнала Вестник науки №5 (50) том 2

  


Ссылка для цитирования:

Нуртдинов Э.Э. НЕПРЕРЫВНОЕ РАЗВЕРТЫВАНИЕ ПО // Вестник науки №5 (50) том 2. С. 103 - 108. 2022 г. ISSN 2712-8849 // Электронный ресурс: https://www.вестник-науки.рф/article/5594 (дата обращения: 19.04.2024 г.)


Альтернативная ссылка латинскими символами: vestnik-nauki.com/article/5594



Нашли грубую ошибку (плагиат, фальсифицированные данные или иные нарушения научно-издательской этики) ?
- напишите письмо в редакцию журнала: zhurnal@vestnik-nauki.com


Вестник науки СМИ ЭЛ № ФС 77 - 84401 © 2022.    16+




* В выпусках журнала могут упоминаться организации (Meta, Facebook, Instagram) в отношении которых судом принято вступившее в законную силу решение о ликвидации или запрете деятельности по основаниям, предусмотренным Федеральным законом от 25 июля 2002 года № 114-ФЗ 'О противодействии экстремистской деятельности' (далее - Федеральный закон 'О противодействии экстремистской деятельности'), или об организации, включенной в опубликованный единый федеральный список организаций, в том числе иностранных и международных организаций, признанных в соответствии с законодательством Российской Федерации террористическими, без указания на то, что соответствующее общественное объединение или иная организация ликвидированы или их деятельность запрещена.