Рейтинг@Mail.ru
HighLoad++ 2016 завершён. До встречи в 2017!

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

Москва, СКОЛКОВО,
7 и 8 ноября
Архив
2015
года
Конференция прошла в этом году уже в десятый раз и собрала 2500 участников. Мероприятие направлено на обмен знаниями о технологиях, позволяющих одновременно обслуживать многие тысячи и миллионы пользователей.

ГлавнаяHighLoad++DevOps и эксплуатация

5 способов деплоя PHP-кода в условиях хайлоада
DevOps и эксплуатация

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

Разработчик «платформы» в компании Badoo.

В компании занимаюсь всем подряд, но можно выделить основные компоненты:
- система переводов (прозрачное вычленение лексем из HTML-шаблонов, многоверсионность, интеграция с git);
- деплой-утилиты (PHP-код, статика);
- «облако» для запуска CLI-скриптов (обеспечивает запуск 3 тыс. запусков заданий в секунду на 200 серверах);
- подбор весов для балансировки нагрузки на веб-кластерах (около 500 хостов);
- мелкие демона на go, в том числе для доставки событий и логов (доставка и роутинг сотен тысяч событий в секунду).

До Badoo работал в паре мест и занимался full-stack веб-разработкой на PHP и JS.

Тезисы

В дата-центрах нашей компании несколько тысяч серверов, и примерно на половине из них нужно выкладывать PHP-код 2 раза в день. Помимо раскладки на production также не стоит забывать о том, что код нужен на стейджинге, и в стейджинг-кластер у нас входит около 50 машин, код на которых обновляется раз в несколько минут. Также есть «хотфиксы» — небольшие (1-5) наборы файлов, которые выкладываются во внеочередном порядке на все или на выделенную часть серверов, чтобы устранить существующие проблемы на продакшне, не дожидаясь полной выкладки.

В этом докладе я расскажу о том, как мы деплоились в течение 10 лет, о том, какую новую систему для деплоя PHP-кода мы разработали и внедрили в production, а также проведу обзор решений для масштабного деплоя кода на PHP и анализ их производительности.

План доклада:
— Наша старая система деплоя, достоинства и недостатки.
— Существующие решения:
* "svn up" / "git pull".
* rsync.
* phar, hhbc (HHVM-specific), "loop".
* rsync + 2 директории + realpath_root (Rasmus-style).
— Требования для новой системы деплоя.
* быстрый деплой на стейджинг (5-10 секунд на 50 серверов).
* возможность атомарно патчить несколько файлов и быстро их выкладывать (10 секунд на весь кластер).
* совместимость с docker.
* поддержка «долгоиграющих» CLI-скриптов (несколько часов).
* низкое потребление ресурсов на принимающей стороне.
* отсутствие необходимости сбрасывать opcache.
* высокая скорость деплоя на продакшн (1-2 минуты на 1500 серверов).
— MDK — multiversion deployment kit.
— Анализ применимости и производительности способов деплоя.
— Выводы.

Непрерывное развертывание и деплой

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

Бронирование билетов
Вы можете забронировать себе билеты уже сейчас — чем раньше Вы это сделаете, тем лучше, ведь цена на билеты постоянно растёт. Бронь вас ни к чему не обязывает, после бронирования у Вас будет пара недель на принятие решения об оплате.
ЗАБРОНИРОВАТЬ БИЛЕТЫ
Остались вопросы?
Спроси по телефону у контактного центра: +7 (495) 646-0768
Или напиши письмо в службу поддержки: support@ontico.ru
Rambler's Top100