Выпуск инжиниринга

Release engineering , часто сокращенно RE или сокращенно Releng , является поддисциплиной в программной инженерии, занимающейся компиляцией , сборкой и доставкой исходного кода в готовые продукты или другие программные компоненты. Связанный с жизненным циклом выпуска программного обеспечения , Борис Дебик из Google Inc. [1] [2] сказал , что release engineering относится к программной инженерии так же, как производство относится к промышленному процессу:

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

Важность релиз-инжиниринга для обеспечения роста технологической компании неоднократно подчеркивалась Джоном О'Дуинном [3] и Брэмом Адамсом. [4] Хотя целью релиз-инжиниринга не является обременение разработки программного обеспечения наложением процессов, его часто рассматривают как признак организационной и зрелой разработки.

Современная разработка релизов затрагивает несколько аспектов производства программного обеспечения:

Идентифицируемость
Возможность идентифицировать все источники, инструменты, среду и другие компоненты, составляющие конкретный релиз.
Воспроизводимость
Возможность интеграции исходных данных, сторонних компонентов, данных и внешних компонентов развертывания программной системы для обеспечения стабильности работы.
Последовательность
Миссия — обеспечить стабильную основу для разработки, развертывания, аудита и подотчетности компонентов программного обеспечения.
Ловкость
Продолжающиеся исследования того, как современные методы разработки программного обеспечения влияют на производительность в цикле разработки программного обеспечения, например, непрерывная интеграция и продвижение экологически чистых инициатив [ необходимы пояснения ] .

Релиз-инжиниринг часто является интеграционным центром для более сложных команд по разработке программного обеспечения, находясь на стыке разработки, управления продуктом, обеспечения качества и других инженерных усилий, также известных как DevOps . Релиз-инжиниринговые команды часто играют роль привратников (например, в Facebook, Google, Microsoft) для определенных критически важных продуктов, где их суждение формирует параллельную линию ответственности и полномочий в отношении производственных релизов (push).

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

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

Инженер по выпуску может предоставлять программное обеспечение, услуги или и то, и другое для групп по разработке программного обеспечения и обеспечения качества программного обеспечения. Предоставляемое программное обеспечение может создавать инструменты, сборки или другие сценарии реорганизации, которые берут выходные данные компиляции и помещают их в предопределенную древовидную структуру, и даже для разработки и создания инсталляторов для использования группами тестирования или конечным потребителем программного обеспечения. Предоставляемые услуги могут включать автоматизацию сборки (компиляции) программного обеспечения, автоматизированную интеграцию тестов, отчетность о результатах и ​​производство или подготовку систем поставки программного обеспечения, например, в форме электронных носителей (CD, DVD) или электронных механизмов распространения программного обеспечения.

Ссылки

  1. ^ Адамс, Белломо, Берд, Маршалл-Кейм, Хомх, Мойр (март 2015 г.). «Практика и будущее разработки релизов». IEEE Software . 32 (2). IEEE Computer Society: 46. doi : 10.1109/ms.2015.52 .
  2. ^ «За кулисами — Производственные толчки». 11 марта 2009 г.
  3. ^ Джон О'Дуинн. 2015. Проектирование релизов как фактор усиления. В трудах Третьего международного семинара по проектированию релизов (RELENG '15). IEEE Press, Пискатауэй, Нью-Джерси, США, 1-1.
  4. ^ 2013. Труды 1-го международного семинара по релиз-инжинирингу. IEEE Press, Пискатауэй, Нью-Джерси, США.

Дальнейшее чтение

  • «Методология выпуска программного обеспечения» Майкла Э. Бэйса; ISBN 0-13-636564-7 . 
  • «Управление конфигурацией программного обеспечения» Х. Рональда Берлака; ISBN 0-471-53049-2 . 
  • «Разработка методологии поддержки решений о выпуске программного обеспечения» Х. Сассенбурга; ISBN 90-367-2424-4 . 
  • «Непрерывная поставка: надежные выпуски программного обеспечения посредством автоматизации сборки, тестирования и развертывания» Джеза Хамбла, Дэвида Фарли; ISBN 0-321-60191-2 
Retrieved from "https://en.wikipedia.org/w/index.php?title=Release_engineering&oldid=1260218063"