Чи повинен сценарій розгортання бути артефактом збірки?


13

Це веб-проект, написаний на Java.

Отже, я пишу сценарії збірки та розгортання. Для створення збірки я використав мурашник. Безперервна збірка робиться з Дженкінсом.

Збірка створює 3 різних артефакти:

  1. Файл війни
  2. Блискавка з макетами
  3. Блискавка із зображеннями

Поки так добре, але тепер мені потрібно написати сценарій розгортання, який повинен:

  • Розгорніть війну (артефакт 1) на tomcat, що працює на сервері 1
  • Розмістіть артефакт 2 на сервері 1 у певному каталозі
  • Розмістіть артефакт 3 на сервері 2 у певному каталозі

Тому я розмовляв з колегою, і він сказав, що ми також повинні створити артефакт (можливо, розгорнути.xml ), який розгортає ці артефакти, розміщуючись на правильному сервері.

Отже, був би ще один сценарій, який би:

  • Завантажте артефакти джинкінів
  • перейдіть на кожен сервер і розмістіть там
  • віддалено викликати implemen.xml

Мені стає трохи незручно - це те, що розгортати.xml як артефакт збірки. Мотивацією цього може стати можливість розгортання, не маючи доступу до сховищ VCS, тому збірка буде самодостатньою, тобто будь-яка збірка могла б увійти у виробництво лише за умови, що було створено Дженкінсом.

Де слід розміщувати сценарії розгортання? Чи повинні вони бути лише у ДКС чи вони також повинні будувати артефакти?


це питання добре / це змушує нас захотіти плюс-один / бажаю, щоб я міг відповісти
amara

Відповіді:


6

Мій досвід полягає в тому, що все, що можна автоматизувати, має бути. Якщо ви можете описати це як крок 1, крок 2, .... тоді це повинен бути сценарій. Якщо сценарій може бути автоматично сформований для включення конкретної інформації (наприклад, тег версії), тоді це потрібно зробити. Це не заради того, щоб бути лінивим, а заради того, щоб бути передбачуваним і відтворюваним .

Зверніть увагу: у вас також має бути створений автоматично створений сценарій відновлення, який може використовуватись будь-хто в команді у випадку, якщо автоматично згенерований сценарій розгортання стає божевільним і шлангом виробничого сервера.


3

Все, що писав Пітер Роуелл, правильно, крім того, я б:

Для файлу сценарію розгортання

  • якщо його написав хтось, він повинен знаходитись у контролі версій.
  • якщо він був згенерований і може бути згенерований знову, він зазвичай не переходить у контроль версій.

Для процесу розгортання:

  • Якщо вам подобається, що ваші артефакти є автономними, і якщо це можна зробити легко, то файл може бути артефактом збірки, тобто, він упакований з результатом збірки таким чином, щоб його можна було використовувати для розгортання.
  • З іншого боку, розгортання стає все складнішим, тому рано чи пізно вам знадобиться спеціальна програма (прочитайте деякий код), яка робить розгортання, і артефакт Дженкінса будує більше не міститься.

Це швидше залежить від вашого процесу та того, як ви хочете обробляти розгортання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.