SlideShare a Scribd company logo
1 of 21
CrossPM
Упрощаем сложные зависимости
Александр Ковалев
Ведущий программист
отдела технологий разработки (DevOps)
akovalev@ptsecurity.com
Пакетный менеджер:
Что мы хотим
Нерешенные проблемы со сборками
Отсутствие единого инструмента, реализующего модель сборок
Нерешенные проблемы со сборками
К чему это привело
CrossPM: Серебряная пуля
Наше решение
Open Source
Подготовка и вывод проекта в сообщество DevOpsHQ
CrossPM
config.yaml
cpm.manifest
environment
Загруженные
зависимости
command line
Artifactory
adapter
Git
adapter
Whatever
adapter
...
Любая структура каталогов
и имен файлов в репозитории
Формат описания
зависимостей указывается
в config.yaml
Просто выполнить
pip install crosspm
перед использованием
Логичная структура проекта,
ведется работа по
документированию кода
CrossPM:
Возможности и примеры
CrossPM: Что он может
• Найти пакеты, от которых зависит ваш проект
• Найти пакеты, от которых зависят эти пакеты
• Найти пакеты, от которых зависят и эти пакеты тоже
• И т.д…
• И т.д…
• И т.д…
• Распаковать загруженные пакеты
• Создать shell скрипт для установки путей к пакетам в переменные окружения
• Или cmd скрипт
• Или python скрипт
• Или json файл
• Или просто вывести в stdout
• Если Вам этого мало – пойдем пообщаемся… в хорошем смысле
• Загрузить все эти найденные пакеты
• Или загрузить только указанный пакет
• Или просто вернуть полный путь или имя файла пакета
CrossPM: Конфигурация формата манифеста
crosspm.yaml (фрагмент)
cpm.manifest (пример)
boost 1.55.3
poco 1.46.14
openssl 1.0.20
log4cplus 1.1.6
...
columns: "*package, version"
...
CrossPM: Конфигурация формата манифеста
...
columns: "*package, version, branch, contract, quality"
parsers:
common:
columns:
version: "{int}.{int}.{int}[-{str}]"
artifactory:
path: "{server}/{package}/{branch}/{package}.{version}[.zip|.tar.gz|.nupkg]"
properties: "build.contract.{contract} = {quality}"
...
crosspm.yaml (фрагмент)
cpm.manifest (пример)
boost 1.55.*- 1.55-pm R11.0 snapshot
poco 1.46.>=14 1.46-pm * release
openssl 1.>0.* 1.* * *
log4cplus 1.1.6 1.1-pm R10.0 stable
CrossPM: Конфигурация меток качества
...
values:
quality:
1: banned
2: snapshot
3: integration
4: stable
5: release
...
crosspm.yaml (фрагмент)
cpm.manifest (пример)
boost 1.55.*- 1.55-pm R11.0 >snapshot
poco 1.46.>=14 1.46-pm * release
openssl 1.>0.* 1.* * *
log4cplus 1.1.6 1.1-pm R10.0 >=stable
CrossPM: Конфигурация дополнительных опций
...
options:
arch:
cmdline: arch
env: CROSSPM_ARCH
osname:
cmdline: os
env: CROSSPM_OS
default: linux
...
crosspm.yaml (фрагмент)
Командная строка
C:build> crosspm download --out-format=stdout –o arch=x86_64,os=win
CrossPM: Конфигурация источников
...
sources:
- type: artifactory
parser: artifactory
server: https://repo1.someorg.com/artifactory/
repo:
- libs-cpp
- libs.snapshot
auth_type: simple
auth:
- reader_cpp_libs
- "**********"
- type: artifactory
parser: artifactory
server: https://repo1.someorg.com/artifactory/
repo: libs-other.snapshot
auth_type: simple
auth:
- "reader_libs"
- "**********"
...
crosspm.yaml (фрагмент)
CrossPM: Конфигурация источников (упрощение)
...
common:
type: artifactory
parser: artifactory
server: https://repo1.someorg.com/artifactory/
auth_type: simple
sources:
- repo:
- libs-cpp
- libs.snapshot
auth:
- reader_cpp_libs
- "**********"
- repo: libs-other.snapshot
auth:
- "reader_libs"
- "**********"
...
crosspm.yaml (фрагмент)
CrossPM: Командная строка
CrossPM (Cross Package Manager) version: 0.8.1 The MIT License (MIT)
Usage:
crosspm download [options]
crosspm promote [options]
crosspm pack <OUT> <SOURCE> [options]
crosspm -h | --help
crosspm --version
Options:
<OUT> Output file.
<SOURCE> Source directory path.
-h, --help Show this screen.
--version Show version.
-v, --verbose Increase output verbosity.
--verbosity=LEVEL Set output verbosity level: (critical, error, warning, info, ...
-c=FILE, --config=FILE Path to configuration file.
-o OPTIONS, --options OPTIONS Extra options.
--depslock-path=FILE Path to file with locked dependencies [default: ./cpm.manifest]
--out-format=TYPE Output data format. Available formats:(['stdout', 'cmd', ...
--output=FILE Output file name (required if --out_format is not stdout)
--out-prefix=PREFIX Prefix for output variable name [default: ] (no prefix at all)
crosspm --help
CrossPM:
Интеграция и доработки
CrossPM + Artifactory
• Использовали существующий API от Artifactory
• Запланировали написать свою библиотеку для работы с Artifactory
Первый этап:
• Обнаружили, что такая библиотека уже существует
• Протестировали: библиотека сыровата, но пользоваться уже можно
• Разработчикам из Parallels – отдельное спасибо! Ждем развития!
Второй этап (Open Source):
CrossPM + Artifactory
+ любое другое хранилище, на самом деле…
• Динамически подключаемые модули для работы с репозиторием:
• Любой способ подключения:
• http
• ftp, sftp
• smb
• просто файлы в папках
• и прочее…
• Любое количество типов репозиториев
CrossPM: Возможные доработки инструмента
• Поддержка дополнительных форматов пакетов
• Повторные попытки загрузки пакетов при разрывах соединения
• Загрузка пакетов в репозиторий
• Управление пакетами в репозитории
Полезные ссылки
• CrossPM:
https://github.com/devopshq/crosspm
установка:
pip install crosspm
• Python interface library for Jfrog Artifactory:
https://github.com/Parallels/artifactory
• Ждем ваши предложения на DevOpsHQ:
https://github.com/devopshq/crosspm/issues
Спасибо!
Александр Ковалев
Ведущий программист
отдела технологий разработки (DevOps)
akovalev@ptsecurity.com
https://github.com/devopshq/crosspm
Вопросы?

More Related Content

What's hot

Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Yandex
 
Maven как средство сборки проекта
Maven как средство сборки проектаMaven как средство сборки проекта
Maven как средство сборки проекта
Yova Stoika
 

What's hot (20)

Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
 
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Sql server clr integration
Sql server clr integration Sql server clr integration
Sql server clr integration
 
Интеграция TeamCity и сервера символов | Алексей Соловьев
Интеграция TeamCity и сервера символов | Алексей СоловьевИнтеграция TeamCity и сервера символов | Алексей Соловьев
Интеграция TeamCity и сервера символов | Алексей Соловьев
 
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопе
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Test driven development in net
Test driven development in netTest driven development in net
Test driven development in net
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис Паясь
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Игорь Кашкута
Игорь КашкутаИгорь Кашкута
Игорь Кашкута
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous Integration
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
 
Maven как средство сборки проекта
Maven как средство сборки проектаMaven как средство сборки проекта
Maven как средство сборки проекта
 

Viewers also liked

Возможно, время не на твоей стороне. Реализация атаки по времени в браузере
Возможно, время не на твоей стороне. Реализация атаки по времени в браузереВозможно, время не на твоей стороне. Реализация атаки по времени в браузере
Возможно, время не на твоей стороне. Реализация атаки по времени в браузере
Positive Hack Days
 

Viewers also liked (20)

TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
 
Сообщество DevOpsHQ: идеология и инструменты | Александр Паздников
Сообщество DevOpsHQ: идеология и инструменты | Александр ПаздниковСообщество DevOpsHQ: идеология и инструменты | Александр Паздников
Сообщество DevOpsHQ: идеология и инструменты | Александр Паздников
 
Tapping into the core
Tapping into the coreTapping into the core
Tapping into the core
 
Метод машинного обучения для распознавания сгенерированных доменных имен
Метод машинного обучения для распознавания сгенерированных доменных именМетод машинного обучения для распознавания сгенерированных доменных имен
Метод машинного обучения для распознавания сгенерированных доменных имен
 
Модель системы Continuous Integration в компании Positive Technologies | Тиму...
Модель системы Continuous Integration в компании Positive Technologies | Тиму...Модель системы Continuous Integration в компании Positive Technologies | Тиму...
Модель системы Continuous Integration в компании Positive Technologies | Тиму...
 
Организация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей СоловьевОрганизация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей Соловьев
 
Возможно, время не на твоей стороне. Реализация атаки по времени в браузере
Возможно, время не на твоей стороне. Реализация атаки по времени в браузереВозможно, время не на твоей стороне. Реализация атаки по времени в браузере
Возможно, время не на твоей стороне. Реализация атаки по времени в браузере
 
SupplyLab - публикация, доставка, развёртывание, лицензирование | Александр П...
SupplyLab - публикация, доставка, развёртывание, лицензирование | Александр П...SupplyLab - публикация, доставка, развёртывание, лицензирование | Александр П...
SupplyLab - публикация, доставка, развёртывание, лицензирование | Александр П...
 
Инструменты для проведения конкурентного анализа программных продуктов | Вла...
Инструменты для проведения конкурентного анализа программных продуктов |  Вла...Инструменты для проведения конкурентного анализа программных продуктов |  Вла...
Инструменты для проведения конкурентного анализа программных продуктов | Вла...
 
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
 
Доставка зловредов через облака
Доставка зловредов через облакаДоставка зловредов через облака
Доставка зловредов через облака
 
Обход файрволов веб-приложений
Обход файрволов веб-приложенийОбход файрволов веб-приложений
Обход файрволов веб-приложений
 
Аспекты деятельности инсайдеров на предприятии
Аспекты деятельности инсайдеров на предприятииАспекты деятельности инсайдеров на предприятии
Аспекты деятельности инсайдеров на предприятии
 
Fingerprinting and Attacking a Healthcare Infrastructure
Fingerprinting and Attacking a Healthcare InfrastructureFingerprinting and Attacking a Healthcare Infrastructure
Fingerprinting and Attacking a Healthcare Infrastructure
 
Janitor to CISO in 360 Seconds: Exploiting Mechanical Privilege Escalation
Janitor to CISO in 360 Seconds: Exploiting Mechanical Privilege EscalationJanitor to CISO in 360 Seconds: Exploiting Mechanical Privilege Escalation
Janitor to CISO in 360 Seconds: Exploiting Mechanical Privilege Escalation
 
Восток — дело тонкое, или Уязвимости медицинского и индустриального ПО
Восток — дело тонкое, или Уязвимости медицинского и индустриального ПОВосток — дело тонкое, или Уязвимости медицинского и индустриального ПО
Восток — дело тонкое, или Уязвимости медицинского и индустриального ПО
 
Эксплуатируем неэксплуатируемые уязвимости SAP
Эксплуатируем неэксплуатируемые уязвимости SAPЭксплуатируем неэксплуатируемые уязвимости SAP
Эксплуатируем неэксплуатируемые уязвимости SAP
 
NFC: Naked Fried Chicken / Пентест NFC — вот что я люблю
NFC: Naked Fried Chicken / Пентест NFC — вот что я люблюNFC: Naked Fried Chicken / Пентест NFC — вот что я люблю
NFC: Naked Fried Chicken / Пентест NFC — вот что я люблю
 
Magic Box, или Как пришлось сломать банкоматы, чтобы их спасти
Magic Box, или Как пришлось сломать банкоматы, чтобы их спастиMagic Box, или Как пришлось сломать банкоматы, чтобы их спасти
Magic Box, или Как пришлось сломать банкоматы, чтобы их спасти
 
Боремся с читингом в онлайн-играх
Боремся с читингом в онлайн-играхБоремся с читингом в онлайн-играх
Боремся с читингом в онлайн-играх
 

Similar to Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев

C++ осень 2013 лекция 7
C++ осень 2013 лекция 7C++ осень 2013 лекция 7
C++ осень 2013 лекция 7
Technopark
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
Lev Panov
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
Andrey Rebrov
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Ontico
 
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
AvitoTech
 
Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)
Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)
Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)
GeeksLab Odessa
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
dddpaul
 

Similar to Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев (20)

RDSDataSource: Основы LLVM
RDSDataSource: Основы LLVMRDSDataSource: Основы LLVM
RDSDataSource: Основы LLVM
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
 
Александр Фокин, Рефлексия в C++
Александр Фокин, Рефлексия в C++Александр Фокин, Рефлексия в C++
Александр Фокин, Рефлексия в C++
 
C++ осень 2013 лекция 7
C++ осень 2013 лекция 7C++ осень 2013 лекция 7
C++ осень 2013 лекция 7
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
 
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
 
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
 
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциям
 
Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)
Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)
Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)
 
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
 
Middleware
MiddlewareMiddleware
Middleware
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Caché Native Access. InterSystems Meetup 2014
Caché Native Access. InterSystems  Meetup 2014Caché Native Access. InterSystems  Meetup 2014
Caché Native Access. InterSystems Meetup 2014
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 

More from Positive Hack Days

Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
Positive Hack Days
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
Positive Hack Days
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Positive Hack Days
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
Positive Hack Days
 

More from Positive Hack Days (20)

Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложений
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application Security
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опыт
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services Center
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атаки
 
Доклад SiteSecure
Доклад SiteSecureДоклад SiteSecure
Доклад SiteSecure
 
Практический опыт защиты финансовых транзакций клиентов Банка
Практический опыт защиты финансовых транзакций клиентов БанкаПрактический опыт защиты финансовых транзакций клиентов Банка
Практический опыт защиты финансовых транзакций клиентов Банка
 
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...
 
Эффективный контроль сотрудников
Эффективный контроль сотрудниковЭффективный контроль сотрудников
Эффективный контроль сотрудников
 

Recently uploaded

СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 

Recently uploaded (9)

СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 

Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев

  • 1. CrossPM Упрощаем сложные зависимости Александр Ковалев Ведущий программист отдела технологий разработки (DevOps) akovalev@ptsecurity.com
  • 3. Нерешенные проблемы со сборками Отсутствие единого инструмента, реализующего модель сборок
  • 4. Нерешенные проблемы со сборками К чему это привело
  • 6. Open Source Подготовка и вывод проекта в сообщество DevOpsHQ CrossPM config.yaml cpm.manifest environment Загруженные зависимости command line Artifactory adapter Git adapter Whatever adapter ... Любая структура каталогов и имен файлов в репозитории Формат описания зависимостей указывается в config.yaml Просто выполнить pip install crosspm перед использованием Логичная структура проекта, ведется работа по документированию кода
  • 8. CrossPM: Что он может • Найти пакеты, от которых зависит ваш проект • Найти пакеты, от которых зависят эти пакеты • Найти пакеты, от которых зависят и эти пакеты тоже • И т.д… • И т.д… • И т.д… • Распаковать загруженные пакеты • Создать shell скрипт для установки путей к пакетам в переменные окружения • Или cmd скрипт • Или python скрипт • Или json файл • Или просто вывести в stdout • Если Вам этого мало – пойдем пообщаемся… в хорошем смысле • Загрузить все эти найденные пакеты • Или загрузить только указанный пакет • Или просто вернуть полный путь или имя файла пакета
  • 9. CrossPM: Конфигурация формата манифеста crosspm.yaml (фрагмент) cpm.manifest (пример) boost 1.55.3 poco 1.46.14 openssl 1.0.20 log4cplus 1.1.6 ... columns: "*package, version" ...
  • 10. CrossPM: Конфигурация формата манифеста ... columns: "*package, version, branch, contract, quality" parsers: common: columns: version: "{int}.{int}.{int}[-{str}]" artifactory: path: "{server}/{package}/{branch}/{package}.{version}[.zip|.tar.gz|.nupkg]" properties: "build.contract.{contract} = {quality}" ... crosspm.yaml (фрагмент) cpm.manifest (пример) boost 1.55.*- 1.55-pm R11.0 snapshot poco 1.46.>=14 1.46-pm * release openssl 1.>0.* 1.* * * log4cplus 1.1.6 1.1-pm R10.0 stable
  • 11. CrossPM: Конфигурация меток качества ... values: quality: 1: banned 2: snapshot 3: integration 4: stable 5: release ... crosspm.yaml (фрагмент) cpm.manifest (пример) boost 1.55.*- 1.55-pm R11.0 >snapshot poco 1.46.>=14 1.46-pm * release openssl 1.>0.* 1.* * * log4cplus 1.1.6 1.1-pm R10.0 >=stable
  • 12. CrossPM: Конфигурация дополнительных опций ... options: arch: cmdline: arch env: CROSSPM_ARCH osname: cmdline: os env: CROSSPM_OS default: linux ... crosspm.yaml (фрагмент) Командная строка C:build> crosspm download --out-format=stdout –o arch=x86_64,os=win
  • 13. CrossPM: Конфигурация источников ... sources: - type: artifactory parser: artifactory server: https://repo1.someorg.com/artifactory/ repo: - libs-cpp - libs.snapshot auth_type: simple auth: - reader_cpp_libs - "**********" - type: artifactory parser: artifactory server: https://repo1.someorg.com/artifactory/ repo: libs-other.snapshot auth_type: simple auth: - "reader_libs" - "**********" ... crosspm.yaml (фрагмент)
  • 14. CrossPM: Конфигурация источников (упрощение) ... common: type: artifactory parser: artifactory server: https://repo1.someorg.com/artifactory/ auth_type: simple sources: - repo: - libs-cpp - libs.snapshot auth: - reader_cpp_libs - "**********" - repo: libs-other.snapshot auth: - "reader_libs" - "**********" ... crosspm.yaml (фрагмент)
  • 15. CrossPM: Командная строка CrossPM (Cross Package Manager) version: 0.8.1 The MIT License (MIT) Usage: crosspm download [options] crosspm promote [options] crosspm pack <OUT> <SOURCE> [options] crosspm -h | --help crosspm --version Options: <OUT> Output file. <SOURCE> Source directory path. -h, --help Show this screen. --version Show version. -v, --verbose Increase output verbosity. --verbosity=LEVEL Set output verbosity level: (critical, error, warning, info, ... -c=FILE, --config=FILE Path to configuration file. -o OPTIONS, --options OPTIONS Extra options. --depslock-path=FILE Path to file with locked dependencies [default: ./cpm.manifest] --out-format=TYPE Output data format. Available formats:(['stdout', 'cmd', ... --output=FILE Output file name (required if --out_format is not stdout) --out-prefix=PREFIX Prefix for output variable name [default: ] (no prefix at all) crosspm --help
  • 17. CrossPM + Artifactory • Использовали существующий API от Artifactory • Запланировали написать свою библиотеку для работы с Artifactory Первый этап: • Обнаружили, что такая библиотека уже существует • Протестировали: библиотека сыровата, но пользоваться уже можно • Разработчикам из Parallels – отдельное спасибо! Ждем развития! Второй этап (Open Source):
  • 18. CrossPM + Artifactory + любое другое хранилище, на самом деле… • Динамически подключаемые модули для работы с репозиторием: • Любой способ подключения: • http • ftp, sftp • smb • просто файлы в папках • и прочее… • Любое количество типов репозиториев
  • 19. CrossPM: Возможные доработки инструмента • Поддержка дополнительных форматов пакетов • Повторные попытки загрузки пакетов при разрывах соединения • Загрузка пакетов в репозиторий • Управление пакетами в репозитории
  • 20. Полезные ссылки • CrossPM: https://github.com/devopshq/crosspm установка: pip install crosspm • Python interface library for Jfrog Artifactory: https://github.com/Parallels/artifactory • Ждем ваши предложения на DevOpsHQ: https://github.com/devopshq/crosspm/issues
  • 21. Спасибо! Александр Ковалев Ведущий программист отдела технологий разработки (DevOps) akovalev@ptsecurity.com https://github.com/devopshq/crosspm Вопросы?