Artifact
Можуть вимагатися:
</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 або артефакт.; Приклад:
- узгодити очікування;
- перевірити ідею до розробки;
- пояснити 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
</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
- 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
</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
'''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
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 вимагає знати:
Artifact і Asset
Висновок
- Software Artifact
- Build Artifact
- Release Artifact
- CI/CD
- DevOps
- Docker Image
- Container Registry
- Artifact Repository
- Package Manager
- Binary
- SBOM
- Software Supply Chain
- Provenance
- Checksum
- Digital Signature
- Testing
- Test Report
- Documentation
- Design Artifact
- Machine Learning
- ML Model
- Data Pipeline
- Release Management
- Deployment
- Rollback
- Безпека застосунків
- Документація
SBOM
- 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
- Документація