Релиз-инжиниринг , часто сокращенно RE или сокращенное соединение Releng , представляет собой суб-дисциплину в разработке программного обеспечения, связанную с компиляцией , сборкой и доставкой исходного кода в готовые продукты или другие программные компоненты. Связанный с жизненным циклом выпуска программного обеспечения , Борис Дебич из Google Inc. [1] [2] сказал, что инженерия выпуска относится к разработке программного обеспечения, как производство относится к производственному процессу:
Релиз-инжиниринг - это разница между производством программного обеспечения в небольших группах или стартапах и производством программного обеспечения промышленным способом, который воспроизводим, дает предсказуемые результаты и хорошо масштабируется. Эти методы промышленного стиля не только способствуют росту компании, но и являются ключевыми факторами, способствующими росту.
Джон О'Дуинн [3] и Брэм Адамс неоднократно доказывали важность разработки релизов для обеспечения роста технологической компании . [4] Несмотря на то, что задачей релиз-инжиниринга не является обременение разработки программного обеспечения наложением процессов, это часто рассматривается как признак зрелости организации и развития.
Современный релиз-инжиниринг связан с несколькими аспектами производства программного обеспечения:
- Идентифицируемость
- Возможность идентифицировать все источники, инструменты, среду и другие компоненты, составляющие конкретный выпуск.
- Воспроизводимость
- Возможность интеграции исходного кода, сторонних компонентов, данных и внешних элементов развертывания программной системы, чтобы гарантировать стабильность работы.
- Последовательность
- Миссия - обеспечить стабильную основу для разработки, развертывания, аудита и отчетности для компонентов программного обеспечения.
- Ловкость
- Продолжающееся исследование того, как современные методы разработки программного обеспечения влияют на продуктивность цикла разработки программного обеспечения, например, непрерывная интеграция и продвижение зеленых инициатив [ необходимы пояснения ] .
Релиз-инжиниринг часто является центром интеграции для более сложных команд разработки программного обеспечения, занимающих промежуточное положение между разработкой, управлением продуктом, контролем качества и другими инженерными усилиями, также известными как DevOps . Группы разработки релизов часто выступают в роли контролеров (например, в Facebook, Google, Microsoft) для определенных критически важных продуктов, где их суждения формируют параллельную линию ответственности и полномочий в отношении производственных релизов (подталкиваний).
Часто отслеживание изменений в системе управления конфигурацией или системе контроля версий входит в компетенцию инженера по выпуску. Ответственность за создание и применение схемы нумерации версий в программном обеспечении - и отслеживание этого числа до конкретных исходных файлов, к которым оно применяется, - часто ложится на инженера по выпуску. Создание или улучшение автоматизации в производстве программного обеспечения обычно является целью инженера по выпуску. Сбор, отслеживание и предоставление всех инструментов, которые требуются для разработки и создания определенной части программного обеспечения, могут быть задачей разработки релиза, чтобы надежно воспроизводить или поддерживать программное обеспечение через годы после его первоначального выпуска для клиентов.
В то время как большинство инженеров программного обеспечения или разработчиков программного обеспечения выполняют многие или все вышеперечисленное в ходе своей работы, в более крупных организациях специальность инженера по выпуску может быть применена для координации разрозненных исходных деревьев, проектов, команд и компонентов. Это освобождает разработчиков для реализации функций в программном обеспечении, а также дает возможность инженерам по обеспечению качества более широко и глубоко тестировать производимое программное обеспечение.
Инженер по выпуску может предоставлять программное обеспечение, услуги или и то, и другое группам разработки программного обеспечения и обеспечения качества программного обеспечения. Предоставляемое программное обеспечение может создавать инструменты, сборку или другие сценарии реорганизации, которые берут выходные данные компиляции и помещают их в заранее определенную древовидную структуру и даже для разработки и создания установщиков для использования группами тестирования или конечным потребителем программного обеспечения. . Предоставляемые услуги могут включать автоматизацию сборки (компиляции) программного обеспечения , автоматическую интеграцию тестов , отчетность о результатах, а также производство или подготовку систем доставки программного обеспечения, например, в форме электронных носителей (компакт-диски, DVD) или электронных механизмов распространения программного обеспечения.
Связанные дисциплины [ править ]
- Автоматизация выпуска приложений
- Управление жизненным циклом приложений
- Автоматизация сборки
- Непрерывная интеграция
- Управление изменениями
- Упаковка и развертывание
- Портирование - Линия продукта Engineering включает в себя перенос программного продукта с одной платформы на другую.
- Управление релизами
- Управление конфигурацией программного обеспечения. Хотя разработка релиза иногда считается частью управления конфигурацией программного обеспечения, последнее, будучи инструментом или процессом, используемым инженером по выпуску, на самом деле является скорее подмножеством ролей и обязанностей типичного инженера по выпуску.
- Развертывание программного обеспечения
- Жизненный цикл выпуска программного обеспечения
- Управление версиями программного обеспечения
Ссылки [ править ]
- ^ Адамс, Bellomo, птица, Маршалл-Кейм Khomh, Мойр (март 2015). «Практика и будущее релиз-инжиниринга» . Программное обеспечение IEEE . Компьютерное общество IEEE. 32 (2): 46. DOI : 10,1109 / ms.2015.52 .
- ^ http://valleyproofs.debic.net/2009/03/behind-scenes-production-push.html
- ^ Джон О'Дуинн. 2015. Релиз-инжиниринг как множитель силы. В материалах третьего международного семинара по разработке релизов (RELENG '15). IEEE Press, Пискатауэй, Нью-Джерси, США, 1–1.
- ^ 2013. Труды 1-го международного семинара по релизной инженерии. IEEE Press, Пискатауэй, Нью-Джерси, США.
Дальнейшее чтение [ править ]
- «Методология выпуска программного обеспечения» Майкла Э. Бэйса; ISBN 0-13-636564-7 .
- «Управление конфигурацией программного обеспечения» Х. Рональда Берлака; ISBN 0-471-53049-2 .
- «Разработка методологии поддержки решений о выпуске программного обеспечения» Х. Сассенбург; ISBN 90-367-2424-4 .
- «Непрерывная доставка: надежные выпуски программного обеспечения с помощью автоматизации сборки, тестирования и развертывания» Джез Хамбл, Дэвид Фарли; ISBN 0-321-60191-2