Що таке сховище артефактів?


Відповіді:


32

Під час розробки ви створюєте неабияку кількість різних артефактів. Вони можуть включати:

  • Вихідний код
  • Складене додаток
  • Розгортається пакет
  • Документація

і потенційно інших

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

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

  • Підтримка версій: належним чином зберігати деякі метадані, наприклад, коли був створений кожен артефакт, який їх номер версії, зберігати їх хеші тощо.
  • Збереження: переконайтеся, що ви зберігаєте лише важливі артефакти та автоматично видаляєте ті, які є лише знімками / більше не потрібні тощо. На основі різних критеріїв, які ви можете встановити
  • Контроль доступу: встановіть, хто може публікувати та хто може завантажувати різні артефакти
  • Просування: здатність рекламувати артефакти. Наприклад, у вас можуть бути артефакти знімків із коротким періодом збереження на сервері біля ваших кодерів, і окреме сховище біля поточних серверів, де відображаються лише артефакти, які вважаються розгортаними. Сюди також входить підтримка різних каналів версій та переміщення артефактів між ними (наприклад, просування конкретної версії від бета-версії до стабільної).
  • Дійте як нативне сховище для артефактів. Це означає, що ви можете використовувати його як основний сховище для maven, rubygems, docker тощо. Це також може включати кешування артефактів з офіційних сховищ.

Можливо, варто додати можливість "каналу" через підтримку Versionning, маючи можливість націлювати машину на останню версію в каналі "розвивати" та продавати машину, орієнтовану на конкретну версію в каналі "стабільний".
Тенсібай

@ Pierre.Vriens додав кілька невеликих коментарів, але, можливо, це також можна буде вирішити в окремому запитанні
SztupY

мерсі, але про всяк випадок, ось ваш шанс далі звернутися до мого додаткового коментаря ...
Pierre.Vriens

Чи має сенс також відслідковувати файли конфігурації чи світильники у таких сховищах?
тутука

7

Є менеджери сховищ та універсальні менеджери репозиторіїв пакетів (UPM).

UPM можуть зберігати всі ваші артефакти побудови для Дженкінса, teamcity тощо, і, як правило, також можуть керувати керованими сховищами для багатьох різних типів бінарних артефактів Maven, npm, NuGet та ін.

Це такі інструменти, як Jfrog Artifactory , Inedo ProGet і Sonatype Nexus .

Досить гідне порівняння тут: https://binary-repositories-comppare.github.io/

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