Перейти до вмісту

Artifact

Матеріал з K2 ERP Wiki

Можуть вимагатися:

</div>
'''Checksum''' — коротке значення, яке сприяє перевірити цілісність artifact.;== Приклад checklist для release artifact ==

== Checksums ==

'''Практична роль:''' бібліотека як package artifact має змогу бути dependency для застосунку.;== Signing ==
Приклади:
== Типові помилки початківців ==
'''істотно:''' architecture artifact має бути актуальним.; Для production краще використовувати конкретну версію або digest.; Ось його реліз.; Правильне керування artifacts сприяє з deployment, rollback, audit, security, compliance і командною передачею знань.; * Документація container registries, package registries і artifact repositories.; docker push registry.example.com/my-app:1.0.0

Приклади:

Головна думка: artifact — це не без ускладнень файл.; Приклад Приклади:

Provenance — відомості про походження artifact.;

Приклади:

Release Artifact

Один artifact

Приклади:

  • npm package;
  • Python wheel;
  • Maven package;
  • NuGet package;
  • Ruby gem;
  • Go module;
  • Debian package;
  • RPM package;
  • Composer package;
  • Cargo crate.; Це будь-який важливий результат, який користувачі можуть створити, перевірити або запустити програму.; Research artifacts важливі для:
  • Docker Hub;
  • GitHub Container Registry;
  • GitLab Container Registry;
  • Amazon ECR;
  • Google Artifact Registry;
  • Azure Container Registry;
  • Harbor;
  • private registry.; * application files;
  • runtime;
  • dependencies;
  • filesystem layers;
  • default command;
  • metadata;
  • environment assumptions;
  • labels;
  • exposed ports.; * У зрілих командах release artifact часто має більше доказів навколо себе: tests, SBOM, signatures, changelog і deployment history.;

Приклади registry:

Це означає, що artifact збирають один раз, а потім просувають через environments із різними конфігураціями.; Практична роль: immutable artifact надає можливість бути впевненим, що “реліз 1.2.3” сьогодні й завтра означає той самий вміст.; Immutable artifacts корисні для:

!; * dataset;

  • notebook;
  • experiment log;
  • paper draft;
  • chart;
  • model output;
  • benchmark result;
  • survey data;
  • transcript;
  • analysis report;
  • replication package.; Architecture artifact — матеріал, який описує архітектуру системи.;

</syntaxhighlight> orders-api-1.8.0-sbom.json

У GitLab CI artifacts використовують для збереження файлів між jobs або після pipeline.; Підписування важливе для:

Приклади:

  • software development;
  • DevOps;
  • CI/CD;
  • testing;
  • release management;
  • documentation;
  • UX/UI design;
  • data engineering;
  • machine learning;
  • cybersecurity;
  • project management;
  • product management;
  • enterprise architecture;
  • research;
  • build systems;
  • package management.; main

Приклади:

  • binaries;
  • packages;
  • container images;
  • mobile apps;
  • firmware;
  • release archives;
  • enterprise software;
  • open source distribution.; * image tags;
  • image digests;
  • layers;
  • metadata;
  • signatures;
  • vulnerability scan results;
  • SBOM у частині платформ.; orders-api-1.8.0-test-report.xml

Приклади сценаріїв використання

</syntaxhighlight>

Небезпека: погано керовані artifacts можуть перетворити CI/CD із системи довіри на систему випадкових файлів.; Іноді найцінніший artifact — це проста схема, яка нарешті пояснила команді, що болить користувачу.; Приклад Хороша практика:

app-image-digest.txt

Загальний характеристика

Provenance має змогу містити:

Приклад: orders-api-1.8.0-linux-amd64.tar.gz

release-notes.md

завдяки наявності Проста думка: software artifact — це не тільки готова програма.; Package artifact — artifact у форматі package manager.; * Design mockup має змогу бути artifact так само, як binary file.; Не кожен маленький проєкт потребує складної artifact platform.; Це комфортно для development, але ризиковано для production.; Практична роль: якщо завтра знайдуть вразливість у бібліотеці, SBOM допоможе оперативно зрозуміти, які artifacts її містять.; Build once, deploy many

  • Практики software engineering щодо software artifacts.; це результат роботи, який створюється, зберігається або передається в процесі розробки, тестування, збірки, доставки чи експлуатації системи виступає ключовою рисою Artifact або артефакт.; Приклад:
ML artifacts особливо важливі, бо модель без metadata часто важко відтворити.;
  • узгодити очікування;
  • перевірити ідею до розробки;
  • пояснити user flow;
  • зменшити переробки;
  • передати дизайн розробникам;
  • документувати продуктове рішення для бізнесу.; * onboarding;
  • architecture review;
  • security review;
  • incident analysis;
  • planning;
  • communication with stakeholders;
  • migration;
  • compliance.;

Приклади artifacts: Приклади retention:

істотно: artifact більше підкреслює походження з процесу, а asset — корисність як ресурс.; Суть

Поширені підходи:

!; Docker image — один із найпоширеніших сучасних release artifacts.; Потрібно вирішити:

  • analytics;
  • reproducibility;
  • ML;
  • audit;
  • reporting;
  • data pipelines;
  • compliance;
  • debugging.; Він каже: “Ось конкретний результат.; Команда збирає frontend bundle, backend Docker image, database migration scripts і release notes.; істотно: logs як artifacts мають бути корисними, але не повинні містити passwords, tokens або зайві персональні інформаційні дані.; * Практики software supply chain security, SBOM, provenance, signing і checksum verification.; Приклади:
  • timestamps;
  • random values;
  • різні dependency versions;
  • різні OS packages;
  • network downloads;
  • build environment differences.; Доступ до artifact обмежений
test-report.xml

Приклад pipeline: </syntaxhighlight>

|- | Artifact | Результат створення або збірки | `my-app:1.0.0` Docker image |- | Dependency | Те, від чого залежить artifact або код | `express`, `react`, `postgres-driver` |}

Але навіть у малому проєкті корисно мати:

Registry має змогу зберігати:

ML Artifact

library-2.8.0.jar

У CI-системах на кшталт GitHub Actions artifact часто означає файл, який workflow зберігає після job.; Приклади:

</syntaxhighlight>

Типовий сценарій:

Див.; додатково

Практична роль: registry — це складський облік артефактів, звідки CI/CD, Kubernetes або production бере конкретні images.;== Versioning ==

Web application release

  • це навчальний проєкт;
  • немає production;
  • немає external releases;
  • немає compliance;
  • build artifacts без зайвих зусиль відтворити;
  • команда маленька;
  • artifacts тимчасові;
  • немає чутливих даних.;

Приклад artifact naming

release-1.4.2/

Коли artifact особливо важливий

Artifact має версію У цьому прикладі `dist/app.bundle.js` є собою build artifact.; * Artifact без provenance — як посилка без зворотної адреси.; * Test report — теж artifact, хоча він не є собою програмою.; Ось звідки він узявся”.; Погано керовані artifacts створюють ризики: підміна, secrets у build, незрозумілі версії, неможливість rollback і хаос у release process.; Найлюдяніший факт: не кожен artifact має бути кодом.; Основні переважні аспекти artifacts:

Deploy artifact

Небезпека: якщо команда не знає, який artifact зараз у production, incident response стає набагато складнішим.; істотно: artifact management має відповідати ризику й масштабу.;</syntaxhighlight> Воно має змогу зберігати: Вони потрібні для:

Приклади:

  • binaries;
  • packages;
  • container images;
  • Helm charts;
  • Maven artifacts;
  • npm packages;
  • Python wheels;
  • NuGet packages;
  • release bundles;
  • metadata;
  • checksums.;== Test Artifact ==

Різні environment variables для dev/staging/prod Artifact repository

Практична роль: artifact lifecycle сприяє керувати не тільки створенням, а й зберіганням, використанням і видаленням artifacts.; * Docker image — один із найпопулярніших сучасних software artifacts.; Це зафіксований результат процесу, якому команда має вміти довіряти.; Не кожен проєкт його має, але для security-sensitive software це дуже цінно.; як ілюстрація, команда має змогу написати чудовий код, але production запускає не “код із GitHub”, а конкретний build artifact: container image, binary, package або compiled bundle.; У design thinking artifact має змогу бути результатом дослідження або дизайну.; * creation;

  • validation;
  • storage;
  • scanning;
  • approval;
  • promotion;
  • deployment;
  • monitoring;
  • rollback use;
  • archival;
  • deletion.;

</syntaxhighlight>

  • security;
  • trust;
  • open source;
  • audit;
  • deterministic releases;
  • supply chain verification;
  • debugging.; Артефакти зустрічаються в:

Практична роль: software supply chain дивиться на artifact як на ланку між розробкою й користувачем.;== Джерела ==

Artifact

<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

Artifact має змогу бути фінальним або проміжним результатом.;</div>
latest
Rollback часто залежить від наявності попереднього artifact.; '''Практична роль:''' у game development artifacts часто включають не тільки код, а й велику кількість творчих assets.; * Матеріали щодо ML artifacts, data artifacts, design artifacts, architecture documentation і project management deliverables.; SBOM корисний для:

== Artifact у Game Development ==

Source code теж має змогу бути artifact, але в DevOps зазвичай розрізняють:

* architecture diagram;
* C4 diagram;
* sequence diagram;
* deployment diagram;
* data flow diagram;
* ADR;
* threat model;
* integration map;
* infrastructure diagram;
* service catalog;
* dependency map.; Secrets не включені
'''Artifact retention''' — політика зберігання artifacts.;<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">

<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
Artifact repository сприяє:
Приклади:

<syntaxhighlight lang="text">

'''істотно:''' `latest` — не реліз, а рухома мітка.;</div>
Приклади:
Release artifact має бути:

== Package Artifact ==

</div>

 frontend-dist.zip

* test results;
* coverage;
* built app;
* screenshots;
* compiled package;
* logs;
* deployment bundle.; '''Signing''' або підпис artifact сприяє перевірити його походження й цілісність.; Один файл має змогу бути і asset, і artifact.;== Приклад структури release artifacts ==

== CI/CD Artifact ==

Artifact має життєвий цикл.;== Коли artifacts можна спростити ==

* зрозумілі назви;
* версію;
* README;
* простий release archive;
* backup важливих результатів.;</div>

<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

* build outputs;
* test reports;
* coverage reports;
* logs;
* screenshots;
* compiled binaries;
* Docker images;
* deployment packages;
* static analysis reports;
* security scan reports;
* SBOM;
* Terraform plans.;</div>
Build pipeline створює `.jar`, генерує documentation, підписує package і публікує його в Maven repository.; * source code;
* binaries;
* libraries;
* packages;
* container images;
* configuration files;
* scripts;
* database schemas;
* API contracts;
* documentation;
* test data;
* build outputs;
* deployment manifests.; Артефакти мають бути версіоновані.;</div>

* artifact без версії;
* artifact із secrets;
* підміна artifact;
* outdated artifact;
* відсутність provenance;
* нестача storage;
* занадто довге retention;
* занадто коротке retention;
* незрозумілий naming;
* release artifact не збігається із протестованим artifact;
* відсутність checksum;
* artifact repository без access control;
* dependency confusion;
* вразливі packages;
* license compliance problems.; '''Binary artifact''' — скомпільований файл або пакет, який має змогу виконуватися або використовуватися іншими програмами.; '''Design artifact''' — результат UX/UI, product design або visual design роботи.; '''Практична роль:''' documentation artifact зберігає знання команди, щоб вони не жили тільки в головах кількох людей.; Спрощення доречне, якщо:
=== Machine learning model ===
'''істотно:''' зберігати все вічно дорого й ризиковано, але видалити release artifact занадто рано має змогу зламати rollback або audit.; Rollback artifact доступний
'''Log artifact''' — файл або набір логів, збережених після запуску, тесту, build або incident.; sbom.json

* версіонувати artifacts;
* контролювати доступ;
* зберігати історію релізів;
* кешувати dependencies;
* підтримувати supply chain security;
* робити rollback;
* відтворювати releases.;<div style="background:#fdecea; border-left:6px solid #e74c3c; padding:12px; margin:12px 0;">
Приклад:
Data artifacts важливі для:

<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

* називати файл `final-final-v3.zip`;
* не зберігати build output після CI;
* збирати artifact прямо на production-сервері;
* не знати, який commit відповідає artifact;
* використовувати `latest` у production;
* зберігати secrets у artifact;
* не мати checksum;
* не мати rollback artifact;
* видаляти старі release artifacts занадто рано;
* не зберігати test reports;
* не сканувати container images;
* не контролювати доступ до registry;
* вручну копіювати artifact через месенджер;
* не документувати release notes;
* плутати source code, build artifact і deployed artifact.; Це ще й контекст: на яких даних, з якими параметрами й з якою якістю модель була розроблена.; {| class="wikitable"

* source artifact — код або archive source;
* build artifact — результат збірки;
* release artifact — те, що випускають;
* deployment artifact — те, що розгортають.; Якщо зловмисник підмінив package або image, production має змогу запустити шкідливий код навіть без зміни source repository.; '''Практична роль:''' Docker image робить deployment більш передбачуваним, бо застосунок і його залежності пакуються разом.; Суть
== Тематичні мітки ==
Signing відповідає на питання:

'''Основна ідея:''' artifact — це “слідом залишений результат роботи”: те, що можна зберегти, перевірити, передати, розгорнути або використати пізніше.;</div>

<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
== Artifact і Source Code ==
'''Критично:''' якщо старий artifact видалили, rollback має змогу перетворитися на emergency rebuild, а це ризиковано.; Команда зберігає suspicious logs, packet capture, timeline, hashes і forensic notes як security artifacts для розслідування.;<syntaxhighlight lang="text">

Це істотно для:

'''істотно:''' production має бути прив’язаний до конкретного artifact, а не до нечіткого “останнього коду на main”.; Код — це рецепт, pipeline — це кухня, а artifact — те, що реально їде до користувача.; Artifact і asset іноді перетинаються.; Він фіксує рішення для бізнесу про майбутню взаємодію користувача із системою.; У game development artifact має змогу бути asset або build output.;<div style="background:#fef2f2; border-left:6px solid #ef4444; padding:12px; margin:12px 0;">
</div>

'''істотно:''' security artifacts можуть бути чутливими або небезпечними, з цієї причини їх потрібно зберігати з контролем доступу й обережністю.; Стара діаграма має змогу вводити команду в оману.; Build artifact

* аналізувати помилки;
* підтверджувати якість;
* перевіряти regressions;
* документувати release readiness;
* знаходити flaky tests;
* проводити audit.; * Хороший artifact має змогу пережити людей у команді: через роки він пояснить, що саме було випущено.;<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
Такі artifacts допомагають команді думати спільно й не втрачати контекст користувача.; Для logs і temporary reports часто достатньо короткого retention.; Checksum створено
Scan artifact
У regulated або enterprise-середовищах artifacts важливі для compliance.;<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

</div>
'''істотно:''' reproducible build — це високий рівень дисципліни.; !;<syntaxhighlight lang="text">

* чи artifact не пошкодився;
* чи файл той самий;
* чи download завершився коректно;
* чи artifact відповідає очікуваному digest.; staging

Checkout code
Training pipeline створює model weights, tokenizer, evaluation report, metrics, dataset version і model card.;</div>
'''Reproducible build''' — бізнес-процес, у якому з однакового source code і однакових умов можна отримати той самий artifact.; * Документація CI/CD систем щодо build artifacts і job artifacts.;<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
 backend-1.4.2.tar.gz
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

Приклади build artifacts:

'''Практична роль:''' ML artifact — це не тільки файл моделі.; * які artifacts зберігати;
* як довго;
* де;
* хто має доступ;
* які artifacts критичні для rollback;
* які можна видаляти;
* чи потрібне legal retention;
* чи містять artifacts чутливі інформаційні дані;
* скільки коштує storage.; {| class="wikitable"
 checksums.txt

Саме з цієї причини сучасний DevOps багато уваги приділяє не лише source code, а й з цієї причини, який саме artifact був зібраний, ким, коли, з яких dependencies, з якими тестами, з яким checksum і чи можна довести його походження.;</div>
Package artifact зазвичай має:
Source code
== Цікаві факти про Artifact ==
'''Практична роль:''' research artifact надає можливість не лише сказати “ми отримали результат”, а й показати, як саме його отримали.; '''Найлюдяніший факт:''' artifact — це спосіб не покладатися на пам’ять людей.; !;<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
</div>
У CI/CD артефакт — це файл або результат, який pipeline створює й передає між етапами.;<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

'''Практична роль:''' package artifact надає можливість іншим проєктам встановлювати й використовувати вашу бібліотеку або інструмент через package manager.; Tests пройшли
</div>
'''Release artifact''' — artifact, який готовий до випуску або deployment.;

Приклади:

Java library

Практична роль: checklist сприяє не перетворити реліз на “ми десь зібрали якийсь файл”.;
</div>

* access control;
* signing;
* checksums;
* vulnerability scanning;
* secret scanning;
* license scanning;
* provenance;
* SBOM;
* immutable storage;
* audit logs;
* retention;
* dependency policies;
* trusted builders;
* registry permissions.; Приклад

== Artifact і Reproducible Build ==

У розробці ПЗ артефакт часто важливіший, ніж здається.;<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
== Artifact Retention ==
</div>

== Artifact у Cybersecurity ==

</div>

'''Критично:''' якщо secret потрапив в artifact, його потрібно вважати скомпрометованим і rotate, а не без ускладнень видалити файл у наступному build.;<div style="background:#fdecea; border-left:6px solid #e74c3c; padding:12px; margin:12px 0;">

Artifact security — захист artifacts від підміни, витоку й небезпечного використання.; У research artifact — це результат дослідження або експерименту.; SBOM має змогу містити:
CI/CD artifacts можуть бути:
Security scan
Можливі проблеми:
Runtime monitoring

Поширені помилки:

* хто створив artifact;
* з якого коду;
* з якими dependencies;
* чи проходив тести;
* чи був підписаний;
* де зберігався;
* хто мав доступ;
* який artifact реально запущений.; Один artifact має змогу розгортатися в різні environments:
== Architecture Artifact ==
Store artifact

<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
== Binary Artifact ==
Docker image містить:

Типові етапи:

</div>

Приклади:

* SHA-256;
* SHA-512;
* SHA-1 у старіших системах;
* MD5 у legacy-сценаріях, але не для сучасної безпеки.; Dependencies
Приклади:
<syntaxhighlight lang="text">

<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

'''Практична роль:''' якщо один і той самий artifact проходить staging і production, команда менше ризикує отримати “у staging працювало, бо build був інший”.;== Artifact у Software Supply Chain ==

Design artifacts допомагають:
</div>
У machine learning '''ML artifact''' — це результат навчання, оцінки або deployment моделі.; * Artifact у DevOps часто означає саме те, що реально deploy-иться, а не без ускладнень source code.; docker build -t my-app:1.0.0 .; '''Головна перевага:''' artifact робить результат роботи конкретним: його можна назвати, зберегти, перевірити й використати.;</div>
'''істотно:''' назва artifact має допомагати зрозуміти, що це, яка реліз, для чого й для якої платформи.;<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

'''Підказка:''' якщо файл сприяє зрозуміти, перевірити або повторити результат роботи, він майже точно є собою artifact.;== Artifact Repository ==

Artifact має змогу бути deliverable, але не завжди.; * є собою production deployment;
* потрібен rollback;
* платформа regulated;
* програмний продукт має багато environments;
* є собою CI/CD;
* застосовується Docker або Kubernetes;
* є собою packages для клієнтів;
* потрібна supply chain security;
* команда велика;
* потрібен audit;
* релізи мають підписуватися;
* ML-моделі потрібно відтворювати;
* потрібно довести, що саме було протестовано.; * reproducibility;
* rollback;
* audit;
* security;
* deployment confidence;
* debugging;
* traceability.;<div style="background:#fef2f2; border-left:6px solid #ef4444; padding:12px; margin:12px 0;">

'''Практична порада:''' що важливіший програмний продукт, то важливіше знати не тільки “який код”, а й “який artifact” функціонує в production.; !; Поняття

my-app@sha256:abc123...; Поняття
!;{{SEO
|title=Artifact — артефакт у програмуванні, розробці ПЗ, DevOps, дизайні, даних і документації
|description=Artifact — Wiki-стаття про артефакт як результат роботи або проміжний продукт у software development, DevOps, CI/CD, дизайні, тестуванні, машинному навчанні, документації й управлінні проєктами. Розглянуто build artifacts, release artifacts, Docker images, packages, binaries, test reports, logs, documentation artifacts, design artifacts, ML artifacts, repositories, versioning, provenance, SBOM, безпеку, переваги, ризики, цікаві факти і хороші практики.
|keywords=Artifact, артефакт, software artifact, build artifact, release artifact, CI/CD artifact, DevOps artifact, binary artifact, package, Docker image, container image, test report, log artifact, documentation artifact, design artifact, ML artifact, model artifact, artifact repository, artifact registry, SBOM, provenance, software supply chain
|alternativeTo=ручна передача файлів між командами; неверсіоновані build-файли; хаотичні zip-архіви; deployment без reproducible artifact; релізи без checksum і provenance; збереження результатів збірки лише локально; документація без версій; ML-моделі без metadata; CI/CD без збереження test reports і logs
}}

<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

* версіонувати artifacts;
* зберігати release artifacts у repository або registry;
* використовувати checksums;
* підписувати критичні artifacts;
* не включати secrets;
* сканувати artifacts на vulnerabilities;
* генерувати SBOM для важливих релізів;
* зберігати provenance;
* використовувати immutable references;
* не використовувати `latest` для production без контролю;
* зберігати test reports;
* налаштувати retention policy;
* контролювати доступ;
* документувати release process;
* будувати artifact один раз і просувати через environments;
* мати rollback artifacts.;<div style="background:#f0eaff; border-left:6px solid #8e44ad; padding:12px; margin:12px 0;">
 provenance.json
</div>

<syntaxhighlight lang="text">

== Цікавий факт ==

</div>

* `.exe`;
* `.dll`;
* `.so`;
* `.dylib`;
* `.jar`;
* `.class`;
* `.wasm`;
* compiled CLI tool;
* mobile app binary;
* firmware image.; * Матеріали DevOps щодо release management, artifact repositories і deployment pipelines.; У software supply chain artifact проходить шлях від source code до production.;== Хороші практики artifacts ==

</syntaxhighlight>

Artifact і dependency пов’язані, але не одне й те саме.; Artifact repository — спеціальне сховище для build, package і release artifacts.; Практична роль: build artifact — це те, що pipeline створює після компіляції, bundling або packaging.; SBOM або Software Bill of Materials — список компонентів, з яких складається software artifact.;== Data Artifact ==

  • хто створив artifact;
  • чи змінювався artifact після підпису;
  • чи можна довіряти джерелу;
  • чи artifact походить із правильного pipeline.; Суть

latest-prod-real.zip

  • roadmap;
  • backlog;
  • sprint plan;
  • user story;
  • acceptance criteria;
  • risk register;
  • status report;
  • project charter;
  • decision log;
  • retrospective notes;
  • release plan;
  • stakeholder map.; Практична порада: artifact має бути однаковим, а environment-specific поведінка має керуватися конфігурацією, не секретами всередині build.; * production container image;
  • signed binary;
  • installer;
  • mobile app build;
  • package version;
  • Helm chart;
  • release notes;
  • checksum;
  • SBOM;
  • deployment manifest;
  • migration scripts.; Artifact підписано, якщо потрібно

Критично: якщо artifact можна непомітно підмінити, безпека всього release process під загрозою.;== Ризики artifacts ==

Artifact у Research

Краще:

Потрібно контролювати:

my-app:2026.05.09

  • відтворюваність;
  • traceability;
  • простіший deployment;
  • кращий rollback;
  • evidence для testing;
  • release discipline;
  • auditability;
  • supply chain security;
  • можливість перевірки;
  • зручне зберігання;
  • командна передача результатів;
  • automation;
  • контроль версій;
  • separation between build and deploy.;== Immutable Artifact ==
  • debugging;
  • incident analysis;
  • audit;
  • troubleshooting;
  • performance analysis;
  • compliance;
  • root cause analysis.; * Artifact repository — важлива частина software supply chain.; До software artifacts належать:

Artifact і Secrets

Artifact у GitHub Actions

істотно: provenance сприяє відповісти на питання: “Звідки взявся цей artifact і чи можна йому довіряти?” Приклад хорошої ідеї:

Design Artifact

Artifact особливо важливий, якщо:

Artifact і Rollback

Log Artifact

Build system

Test artifact — результат тестування.;
  • signed artifacts;
  • audit logs;
  • SBOM;
  • license reports;
  • vulnerability scan results;
  • approval records;
  • release notes;
  • test evidence;
  • provenance;
  • retention policy;
  • access control;
  • change management records.; Container registry — сховище для container image artifacts.;

Практична роль: CI/CD artifact — це “передавальний предмет” між етапами pipeline: зібрали, перевірили, зберегли, розгорнули.;== Container Registry == my-app:git-a1b2c3d

Практична роль: compliance часто потребує не лише “ми випустили версію”, а доказів: що саме, коли, ким, як перевірено й із яких компонентів.;

У cybersecurity artifact має змогу означати файл, доказ або слід, знайдений під час аналізу.; dev

  • packages;
  • libraries;
  • versions;
  • licenses;
  • dependency relationships;
  • hashes;
  • supplier information;
  • vulnerability context.; Проста аналогія: artifact repository — це бібліотека готових збірок, а не випадкова папка Downloads на ноутбуці розробника.; new-build.zip
my-app:1.4.2
</div>

Artifact і Configuration

SBOM створено для важливого релізу

coverage-report.html

!;</syntaxhighlight>

  • security;
  • license compliance;
  • audits;
  • vulnerability response;
  • supply chain management;
  • enterprise governance;
  • incident response.; Log artifacts можуть бути:
  • compiled binary;
  • `.jar`, `.war`, `.dll`, `.exe`;
  • npm package;
  • Python wheel;
  • Docker image;
  • Helm chart;
  • Terraform plan;
  • test report;
  • code coverage report;
  • log file;
  • API specification;
  • database migration;
  • design mockup;
  • architecture diagram;
  • ML model file;
  • dataset snapshot;
  • SBOM;
  • release notes.; Не варто тестувати один build, а в production збирати інший “майже такий самий”.; Run tests → Generate report → Upload artifact → Download artifact later
Software artifact — будь-який створений у процесі розробки програмний або технічний результат.;

</syntaxhighlight>

Збирати окремий artifact для production із hardcoded секретами

== Artifact Security ==
migrations/

як ілюстрація, image з digest:

Retention policy визначена

Deployment

Погана практика:

Для rollback потрібно: Artifact і configuration краще розділяти.; Release approval Immutable artifact — artifact, який після створення не змінюється.; Release artifacts можуть включати:

переважні аспекти artifacts

Найважливіші artifacts у сучасному DevOps — це build artifacts, release artifacts, container images, packages, test reports, SBOM, provenance і documentation.; * suspicious binary;

  • log file;
  • packet capture;
  • memory dump;
  • malware sample;
  • IOC list;
  • forensic image;
  • audit event;
  • incident timeline;
  • hash;
  • screenshot;
  • YARA rule.; Artifact — це конкретний результат роботи: файл, пакет, image, звіт, модель, документація, дизайн, лог або інший матеріал, який створюється в процесі розробки, тестування, збірки, релізу чи дослідження.; команди забезпечується через Слово artifact часто означає не “щось стародавнє з музею”, а конкретний файл або набір файлів, який має значення; додатково реалізовано процесу чи системи.; Для pet project і банківської системи рівень контролю має бути різним.; * `latest` — зручний tag, але поганий спосіб описати release artifact у production.;

Checksum сприяє зрозуміти:

Artifact і Deliverable

final2.zip

Security incident

У project management artifact — це документ або результат, який сприяє керувати роботою.; orders-api-1.8.0-checksums.txt

  • empathy map;
  • persona;
  • user journey map;
  • problem statement;
  • prototype;
  • wireframe;
  • usability report;
  • workshop board;
  • decision matrix.; істотно: binary artifact важче перевірити очима, ніж source code, з цієї причини для нього важливі signatures, checksums, provenance і trusted build pipeline.; Це artifacts, які проходять перевірку перед публікацією.; * versioned;
  • tested;
  • traceable;
  • reproducible у бажаному сценарії;
  • збережений у repository або registry;
  • пов’язаний із commit або tag;
  • придатний до deployment або distribution.; Цікавий факт: wireframe — це теж artifact, хоча він не запускається як програма.; Run tests

Secrets не повинні потрапляти в artifacts.; Binary artifact важливий, бо він часто є собою фінальним результатом build process.; Приклад:

Architecture artifacts корисні для: Практична роль: project artifact сприяє команді пам’ятати не тільки що робити, а й чому це робиться.;== Artifact у GitLab CI ==

  • зберегти попередню версію;
  • знати, який artifact був deployed;
  • мати compatible database state;
  • мати rollback plan;
  • мати доступ до registry;
  • мати deployment automation;
  • мати logs і monitoring.; Release notes готові

Build Artifact

Перевага: artifacts роблять роботу команди відтворюваною: можна побачити, що саме було створено, протестовано й доставлено.;
'''Build artifact'''  результат процесу збірки.; Test artifacts допомагають:

* test logs  7 або 30 днів;
* release artifacts  кілька років;
* security reports  згідно з compliance;
* temporary build outputs  короткий термін;
* production images  до завершення підтримки версії.; Усі ці файли є собою artifacts релізу.;</div>
</div>

У цьому прикладі `my-app:1.0.0` є собою container artifact.; Приклади:

'''Deliverable'''  те, що команда обіцяє передати замовнику або stakeholder-у.;</div>
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
=== Mobile application ===

<syntaxhighlight lang="text">

</div>

!; * source repository;
* commit SHA;
* branch або tag;
* build system;
* build time;
* builder identity;
* dependencies;
* build parameters;
* test status;
* signatures;
* environment details.;== Artifact Lifecycle ==

</div>
final.zip
!; * game build;
* texture;
* 3D model;
* animation;
* sound effect;
* level file;
* shader;
* localization file;
* crash dump;
* performance capture;
* save file sample.; У software engineering артефактом має змогу бути binary file, Docker image, package, test report, log, documentation, design mockup, API specification, machine learning model, build output або будь-який інший матеріальний результат процесу.; Security scan виконано

app.zip

</div>

* semantic versioning;
* build number;
* Git commit SHA;
* date-based version;
* release tag;
* image digest;
* package version;
* environment-specific label.;</div>
== Mutable Tags ==
Погано:

'''Проста різниця:''' artifact має змогу бути внутрішнім, а deliverable зазвичай має зовнішнє або контрактне значення.; Artifact пов’язаний із Git commit або tag
</div>
== Provenance ==

<div style="background:#f0eaff; border-left:6px solid #8e44ad; padding:12px; margin:12px 0;">

* database URL;
* feature flags;
* API endpoints;
* environment name;
* log level;
* external service settings.;<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

</div>

* dataset;
* data snapshot;
* cleaned CSV;
* Parquet file;
* report;
* dashboard export;
* data quality report;
* feature set;
* anonymized dataset;
* data schema;
* migration output.; '''Практична роль:''' checksum  це як відбиток пальця artifact: якщо вміст зміниться, checksum теж зміниться.; Source code  Build artifact  Release artifact  Deployed artifact

== Project Management Artifact ==

* build logs;
* test logs;
* application logs;
* deployment logs;
* security logs;
* audit logs;
* container logs;
* CI job logs.;== Documentation Artifact ==

<syntaxhighlight lang="text">

<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">

* `.env` у Docker image;
* private key у package;
* access token у build logs;
* password у test report;
* credentials у static bundle;
* API key у mobile app без захисту;
* secrets у source maps.; * reproducibility;
* peer review;
* validation;
* knowledge transfer;
* future research;
* transparency.; Artifacts мають ризики.; Один artifact має змогу сам стати dependency для іншого проєкту.; Artifact збережено в repository або registry

</div>

Приклади checksum algorithms:

* trained model file;
* model weights;
* tokenizer;
* dataset snapshot;
* feature schema;
* evaluation report;
* metrics;
* confusion matrix;
* training logs;
* hyperparameters;
* experiment metadata;
* model card;
* inference container image.; Artifact має змогу мати retention time, тобто зберігатися обмежений час.; * ML model без metadata  слабкий artifact, бо його важко відтворити й оцінити.; * unit test report;
* integration test report;
* end-to-end screenshots;
* code coverage report;
* performance test output;
* QA checklist;
* test logs;
* failed test snapshots;
* browser traces;
* video recording of test run.;<syntaxhighlight lang="text">

* compiled app;
* test report;
* coverage report;
* static site output;
* build directory;
* deployment package.; як ілюстрація, згенерований sprite sheet є собою asset для гри й artifact build-процесу.;</div>
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

'''Практична роль:''' така структура показує не тільки сам build, а й докази якості, походження й готовності до релізу.;== Artifact у Design Thinking ==
|-
| Artifact
| Будь-який результат роботи
| Test log, build file, prototype
|-
| Deliverable
| Результат, який офіційно передають
| Release build, final report, design package
|}

<syntaxhighlight lang="text">
'''Documentation artifact'''  документ або матеріал, який описує систему, рішення для бізнесу, бізнес-процес або програмний продукт.; * README;
* API documentation;
* architecture diagram;
* ADR;
* user guide;
* runbook;
* onboarding guide;
* release notes;
* changelog;
* security policy;
* design specification;
* troubleshooting guide.;== Artifact і Compliance ==
'''Data artifact'''  результат роботи з даними.;== Artifact і Dependency ==
== Docker Image як Artifact ==
</div>

Рекомендовано:

'''істотно:''' release artifact має бути саме тим, що тестувалося.; '''Практична роль:''' CI artifact надає можливість не втратити результат job після завершення pipeline.; CI створює Android APK або AAB, iOS build, test reports і screenshots.; Небезпечні приклади:
</div>

== Software Artifact ==

</div>

Reproducible builds ускладнюються через:

* wireframe;
* mockup;
* prototype;
* user flow;
* journey map;
* design system component;
* style guide;
* persona;
* usability test report;
* information architecture;
* Figma file;
* accessibility notes.; Поняття

== Artifact і Environment ==
'''істотно:''' data artifact має змогу містити приватні або чутливі інформаційні дані, з цієї причини для нього потрібні access control, retention і privacy rules.; У software development artifacts допомагають зробити бізнес-процес відтворюваним, перевірним і керованим.; '''Головне правило:''' хороший artifact має бути зрозумілим, перевіреним, версіонованим, захищеним і пов’язаним із джерелом свого походження.; '''Критично:''' artifact має змогу бути атакований у supply chain.; * name;
* version;
* dependencies;
* metadata;
* license;
* checksum;
* package manifest;
* distribution registry.; src/  build process  dist/app.bundle.js
Практична роль: test artifact — це доказ того, що перевірка справді виконувалася, а не без ускладнень “в нас усе має працювати”.;

Configuration має змогу містити:

  • compiled executable;
  • Java `.jar`;
  • `.NET` assembly;
  • JavaScript bundle;
  • CSS bundle;
  • mobile app package;
  • Docker image;
  • generated documentation;
  • static site output;
  • compiled assets;
  • source maps;
  • checksum files.; |-

| Artifact | Результат процесу або роботи | Build output, test report, release package |- | Asset | Ресурс, який застосовується продуктом | Image, icon, sound, 3D model |}

істотно: artifact без версії важко відтворити, перевірити й відкотити.; * development;

  • testing;
  • staging;
  • production;
  • preview;
  • disaster recovery.; Типовий ланцюг:

Mutable tag — тег, який має змогу вказувати на різний вміст у різний час.; Supply chain security вимагає знати:

істотно: не всі CI artifacts потрібно зберігати вічно.; 001_add_invoice_table.sql

Artifact і Asset

Найлюдяніший факт: artifact — це як готова коробка з продуктом.;