2. Релиз-менеджмент в Badoo
• О компании
• Процесс разработки
• Новый деплой: «шоты» и «билды»
• Обновление кода на 1000 серверов
• Распространенные ошибки
3. • 157 млн пользователей
• PHP-FPM: 30+ тыс запросов в сек
• 140 тыс регистраций в день
• 3 млн фото / видео в день
• 50 языков интерфейса
4. Процесс разработки
• devel: implement feature
• tracker: feature => ticket (PROJ-123)
• git: ticket => branch (PROJ-123_Descr)
• shot: branch => mini-staging
• build: set of branches => staging
• staging => production
5. Development environment
• Несколько «датацентров» («платформ»)
• Кросс-платформенные очереди,
репликация
• Изоляция production-серверов MySQL
• 50+ разработчиков на один сервер
6. Mini-staging: «шоты»
• Staging из текущей ветки
• Обновление статуса в трекере
• Быстрое создание
• Перевод на 4-5 языков
7. Staging / Production: «билды»
• git merge из всех готовых фич
• Один билд — несколько кластеров
• 250 Мб переведенных шаблонов
9. Статусы в трекере
=> Q/A
• Open => In Progress =>
• Resolved => In dev OK =>
• In shot => In shot OK =>
• In build => In build OK =>
• On production => On production OK =>
• Closed
10. Понятие «лупов»
losetup mount
release126 /dev/loop1 /var/www
512 Мб
14. Обработка ошибок
• Всё ломается
• Всё падает
• Или может быть
прибито кем-нибудь
• Используйте
проверенные лично
вами технологии и
инструменты
15. Summary
• 157 млн пользователей
• Рабочий процесс на git
• Мини-стейджинг — «шоты»
• Релиз на 1 000 серверов за 3 минуты
• UFTP, libpssh, pigz и 5к строк на PHP
16. Спасибо за внимание
Юрий Насретдинов
Badoo
nasretdinov@gmail.com
twitter.com/YNasretdinov