Открыть сервис

Artifactory

Artifactory — это коммерческий продукт для управления бинарными артефактами (репозиторий артефактов), разрабатываемый и поддерживаемый компанией JFrog. Он представляет собой универсальное хранилище, которое обеспечивает централизованное управление, версионирование, хранение и распространение артефактов на всех этапах жизненного цикла разработки программного обеспечения (DevOps). Artifactory является ключевым компонентом платформы JFrog DevOps Platform и одним из наиболее распространённых решений в области управления артефактами наряду с такими продуктами, как Sonatype Nexus и GitLab Package Registry.

История

Разработка Artifactory началась в 2006 году. Первоначально продукт создавался как репозиторий для артефактов Java (JAR-файлов) и предназначался для работы с системами сборки Maven и Ivy. Первая версия была выпущена в 2007 году. В 2008 году компания JFrog была официально основана, а Artifactory стал её основным продуктом.

В 2012 году вышла версия 3.0, которая представила поддержку репозиториев для различных типов пакетов, включая NuGet, npm, PyPI, RubyGems и Docker. В 2014 году была выпущена версия 4.0, в которой появилась поддержка Docker Registry, что позволило Artifactory выступать в качестве частного реестра контейнеров. В 2017 году вышла версия 5.0, представившая поддержку Helm, Conan и других форматов, а также улучшенную интеграцию с CI/CD-системами.

В 2020 году JFrog вышла на биржу NASDAQ. В 2021 году была выпущена версия 7.0, которая стала частью единой платформы JFrog DevOps Platform. В этой версии была введена новая архитектура, основанная на микросервисах, и улучшена поддержка облачных сред.

Классификация

Artifactory можно классифицировать по нескольким критериям:

По типу развёртывания

  • Artifactory Self-Hosted (On-Premises): Устанавливается и управляется на собственной инфраструктуре организации. Доступен в редакциях Pro, Pro X, Enterprise и Enterprise X.
  • Artifactory Cloud (SaaS): Предоставляется как облачная услуга (Software as a Service) на инфраструктуре JFrog. Доступен в редакциях Pro X, Enterprise X и Enterprise+.
  • Artifactory Open Source: Существует бесплатная версия с открытым исходным кодом, но она имеет ограниченный функционал (например, не поддерживает высокую доступность и репликацию).

По функциональности

  • Artifactory Pro: Базовая коммерческая версия для команд разработчиков, поддерживает все основные типы репозиториев и интеграцию с CI/CD.
  • Artifactory Pro X: Версия, включающая все функции Pro, а также расширенные возможности для работы с контейнерами и облачными средами.
  • Artifactory Enterprise: Версия для крупных организаций, поддерживающая кластеризацию, высокую доступность, репликацию и продвинутое управление доступом.
  • Artifactory Enterprise X: Версия, объединяющая функции Enterprise и Pro X, предназначенная для масштабных корпоративных сред.

Устройство и характеристики

Типы репозиториев

Artifactory поддерживает три основных типа репозиториев:

  • Локальные (Local): Хранят артефакты, загруженные пользователями или системами сборки. Являются основным хранилищем для внутренних артефактов.
  • Удалённые (Remote): Представляют собой кэширующие прокси для внешних репозиториев (например, Maven Central, npmjs.org, Docker Hub). Артефакты, запрашиваемые из удалённого репозитория, кэшируются локально.
  • Виртуальные (Virtual): Объединяют несколько локальных и удалённых репозиториев в единую точку доступа. Позволяют разработчикам использовать один URL для доступа ко всем необходимым артефактам.

Поддерживаемые форматы пакетов

Artifactory поддерживает более 30 типов пакетов, включая:

  • Java: Maven, Gradle, Ivy.
  • JavaScript/Node.js: npm, Yarn.
  • Python: PyPI.
  • .NET: NuGet.
  • Ruby: RubyGems.
  • Контейнеры: Docker, Helm, OCI.
  • Мобильные: CocoaPods, Carthage.
  • C/C++: Conan.
  • Прочие: Debian (APT), RPM, Go, Vagrant, Terraform и другие.

Ключевые характеристики

  • Метаданные и поиск: Каждый артефакт может быть снабжён произвольными метаданными, что позволяет осуществлять гибкий поиск по различным критериям (имя, версия, дата, пользователь, пользовательские свойства).
  • Управление версиями: Поддерживается хранение нескольких версий одного артефакта, а также механизмы разрешения зависимостей.
  • Безопасность и контроль доступа: Реализована поддержка RBAC (Role-Based Access Control), интеграция с LDAP/Active Directory, а также возможность настройки политик безопасности на уровне репозиториев и пользователей.
  • Интеграция с CI/CD: Artifactory интегрируется с большинством популярных систем непрерывной интеграции и доставки, такими как Jenkins, GitLab CI, CircleCI, Bamboo, TeamCity и другими.
  • Высокая доступность и репликация: В версиях Enterprise поддерживается кластеризация и репликация данных между несколькими узлами и географически распределёнными центрами обработки данных.
  • API: Предоставляет RESTful API для программного управления репозиториями, артефактами и пользователями.

Применение

Artifactory используется в различных сценариях разработки и эксплуатации ПО:

  • Централизованное хранилище артефактов: Организации используют Artifactory как единое место для хранения всех бинарных файлов, создаваемых в процессе разработки (библиотеки, исполняемые файлы, образы контейнеров, пакеты).
  • Управление зависимостями: Artifactory выступает в качестве прокси для внешних репозиториев, позволяя командам разработчиков получать зависимости из одного источника, контролировать их версии и обеспечивать воспроизводимость сборок.
  • Непрерывная интеграция и доставка (CI/CD): Artifactory является ключевым звеном в пайплайнах CI/CD, где он используется для хранения результатов сборки, распространения артефактов между этапами (тестирование, стейджинг, продакшн) и развёртывания.
  • Управление контейнерами: Artifactory может выступать в качестве частного реестра Docker-образов, Helm-чартов и OCI-артефактов, что позволяет организациям управлять своими контейнерами в изолированной среде.
  • Аудит и соответствие требованиям: Благодаря ведению журналов всех операций и возможности настройки политик, Artifactory помогает организациям соблюдать требования нормативных актов (например, в финансовом или медицинском секторах).

Интересные факты

  • Artifactory является одним из самых старых и зрелых продуктов в своей категории, что обеспечило ему широкую пользовательскую базу и экосистему интеграций.
  • Платформа JFrog, частью которой является Artifactory, включает также инструменты для анализа безопасности (JFrog Xray), управления конвейерами (JFrog Pipelines) и распространения артефактов (JFrog Distribution).
  • Artifactory поддерживает работу с бинарными файлами размером до нескольких гигабайт, что делает его пригодным для хранения больших датасетов, моделей машинного обучения и образов виртуальных машин.
  • В 2021 году JFrog приобрела компанию Vdoo, что позволило интегрировать в Artifactory и Xray расширенные возможности анализа безопасности на уровне бинарных файлов.

Критика

Несмотря на широкое распространение, Artifactory подвергается критике по нескольким направлениям:

  • Сложность настройки: Для небольших команд и проектов конфигурирование Artifactory может показаться избыточно сложным по сравнению с более простыми решениями, такими как GitLab Package Registry.
  • Стоимость: Коммерческие лицензии, особенно для версий Enterprise, могут быть дорогими для небольших организаций.
  • Производительность: При работе с большим количеством репозиториев и артефактов (десятки тысяч) могут наблюдаться задержки при выполнении операций поиска и индексации.
  • Зависимость от Java: Artifactory написан на Java, что может требовать выделения значительных ресурсов (память, CPU) для его работы, особенно в кластерных конфигурациях.

Источники

  • Официальная документация JFrog Artifactory.
  • JFrog Artifactory User Guide.
  • Статьи и обзоры на сайтах DevOps-сообществ (например, DZone, InfoQ).
  • Публичные выступления и презентации представителей JFrog на конференциях (DevOpsDays, KubeCon).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →