Поймите управление продукцией в одной статье: от теоретических норм и практического применения к безопасности цепочки поставок
Поймите управление продукцией в одной статье: от теоретических норм и практического применения к безопасности цепочки поставок

Что такое продукт?

"Продукт"относится к компиляции и печати из исходного кода Сумка Сгенерированный двоичный файл,Разным языкам разработки соответствуют разные форматы бинарных файлов.;Эти двоичные файлы обычно используются для запуска на сервере или в качестве зависимости от компиляции.,«Продукт управления» — важная часть настройки управления.

Обычно эти компоненты представляют собой архивы различных файлов, включая: байт-код Java в файлах классов, объектные файлы C, текстовые файлы, двоичные файлы. Несколько форматов компонентов, таких как: форматы Java JAR, WAR, EAR; простые файлы ZIP или .tar.gz, другие форматы пакетов, такие как пакеты NuGet, драгоценные камни Ruby, форматы исполняемых файлов, такие как .exe или . sh файлы, файлы Android APK, различные форматы установщика.

«В зависимости от сценариев использования продукты условно делятся на три категории».

  1. Сторонние компоненты, внедренные извне
  2. Продукт внутренне зависит от Сумки, публичного SDK.
  3. Доставка и установка продукции Сумка

"Согласно языку разработки, к типам продуктов относятся следующие типы:"

  • Универсальный файл относится к артефакту универсального типа файла.
  • Docker
  • Maven
  • npm
  • PyPI
  • Helm
  • Composer
  • NuGet
  • Conan

Почему управление продуктом?

  1. Внешние зависимости загружаются медленно
  • Влияет на скорость НИОКР и строительства.
  1. Версия управления Хаосом (svn, ftp)
  • Доставка Сумки по FTP или SVN,управлять Размер частиц в этом обширном продукте относительно крупный;,Хранение и поиск сумок разных типов — головная боль.,Отслеживание версий крайне запутано,Работа в команде также сопряжена с препятствиями.
  • из-за нормативных ограничений,Развертывание в один клик — невыполнимая задача,Интеллектуальная доставка сумок по сегментам сети основана на ручном копировании.
  1. Безопасность Риск уязвимости
  • Чем больше зависимых компонентов, тем выше риск внедрения уязвимостей.
  • Сторонняя зависимость от Сумки загрузки управляет запутанно и нет контроля доступа
  • Чем глубже уязвимость, тем больше времени потребуется на ее устранение.
  1. Риски хранения продукции
  • Библиотека продуктов, созданная внутри команды, представляет собой единую точку и не имеет кластерного развертывания.
  1. Пустая трата ресурсов
  • Поскольку нет единой библиотеки продуктов, существует проблема повторного строительства; стоимость обслуживания высока или в настоящее время обслуживание вообще отсутствует.

Продукты и конвейеры CI/CD

Для конвейера CI/CD,Продукт служит«Соединение прошлого с будущим»ключевая роль,Это конец непрерывной интеграции CI,Это также отправная точка для непрерывной доставки компакт-дисков.

Без эффективных стратегий и инструментов управления продуктами невозможно создать эффективный конвейер; без управления продуктами вы можете каждый раз создавать только заново код, что неприемлемо для любой корпоративной организации и не соответствует принципу «создайте один раз, создайте». многие» принцип «первого использования».

На протяжении всего процесса исследований и разработок продукты имеют решающее значение для тестировщиков, а также персонала по эксплуатации и техническому обслуживанию. Они сосредоточены на том, как получить необходимые версии для тестирования и развертывания. Без эффективного управления продуктом весь поток создания ценности DevOps будет отключен. Вы можете столкнуться с такой ситуацией. Студенты-тестировщики будут использовать различные методы, чтобы спросить, какую версию можно протестировать, где находится пакет и т. д.

метаданные пакета

Что такое метаданные пакеты? Кто-то дарит тебе сумку,Как узнать, какие изменения дефектов требований включены в Сумку?,Какие коды содержит Сумка?,кроме Сумкаизmd5,hashи другая информация。Эта информация полезна для тестировщиков«Внедрение проблем с отслеживанием, последующие улучшения, регресс версий»ключевой,С точки зрения непрофессионала,Узнайте прошлую и настоящую жизнь изделия.

Так откуда же эта информация? Конечно, конвейер CI постоянно строится. Требования и отправленный код можно собирать через конвейер CI. Если ваша организация приобрела продукты Jfrog, вы обнаружите, что эта функция особенно заметна на ее платформе.

Обновление продукта

「」В разработкеупражнятьсясередина,Большинство команд готовятсяDEV, TEST, UAT, Различные среды, такие как RELEASE, соответственно создают разные сборочные линии, и продукты будут по-разному тестироваться перед их развертыванием в разных средах. Отсюда также происходит обновление. Продукт заключается в установке различного контроля доступа для продуктов.

Подводя итог, Продукты и конвейеры CI/CD имеет тесные связи,неделимый,При проектировании сборочной линии учитывайте сценарии использования продукта.

Инструменты управления продуктами

Как упоминалось выше, из-за важности управления продуктами разрабатываются соответствующие продуктовые решения для единообразного управления программными продуктами в разных форматах. В дополнение к базовым функциям хранения он также предоставляет важные функции, такие как контроль версий, контроль доступа, сканирование безопасности, анализ зависимостей и т. д., и в конечном итоге создает «единый источник доверия», который является стандартизированным способом для предприятий обрабатывать все типы пакетов, созданные в процессе разработки программного обеспечения.

В настоящее время основные инструменты управления продуктами на основном рынке включают в себя следующие типы:

Nexus

Nexus — это готовая к использованию система, не требующая базы данных. Для организации данных она использует файловую систему и Lucene. Nexus использует ExtJS для разработки интерфейса, использует Restlet для предоставления полных API-интерфейсов REST и интегрируется с Eclipse через m2eclipse. Nexus поддерживает безопасную аутентификацию WebDAV и LDAP.

Nexus — один из немногих продуктов для управления продуктами, который поддерживает практически все основные форматы продуктов и предоставляет бесплатную версию. Это также выбор большинства малых и средних компаний, который может удовлетворить большинство бизнес-сценариев. Однако бесплатная версия не обеспечивает. решение высокой доступности. Ссылка на цену: https://www.sonatype.com/products/pricing?topnav=true.

Поскольку у Nexus нет агентов в Китае, осведомленность о ней по-прежнему ограничена. Фактически, Nexus — это всего лишь одно из продуктовых решений Sonatype, предоставляющее решения по управлению продуктами для цикла разработки программного обеспечения.

Jfrog Artifactory

Jfrog — израильская компания, которая специализируется на средах управления продуктами и предоставляет коммерческие решения, поэтому ее продукты стоят денег.

На рисунке ниже показано сравнение функций продуктов Jfrog Artifactory и Nexus только для справки. Поскольку вы заплатили за него, он определенно предоставляет больше поддержки и услуг, чем бесплатный Nexus, включая высокую доступность, анализ рисков уязвимостей компонентов, распространение в нескольких местах и ​​т. д. Дело не в том, что Nexus плох, но большинство из нас используют бесплатную версию Nexus. Фактически, его платная версия также предоставляет аналогичные решения.

Harbor

HarborдаVMwareкомпания«Открытый исходный код»из Уровень предприятияDocker Проект реестра, его цель — помочь пользователям быстро создать Docker корпоративного уровня. служба регистрации.

Основанный на официальной реализации Registry V2, он предоставляет функции, необходимые корпоративным пользователям, такие как пользовательский интерфейс управления, контроль доступа на основе ролей (Role Based AccessControl), интеграцию AD/LDAP и ведение журнала аудита (Auditlogging). такие как безопасность, идентификация, управление и многое другое, расширяя дистрибутив Docker с открытым исходным кодом.

Harbor теперь стал основным инструментом для частного управления Docker/Helm. По сравнению с Nexus, Harbor имеет больше преимуществ в управлении образами Docker, предоставляет услуги синхронизации изображений и поддерживает изоляцию командных проектов. На практике автор обнаружил, что у Nexus есть некоторые проблемы с командной изоляцией докер-образов.

WePack

WePack — это отдельный продукт для управления сервисом, выделенным из Tencent Coding на основе предыдущего DevOps.,Поддержка частного развертывания. Возможно также посмотреть отдельный Инструменты управления продуктами.,Она может лучше врезаться в пользовательские сценарии, чем большая и комплексная платформа DevOps.

Как управлять продуктами?

Чтобы унифицировать Сумку в разных языковых форматах, вышеуказанные продукты организованы примерно следующим образом.

Иерархические отношения библиотеки продуктов: склад > Сумка > Версия, каждый уровень описывается следующим образом:

  • Склад: используется для управления различными типами складов и суммой ресурсов под складом.,Вы можете установить права внешнего доступа к хранилищу.
  • Сумка: базовый модуль, обеспечивающий внешний доступ к созданному продукту. Он используется для ознакомления с назначением и рекомендациями по использованию текущего созданного продукта.
  • Версия: список всех сборочных продуктов под определенной Сумкой.,Записываются подробные записи итераций версий и обновлений каждого продукта сборки.

Стандартизировать именование библиотеки продуктов

Если команда относительно одиночная и не имеет высоких требований к управлению продуктом, вышеуказанные методы в принципе могут удовлетворить потребности. Однако, если на уровне строительной компании необходимо стандартизировать некоторые наименования, как показано ниже.

Нормализация номера версии продукта

Номер версии продукта используется для обозначения конкретного продукта, а стандартизированное именование помогает писать автоматизированные сценарии и повторно использовать конвейеры.

Стандартизация разрешений библиотеки продуктов

Независимо от того, основаны ли они на инструментах с открытым исходным кодом или на инструментах собственной разработки, дизайн разрешений на основе складов продуктов также необходим для достижения изоляции групповых продуктов.

Риски безопасности продуктов с открытым исходным кодом

Когда дело доходит до управления продуктами, большинство людей думают только о их хранении и извлечении для использования. Автор тоже думал подобным образом до этого года. Инцидент с безопасностью Log4j2 в конце 2021 года вызвал бурю негодования во всем ИТ-круге. Этот компонент с открытым исходным кодом затрагивает практически все Java-приложения, и каждой компании пришлось срочно проверять, не представляют ли их продукты этот риск.

Благодаря этому инциденту давайте начнем обращать внимание на возможные риски, связанные с компонентами с открытым исходным кодом. Это также популярная в настоящее время «безопасность цепочки поставок» в процессе исследований и разработок, а также важная часть DevSecOps.

По мере управления продукцией в процессе исследований и разработок внедрение механизмов поэтапной проверки и безопасность во время использования все чаще становятся в центре внимания. Если это так, организациям необходимо внедрить систему проверки компонентов, чтобы предотвратить случайное извлечение разработчиками продуктов с открытым исходным кодом из Интернета, а также создать механизм сканирования уязвимостей в реальном времени для формирования хранилища белых списков на уровне организации.

SBOM — Спецификация программного обеспечения

Современное программное обеспечение в основном использует сторонние и Открытый исходный Компоненты кода собираются вместе сложными и уникальными способами и интегрируются с исходным кодом для достижения желаемой функциональности. Кроме в Открытый исходный Механизм проверки безопасности добавляется к этапу внедрения компонентов. ИТ-компаниям часто также необходимо уделить особое внимание. на Разработайте или используйте самостоятельноизпрограммные продуктыизкомпозиция,Например, список пищевых ингредиентов, который мы видим на упаковке продуктов питания, когда покупаем еду в супермаркете.,Все используемые материалы имеют маркировку.

Чтобы точно понять компоненты, содержащиеся в программном обеспечении, SBOM (т. е.: Программное обеспечение Bill Of Материалы), которая включает в себя различную ключевую информацию, такую ​​как название компонента, номер версии, поставщик и т. д. Эта ключевая информация играет ключевую роль при анализе безопасности программного обеспечения. По этой информации можно отследить оригинальную цепочку программного обеспечения. поставок,Значительно улучшить понимание разработчиками рисков программного обеспечения, которое они используют.,Помогите предприятиям повысить эффективность анализа сетевых рисков, уязвимостей и процессов реагирования на чрезвычайные ситуации.

Для компаний-разработчиков программного обеспечения SBOM может эффективно контролировать риски, связанные с компонентами с открытым исходным кодом, и помогать компаниям выявлять и устранять недостатки безопасности и риски лицензирования компонентов с открытым исходным кодом на более раннем этапе. Для компаний, занимающихся закупками программного обеспечения, SBOM может помочь лицам, принимающим решения о закупках, легко понять, является ли программное обеспечение разработчика; существуют риски, связанные с компонентами с открытым исходным кодом; для разработчиков программного обеспечения SBOM может помочь разработчикам полностью и точно понять компоненты с открытым исходным кодом разрабатываемого ими программного обеспечения.

Подвести итог

  • Управление продуктом — важное звено в процессе упражнения DevOps,Соединяя прошлое и будущее,Важная роль в сборе информации о процессе;
  • в то же время,Существуют риски, связанные с внедрением и использованием продукта.,Организациям необходимо сосредоточиться на этом,Избегайте ряда рисков, вызванных такими событиями, как Log4j2Безопасность;
  • какупражняться ВОЗ,Необходимо объединить нужды организации и конвейера по производству продукции.,Разработать соответствующие спецификации,избегать путаницы;
  • Хороший продукт управляет процессом,Это может снизить неэффективное взаимодействие между персоналом, занимающимся самотестированием, и персоналом, занимающимся тестированием, в процессе получения и тестирования;

Это всего лишь общий обзор управления продуктами, а конкретные моменты будут подробно представлены позже.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose