Highload++ 2017 завершён!

Профессиональная конференция разработчиков высоконагруженных систем

СКОЛКОВО, Москва 7 и 8 ноября

11-я ежегодная конференция для разработчиков highload-систем, которая соберет   2 700 участников из разных регионов России и мира. Мероприятие направлено на обмен знаниями о технологиях, позволяющих одновременно обслуживать многие тысячи и миллионы пользователей.

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

Собираем Docker-образы быстро и удобно
DevOps и эксплуатация

Доклад принят в Программу конференции
Флант

Технический директор и соучредитель компании «Флант». 17 лет с Linux, 14 лет в эксплуатации, включая поддержку более 50 highload-проектов. Программирует на C, PHP, Python и Bash. Любит С++. Читает на Go. Понимает Docker и Kubernetes. Архитектор и соавтор nginx-http-rdns, pam_docker, werf, deckhouse и okmeter.

Тезисы

Одним из важных элементов процесса Continuous Delivery, построенного с использованием Docker, является сборка Docker-образов. На первый взгляд задача кажется тривиальной, а синтаксис Dockerfile — простым и понятным.

Но что, если вы используете микросервисную архитектуру и вам необходимо собирать сотни или даже тысячи образов каждый день? А если вам нужно исправить срочный баг на production, готовы ли вы ждать лишние минуты, пока будет произведена сборка?

Даже небольшие команды, не ведущие параллельную разработку десятков проектов, на практике сталкиваются с проблемами, не имеющими очевидных решений.
- Как собирать несколько образов для одного проекта (например, разные образы для frontend и backend)?
- Как уменьшить среднее время сборки до нескольких секунд?
- Как правильно исключить из образа лишнюю информацию, сделав его легким? Например, как исключить из образа nodejs, который требуется для компиляции ассетов? Dev-библиотеки, требующиеся для компиляции приложения на Си++?
- Как вести распределенную сборку, используя при этом общий кэш? Или собирать Docker-образы для разных бранчей одного проекта, корректно используя общий кэш?
- Как переиспользовать код сборки между несколькими проектами?
- Как вести совместную разработку?

В этом докладе я расскажу о том, как мы решили обозначенные проблемы и почему считаем, что существующие возможности Dockerfile (и docker build) плохо подходят для сборки образов для CI/CD.

Чем быстрее и чем эффективнее происходит процесс сборки, тем чаще можно собирать и чаще тестировать, тем быстрее можно выкатывать и тем дольше можно хранить историю.

Технологии виртуализации и контейнеризации
,
Непрерывное развертывание и деплой
,
Непрерывная интеграция

Другие доклады секции
DevOps и эксплуатация

Rambler's Top100