Artifact
</syntaxhighlight>
Provenance здатна містити:
Приклади checksum algorithms:
Artifact і configuration краще розділяти. Суть |- | Artifact | Результат створення або збірки | `my-app:1.0.0` Docker image |- | Dependency | Те, від чого залежить artifact або код | `express`, `react`, `postgres-driver` |}
!
- SHA-256;
- SHA-512;
- SHA-1 у старіших системах;
- MD5 у legacy-сценаріях, але не для сучасної безпеки. У cybersecurity artifact здатна означати файл, доказ або слід, знайдений під час аналізу. Практична роль: якщо завтра знайдуть вразливість у бібліотеці, SBOM допоможе оперативно зрозуміти, які artifacts її містять. Поняття
Release notes готові
Mobile application
У design thinking artifact здатна бути результатом дослідження або дизайну. Потрібно вирішити:
my-app@sha256:abc123...Artifact і asset іноді перетинаються. Run tests → Generate report → Upload artifact → Download artifact later
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
* game build;
* texture;
* 3D model;
* animation;
* sound effect;
* level file;
* shader;
* localization file;
* crash dump;
* performance capture;
* save file sample. release-1.4.2/
Артефакти зустрічаються в:
'''критично:''' зберігати все вічно дорого й ризиковано, але видалити release artifact занадто рано здатна зламати rollback або audit. * Матеріали щодо ML artifacts, data artifacts, design artifacts, architecture documentation і project management deliverables. docker push registry.example.com/my-app:1.0.0
Mutable tag — тег, який здатна вказувати на різний вміст у різний час. Команда зберігає suspicious logs, packet capture, timeline, hashes і forensic notes як security artifacts для розслідування.== Immutable Artifact ==
Runtime monitoring
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
'''критично:''' release artifact має бути саме тим, що тестувалося.== Log Artifact ==
Source code
== Artifact у GitLab CI ==
== Artifact і Compliance ==
</div>
'''Artifact retention''' — політика зберігання artifacts. Signing відповідає на питання:
* versioned;
* tested;
* traceable;
* reproducible у бажаному сценарії;
* збережений у repository або registry;
* пов’язаний із commit або tag;
* придатний до deployment або distribution. Supply chain security вимагає знати:
Immutable artifacts корисні для:
<div style="background:#f0eaff; border-left:6px solid #8e44ad; padding:12px; margin:12px 0;">
! Правильне керування artifacts оптимізує з deployment, rollback, audit, security, compliance і командною передачею знань. У game development artifact здатна бути asset або build output. Приклад
== Artifact Repository ==
* production container image;
* signed binary;
* installer;
* mobile app build;
* package version;
* Helm chart;
* release notes;
* checksum;
* SBOM;
* deployment manifest;
* migration scripts. Source code → Build artifact → Release artifact → Deployed artifact
</div>
release-notes.md
== Binary Artifact ==
Приклад:
* packages;
* libraries;
* versions;
* licenses;
* dependency relationships;
* hashes;
* supplier information;
* vulnerability context.== Artifact у Cybersecurity ==
* аналізувати помилки;
* підтверджувати якість;
* перевіряти regressions;
* документувати release readiness;
* знаходити flaky tests;
* проводити audit. Іноді найцінніший artifact — це проста схема, яка нарешті пояснила команді, що болить користувачу. * binaries;
* packages;
* container images;
* Helm charts;
* Maven artifacts;
* npm packages;
* Python wheels;
* NuGet packages;
* release bundles;
* metadata;
* checksums.
критично: production має бути прив’язаний до конкретного artifact, а не до нечіткого “останнього коду на main”. Воно здатна зберігати:
Documentation Artifact
У GitLab CI artifacts використовують для збереження файлів між jobs або після pipeline. Різні environment variables для dev/staging/prod
- Docker Hub;
- GitHub Container Registry;
- GitLab Container Registry;
- Amazon ECR;
- Google Artifact Registry;
- Azure Container Registry;
- Harbor;
- private registry. src/ → build process → dist/app.bundle.js
- README;
- API documentation;
- architecture diagram;
- ADR;
- user guide;
- runbook;
- onboarding guide;
- release notes;
- changelog;
- security policy;
- design specification;
- troubleshooting guide. Практична роль: test artifact — це доказ того, що перевірка справді виконувалася, а не без зусиль “в нас усе має працювати”. * Документація container registries, package registries і artifact repositories. Source code теж здатна бути artifact, але в DevOps зазвичай розрізняють:
Artifact Lifecycle
- Практики software engineering щодо software artifacts. У software engineering артефактом здатна бути binary file, Docker image, package, test report, log, documentation, design mockup, API specification, machine learning model, build output або будь-який інший матеріальний результат процесу. Приклади:
</syntaxhighlight> критично: reproducible build — це високий рівень дисципліни. * 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. * roadmap;
- backlog;
- sprint plan;
- user story;
- acceptance criteria;
- risk register;
- status report;
- project charter;
- decision log;
- retrospective notes;
- release plan;
- stakeholder map.</syntaxhighlight>
критично: не всі CI artifacts потрібно зберігати вічно. * У зрілих командах release artifact часто має більше доказів навколо себе: tests, SBOM, signatures, changelog і deployment history. Це будь-який важливий результат, який користувачі можуть створити, перевірити або запустити програму. latest
Приклади:
CI/CD Artifact
my-app:1.4.2
критично: artifact management має відповідати ризику й масштабу. app-image-digest.txt orders-api-1.8.0-sbom.json
Software Artifact
Висновок
- binaries;
- packages;
- container images;
- mobile apps;
- firmware;
- release archives;
- enterprise software;
- open source distribution. * Docker image — один із найпопулярніших сучасних software artifacts. app.zip
Типовий сценарій:
</syntaxhighlight>
Artifact і Reproducible Build
Test Artifact
|- | Artifact | Результат процесу або роботи | Build output, test report, release package |- | Asset | Ресурс, який застосовується для продуктом | Image, icon, sound, 3D model |}
Secrets не повинні потрапляти в artifacts. Практична роль: immutable artifact дає можливість бути впевненим, що “реліз системи 1.2.3” сьогодні й завтра означає той самий вміст. У software development artifacts допомагають зробити бізнес-процес відтворюваним, перевірним і керованим. Deliverable — те, що команда обіцяє передати замовнику або stakeholder-у. Build once, deploy many
Практична роль: checklist оптимізує не перетворити реліз на “ми десь зібрали якийсь файл”. Приклад
- creation;
- validation;
- storage;
- scanning;
- approval;
- promotion;
- deployment;
- monitoring;
- rollback use;
- archival;
- deletion. Приклади:
Вони потрібні для:
'''Artifact''' — це конкретний результат роботи: файл, пакет, image, звіт, модель, документація, дизайн, лог або інший матеріал, який створюється в процесі розробки, тестування, збірки, релізу чи дослідження. У project management artifact — це документ або результат, який оптимізує керувати роботою.== Приклад artifact naming ==
test-report.xml
! Registry здатна зберігати:
Команда збирає frontend bundle, backend Docker image, database migration scripts і release notes. це результат роботи, який створюється, зберігається або передається в процесі розробки, тестування, збірки, доставки чи експлуатації системи виступає ключовою рисою '''Artifact''' або '''артефакт'''. * 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. Ось звідки він узявся”.== Artifact і Configuration ==
Один artifact здатна розгортатися в різні environments:
Release artifact має бути:
== ML Artifact ==
<syntaxhighlight lang="text">
</div>
<syntaxhighlight lang="bash">
У research artifact — це результат дослідження або експерименту.<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
Research artifacts важливі для:
'''Documentation artifact''' — документ або матеріал, який описує систему, рішення для бізнесу, бізнес-процес або ERP-продукт.<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
<syntaxhighlight lang="text">
== Data Artifact ==
'''критично:''' binary artifact важче перевірити очима, ніж source code, тому для нього важливі signatures, checksums, provenance і trusted build pipeline.<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
У CI-системах на кшталт GitHub Actions artifact часто означає файл, який workflow зберігає після job. Artifact пов’язаний із Git commit або tag
'''Цікавий факт:''' wireframe — це теж artifact, хоча він не запускається як програма. * build outputs;
* test reports;
* coverage reports;
* logs;
* screenshots;
* compiled binaries;
* Docker images;
* deployment packages;
* static analysis reports;
* security scan reports;
* SBOM;
* Terraform plans.
Retention policy визначена Приклади:
Коли artifacts можна спростити
Типові помилки початківців
Checksum — коротке значення, яке оптимізує перевірити цілісність artifact. orders-api-1.8.0-linux-amd64.tar.gz
Коли artifact особливо важливий
- source code;
- binaries;
- libraries;
- packages;
- container images;
- configuration files;
- scripts;
- database schemas;
- API contracts;
- documentation;
- test data;
- build outputs;
- deployment manifests. Checksum створено
Приклади: Build artifact
Package artifact — artifact у форматі package manager.Package Artifact
Artifact у Software Supply Chain
Artifact і Dependency
- 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. Практична роль: бібліотека як package artifact здатна бути dependency для застосунку. * Хороший artifact здатна пережити людей у команді: через роки він пояснить, що саме було випущено.== Artifact і Environment ==
</syntaxhighlight>
Загальний SEO-опис
Практична роль: project artifact оптимізує команді пам’ятати не тільки що робити, а й чому це робиться. Для logs і temporary reports часто достатньо короткого retention. Найлюдяніший факт: artifact — це спосіб не покладатися на пам’ять людей. Checksum оптимізує зрозуміти:
my-app:git-a1b2c3d
Практична роль: registry — це складський облік артефактів, звідки CI/CD, Kubernetes або production бере конкретні images.== Build Artifact == Artifact і dependency пов’язані, але не одне й те саме.== Artifact і Source Code ==
Потрібно контролювати:
- dataset;
- data snapshot;
- cleaned CSV;
- Parquet file;
- report;
- dashboard export;
- data quality report;
- feature set;
- anonymized dataset;
- data schema;
- migration output. Практична порада: що важливіший ERP-продукт, то важливіше знати не тільки “який код”, а й “який artifact” функціонує в production. Він фіксує рішення для бізнесу про майбутню взаємодію користувача із системою. Це зафіксований результат процесу, якому команда має вміти довіряти. * ML model без metadata — слабкий artifact, бо його важко відтворити й оцінити. Release approval
Training pipeline створює model weights, tokenizer, evaluation report, metrics, dataset version і model card. Він каже: “Ось конкретний результат. my-app:2026.05.09
Тематичні мітки
Run tests
Release artifacts можуть включати:
Immutable artifact — artifact, який після створення не змінюється. orders-api-1.8.0-checksums.txt
- хто створив artifact;
- чи змінювався artifact після підпису;
- чи можна довіряти джерелу;
- чи artifact походить із правильного pipeline. Поняття
Практична роль: у game development artifacts часто включають не тільки код, а й велику кількість творчих assets. Rollback artifact доступний Приклади:
Rollback часто залежить від наявності попереднього artifact. Package artifact зазвичай має:
Приклади registry:
критично: artifact більше підкреслює походження з процесу, а asset — корисність як ресурс. Приклади:
- analytics;
- reproducibility;
- ML;
- audit;
- reporting;
- data pipelines;
- compliance;
- debugging.
Tests пройшли Приклад: == Artifact Retention == '''Практична роль:''' ML artifact — це не тільки файл моделі.== Provenance == Log artifacts можуть бути: * зберегти попередню версію; * знати, який artifact був deployed; * мати compatible database state; * мати rollback plan; * мати доступ до registry; * мати deployment automation; * мати logs і monitoring. Artifact repository оптимізує: <div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;"> * development; * testing; * staging; * production; * preview; * disaster recovery. Приклад </div> </div> </div> <syntaxhighlight lang="text"> '''Головна думка:''' artifact — це не без зусиль файл. як приклад, згенерований sprite sheet виступає як asset для гри й artifact build-процесу.{{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 }} provenance.json <div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;"> Такі artifacts допомагають команді думати спільно й не втрачати контекст користувача. Приклад хорошої ідеї: Артефакти мають бути версіоновані. '''Практична роль:''' research artifact дає можливість не лише сказати “ми отримали результат”, а й показати, як саме його отримали. Погано: У regulated або enterprise-середовищах artifacts важливі для compliance. У розробці ПЗ артефакт часто важливіший, ніж здається. Стара діаграма здатна вводити команду в оману. Приклади: <syntaxhighlight lang="text"> <div style="background:#fef2f2; border-left:6px solid #ef4444; padding:12px; margin:12px 0;"> </div> == Release Artifact == <div style="background:#f0eaff; border-left:6px solid #8e44ad; padding:12px; margin:12px 0;"> Build system '''Найлюдяніший факт:''' artifact — це як готова коробка з продуктом. Рекомендовано: </div> * suspicious binary; * log file; * packet capture; * memory dump; * malware sample; * IOC list; * forensic image; * audit event; * incident timeline; * hash; * screenshot; * YARA rule. Приклади: Один artifact
Deploy artifact
Project Management Artifact
- semantic versioning;
- build number;
- Git commit SHA;
- date-based version;
- release tag;
- image digest;
- package version;
- environment-specific label. як приклад, команда здатна написати чудовий код, але production запускає не “код із GitHub”, а конкретний build artifact: container image, binary, package або compiled bundle.== Mutable Tags ==
SBOM створено для важливого релізу
Signing або підпис artifact оптимізує перевірити його походження й цілісність.Небезпека: погано керовані artifacts можуть перетворити CI/CD із системи довіри на систему випадкових файлів. Спрощення доречне, якщо: Краще: Приклади:
Artifact у GitHub Actions
- 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. coverage-report.html
- `.exe`;
- `.dll`;
- `.so`;
- `.dylib`;
- `.jar`;
- `.class`;
- `.wasm`;
- compiled CLI tool;
- mobile app binary;
- firmware image. Поняття
Критично: якщо secret потрапив в artifact, його потрібно вважати скомпрометованим і rotate, а не без зусиль видалити файл у наступному build. як приклад, image з digest:
- empathy map;
- persona;
- user journey map;
- problem statement;
- prototype;
- wireframe;
- usability report;
- workshop board;
- decision matrix.
Один artifact здатна сам стати dependency для іншого проєкту. * `latest` — зручний tag, але поганий спосіб описати release artifact у production. Deployment
</syntaxhighlight>
Практична роль: documentation artifact зберігає знання команди, щоб вони не жили тільки в головах кількох людей. Якщо зловмисник підмінив package або image, production здатна запустити шкідливий код навіть без зміни source repository. Secrets не включені
Приклад структури release artifacts
latest-prod-real.zip
Практична роль: така структура показує не тільки сам build, а й докази якості, походження й готовності до релізу. * `.env` у Docker image;
- private key у package;
- access token у build logs;
- password у test report;
- credentials у static bundle;
- API key у mobile app без захисту;
- secrets у source maps. Погано керовані artifacts створюють ризики: підміна, secrets у build, незрозумілі версії, неможливість rollback і хаос у release process. frontend-dist.zip
Головне правило: хороший artifact має бути зрозумілим, перевіреним, версіонованим, захищеним і пов’язаним із джерелом свого походження. Підказка: якщо файл оптимізує зрозуміти, перевірити або повторити результат роботи, він майже точно виступає як artifact. Test artifacts допомагають:
Artifact repository — спеціальне сховище для build, package і release artifacts. Збирати окремий artifact для production із hardcoded секретами </syntaxhighlight>
Artifact і Rollback
Ризики artifacts
== Artifact у Game Development ==
'''Практична порада:''' artifact має бути однаковим, а environment-specific поведінка має керуватися конфігурацією, не секретами всередині build. Типові етапи:
Artifact здатна мати retention time, тобто зберігатися обмежений час. '''Software artifact''' — будь-який створений у процесі розробки програмний або технічний результат. Docker image містить:
* name;
* version;
* dependencies;
* metadata;
* license;
* checksum;
* package manifest;
* distribution registry. * debugging;
* incident analysis;
* audit;
* troubleshooting;
* performance analysis;
* compliance;
* root cause analysis. У machine learning '''ML artifact''' — це результат навчання, оцінки або deployment моделі. '''Практична роль:''' software supply chain дивиться на artifact як на ланку між розробкою й користувачем. * Матеріали DevOps щодо release management, artifact repositories і deployment pipelines. Код — це рецепт, pipeline — це кухня, а artifact — те, що реально їде до користувача. '''Критично:''' artifact здатна бути атакований у supply chain. '''Практична роль:''' Docker image робить deployment більш передбачуваним, бо застосунок і його залежності пакуються разом.
- security;
- trust;
- open source;
- audit;
- deterministic releases;
- supply chain verification;
- debugging. Головна перевага: artifact робить результат роботи конкретним: його можна назвати, зберегти, перевірити й використати. Для rollback потрібно:
Погана практика:
Artifact repository
- dataset;
- notebook;
- experiment log;
- paper draft;
- chart;
- model output;
- benchmark result;
- survey data;
- transcript;
- analysis report;
- replication package. * Artifact repository — важлива частина software supply chain.
Практична роль: CI artifact дає можливість не втратити результат job після завершення pipeline.== Container Registry ==
Найважливіші artifacts у сучасному DevOps — це build artifacts, release artifacts, container images, packages, test reports, SBOM, provenance і documentation. Один файл здатна бути і asset, і artifact.<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
'''Log artifact''' — файл або набір логів, збережених після запуску, тесту, build або incident.</div>
<syntaxhighlight lang="text">
Небезпечні приклади:
У цьому прикладі `my-app:1.0.0` виступає як container artifact. '''Architecture artifact''' — матеріал, який описує архітектуру системи. Ось його реліз системи. * image tags;
* image digests;
* layers;
* metadata;
* signatures;
* vulnerability scan results;
* SBOM у частині платформ. * source repository;
* commit SHA;
* branch або tag;
* build system;
* build time;
* builder identity;
* dependencies;
* build parameters;
* test status;
* signatures;
* environment details. Reproducible builds ускладнюються через:
'''Практична роль:''' package artifact дає можливість іншим проєктам встановлювати й використовувати вашу бібліотеку або інструмент через package manager. '''SBOM''' або '''Software Bill of Materials''' — список компонентів, з яких складається software artifact. Security scan
=== Security incident ===
'''критично:''' architecture artifact має бути актуальним. '''критично:''' назва artifact має допомагати зрозуміти, що це, яка реліз системи, для чого й для якої платформи. !<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
'''Container registry''' — сховище для container image artifacts. Data artifacts важливі для:
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
== Джерела ==
checksums.txt
'''Практична роль:''' compliance часто потребує не лише “ми випустили версію”, а доказів: що саме, коли, ким, як перевірено й із яких компонентів.<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;">
== Versioning ==
Приклади build artifacts:
== Цікаві факти про Artifact ==
</div>
<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
Основні конкурентні переваги artifacts:
Це критично для:
У CI/CD артефакт — це файл або результат, який pipeline створює й передає між етапами.</div>
Це інтуїтивно для development, але ризиковано для production. Приклад:
</div>
</div>
</div>
'''критично:''' provenance оптимізує відповісти на питання: “Звідки взявся цей artifact і чи можна йому довіряти?”
* які artifacts зберігати;
* як довго;
* де;
* хто має доступ;
* які artifacts критичні для rollback;
* які можна видаляти;
* чи потрібне legal retention;
* чи містять artifacts чутливі інформаційні дані;
* скільки коштує storage.== Artifact і Asset ==
* узгодити очікування;
* перевірити ідею до розробки;
* пояснити user flow;
* зменшити переробки;
* передати дизайн розробникам;
* документувати продуктове рішення для бізнесу. SBOM корисний для:
</div>
</div>
До software artifacts належать:
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
Artifact
* 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. |-
| Artifact
| Будь-який результат роботи
| Test log, build file, prototype
|-
| Deliverable
| Результат, який офіційно передають
| Release build, final report, design package
|}
Artifact security — захист artifacts від підміни, витоку й небезпечного використання.</div>
* security;
* license compliance;
* audits;
* vulnerability response;
* supply chain management;
* enterprise governance;
* incident response. final.zip
<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
migrations/
== Artifact у Design Thinking ==
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
</div>
Хороша практика:
* compiled app;
* test report;
* coverage report;
* static site output;
* build directory;
* deployment package.== Приклад checklist для release artifact ==
* test results;
* coverage;
* built app;
* screenshots;
* compiled package;
* logs;
* deployment bundle. Artifact має життєвий цикл. Для production краще використовувати конкретну версію або digest.<div style="background:#fdecea; border-left:6px solid #e74c3c; padding:12px; margin:12px 0;">
</div>
final2.zip
== Див. так само ==
== Docker Image як Artifact ==
Але навіть у малому проєкті корисно мати:
! CI/CD artifacts можуть бути:
- wireframe;
- mockup;
- prototype;
- user flow;
- journey map;
- design system component;
- style guide;
- persona;
- usability test report;
- information architecture;
- Figma file;
- accessibility notes.
</div> </div> Scan artifact == Artifact і Secrets == '''Проста різниця:''' artifact здатна бути внутрішнім, а deliverable зазвичай має зовнішнє або контрактне значення. Binary artifact важливий, бо він часто виступає як фінальним результатом build process.== Цікавий факт == Саме тому сучасний DevOps багато уваги приділяє не лише source code, а й тому, який саме artifact був зібраний, ким, коли, з яких dependencies, з якими тестами, з яким checksum і чи можна довести його походження.=== Java library === '''Release artifact''' — artifact, який готовий до випуску або deployment.<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;"> команди забезпечується через Слово '''artifact''' часто означає не “щось стародавнє з музею”, а конкретний файл або набір файлів, який має значення; так само реалізовано процесу чи системи. Artifact збережено в repository або registry <div style="background:#fdecea; border-left:6px solid #e74c3c; padding:12px; margin:12px 0;"> '''Практична роль:''' build artifact — це те, що pipeline створює після компіляції, bundling або packaging. * Test report — теж artifact, хоча він не виступає як програмою.== Приклади сценаріїв використання == * onboarding; * architecture review; * security review; * incident analysis; * planning; * communication with stakeholders; * migration; * compliance.</div> <syntaxhighlight lang="text"> Security scan виконано '''критично:''' artifact без версії важко відтворити, перевірити й відкотити. Поширені помилки: '''критично:''' logs як artifacts мають бути корисними, але не повинні містити passwords, tokens або зайві персональні інформаційні дані. Приклад pipeline: Artifact здатна бути deliverable, але не завжди.<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;"> </div> * версіонувати 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. Artifact має версію <div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;"> Підписування важливе для: Приклади: Artifact здатна бути фінальним або проміжним результатом. orders-api-1.8.0-test-report.xml '''Design artifact''' — результат UX/UI, product design або visual design роботи.</div> </div> == SBOM == Dependencies '''Практична роль:''' artifact lifecycle оптимізує керувати не тільки створенням, а й зберіганням, використанням і видаленням artifacts. Artifact особливо важливий, якщо: backend-1.4.2.tar.gz <div style="background:#fdecea; border-left:6px solid #e74c3c; padding:12px; margin:12px 0;"> * signed artifacts; * audit logs; * SBOM; * license reports; * vulnerability scan results; * approval records; * release notes; * test evidence; * provenance; * retention policy; * access control; * change management records. Не кожен маленький проєкт потребує складної artifact platform. !</div> !<syntaxhighlight lang="text"> ML artifacts особливо важливі, бо модель без metadata часто важко відтворити. * source artifact — код або archive source; * build artifact — результат збірки; * release artifact — те, що випускають; * deployment artifact — те, що розгортають. * Документація CI/CD систем щодо build artifacts і job artifacts. '''Build artifact''' — результат процесу збірки. '''Найлюдяніший факт:''' не кожен artifact має бути кодом. '''критично:''' security artifacts можуть бути чутливими або небезпечними, тому їх потрібно зберігати з контролем доступу й обережністю.<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;"> Приклад: ! docker build -t my-app:1.0.0 .
Checkout code Store artifact
конкурентні переваги artifacts
Architecture artifacts корисні для:
- build logs;
- test logs;
- application logs;
- deployment logs;
- security logs;
- audit logs;
- container logs;
- CI job logs.
- test logs — 7 або 30 днів;
- release artifacts — кілька років;
- security reports — згідно з compliance;
- temporary build outputs — короткий термін;
- production images — до завершення підтримки версії.</syntaxhighlight>
Критично: якщо artifact можна непомітно підмінити, безпека всього release process під загрозою. * architecture diagram;
- C4 diagram;
- sequence diagram;
- deployment diagram;
- data flow diagram;
- ADR;
- threat model;
- integration map;
- infrastructure diagram;
- service catalog;
- dependency map.== Signing ==
- reproducibility;
- rollback;
- audit;
- security;
- deployment confidence;
- debugging;
- traceability.
- access control;
- signing;
- checksums;
- vulnerability scanning;
- secret scanning;
- license scanning;
- provenance;
- SBOM;
- immutable storage;
- audit logs;
- retention;
- dependency policies;
- trusted builders;
- registry permissions.
Хороші практики artifacts
Docker image — один із найпоширеніших сучасних release artifacts. new-build.zip
Artifact у Research
Основна ідея: artifact — це “слідом залишений результат роботи”: те, що можна зберегти, перевірити, передати, розгорнути або використати пізніше. * чи artifact не пошкодився;
- чи файл той самий;
- чи download завершився коректно;
- чи artifact відповідає очікуваному digest. * зрозумілі назви;
- версію;
- README;
- простий release archive;
- backup важливих результатів. Це artifacts, які проходять перевірку перед публікацією.
Data artifact — результат роботи з даними. * Artifact без provenance — як посилка без зворотної адреси. Не варто тестувати один build, а в production збирати інший “майже такий самий”. * називати файл `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. * 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. * Artifact у DevOps часто означає саме те, що реально deploy-иться, а не без зусиль source code.
- reproducibility;
- peer review;
- validation;
- knowledge transfer;
- future research;
- transparency. Критично: якщо старий artifact видалили, rollback здатна перетворитися на emergency rebuild, а це ризиковано.
- версіонувати artifacts;
- контролювати доступ;
- зберігати історію релізів;
- кешувати dependencies;
- підтримувати supply chain security;
- робити rollback;
- відтворювати releases. * Design mockup здатна бути artifact так само, як binary file. Усі ці файли виступає як artifacts релізу. Небезпека: якщо команда не знає, який artifact зараз у production, incident response стає набагато складнішим. Не кожен проєкт його має, але для security-sensitive software це дуже цінно. Приклади:
Machine learning model
Приклади:
Приклади:
Типовий ланцюг:
</syntaxhighlight>
Architecture Artifact
- timestamps;
- random values;
- різні dependency versions;
- різні OS packages;
- network downloads;
- build environment differences. * хто створив artifact;
- з якого коду;
- з якими dependencies;
- чи проходив тести;
- чи був підписаний;
- де зберігався;
- хто мав доступ;
- який artifact реально запущений. {| class="wikitable"
Design artifacts допомагають:
- npm package;
- Python wheel;
- Maven package;
- NuGet package;
- Ruby gem;
- Go module;
- Debian package;
- RPM package;
- Composer package;
- Cargo crate. staging
Приклади:
критично: `latest` — не реліз системи, а рухома мітка. SBOM здатна містити:
Test artifact — результат тестування.'''Reproducible build''' — бізнес-процес, у якому з однакового source code і однакових умов можна отримати той самий artifact.<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
</div>
Configuration здатна містити:
* відтворюваність;
* traceability;
* простіший deployment;
* кращий rollback;
* evidence для testing;
* release discipline;
* auditability;
* supply chain security;
* можливість перевірки;
* зручне зберігання;
* командна передача результатів;
* automation;
* контроль версій;
* separation between build and deploy. Суть
== Artifact Security ==
<div style="background:#fdecea; border-left:6px solid #e74c3c; padding:12px; margin:12px 0;">
Design Artifact
Доступ до artifact обмежений
| У software supply chain artifact проходить шлях від source code до production. через Проста думка: software artifact — це не тільки готова програма. Можливі проблеми: Перевага: artifacts роблять роботу команди відтворюваною: можна побачити, що саме було створено, протестовано й доставлено. Можуть вимагатися: Приклади retention: Практична роль: якщо один і той самий artifact проходить staging і production, команда менше ризикує отримати “у staging працювало, бо build був інший”. Приклади:
Web application release<syntaxhighlight lang="text">
sbom.json ChecksumsArtifact підписано, якщо потрібно Поширені підходи: dev Приклади artifacts:
Artifact і DeliverableCI створює Android APK або AAB, iOS build, test reports і screenshots. * це навчальний проєкт;
library-2.8.0.jar
|
|---|