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

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

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

Обычно эти компоненты представляют собой архивы различных файлов, включая: байт-код 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
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода