Выступление Юрия Насретдинова, Badoo, на High Performance Conference
-
Upload
eyevseyeva -
Category
Technology
-
view
686 -
download
0
description
Transcript of Выступление Юрия Насретдинова, Badoo, на High Performance Conference
![Page 1: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/1.jpg)
Релиз-менеджмент в Badooдеплой на 1000 серверов за 3 минуты
Юрий Насретдинов
twitter.com/YNasretdinov
![Page 2: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/2.jpg)
Релиз-менеджмент в Badoo• О компании• Процесс разработки • Новый деплой: «шоты» и «билды»• Обновление кода на 1000 серверов• Распространенные ошибки
![Page 3: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/3.jpg)
• 157 млн пользователей• PHP-FPM: 30+ тыс запросов в сек• 140 тыс регистраций в день• 3 млн фото / видео в день• 50 языков интерфейса
![Page 4: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/4.jpg)
Процесс разработки• 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
![Page 5: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/5.jpg)
Development environment
• Несколько «датацентров» («платформ»)• Кросс-платформенные очереди, репликация
• Изоляция production-серверов MySQL• 50+ разработчиков на один сервер
![Page 6: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/6.jpg)
Mini-staging: «шоты»
• Staging из текущей ветки• Обновление статуса в трекере• Быстрое создание• Перевод на 4-5 языков
![Page 7: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/7.jpg)
Staging / Production: «билды»
• git merge из всех готовых фич• Один билд — несколько кластеров• 250 Мб переведенных шаблонов
![Page 8: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/8.jpg)
Статусы в трекере
![Page 9: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/9.jpg)
Статусы в трекере
• Open => In Progress =>• Resolved => In dev OK =>• In shot => In shot OK =>• In build => In build OK =>• On production => On production OK =>• Closed
=> Q/A
![Page 10: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/10.jpg)
release126512 Мб
/dev/loop1
mount
/var/www
losetup
Понятие «лупов»
![Page 11: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/11.jpg)
Подготовка «лупа»
empty512 Мб
release78512 Мб
release78.gz100 Мб
pigz cp
20 сек.
![Page 12: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/12.jpg)
Через океан
scp100 Кб
— =
release78512 Мб
78
release77512 Мб
77
diff-78-77100 Кб
diff
5 сек.
![Page 13: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/13.jpg)
Обновление кода
release78.gz100 Мб
uftp libpssh
/var/wwwrelease78512 Мб
1 мин.
![Page 14: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/14.jpg)
Обработка ошибок• Всё ломается• Всё падает• Или может быть прибито кем-нибудь
• Используйте проверенные лично вами технологии и инструменты
![Page 15: Выступление Юрия Насретдинова, Badoo, на High Performance Conference](https://reader034.fdocument.pub/reader034/viewer/2022052621/557ef89fd8b42ad17d8b50cb/html5/thumbnails/15.jpg)
Summary• 157 млн пользователей• Рабочий процесс на git• Мини-стейджинг — «шоты»• Релиз на 1 000 серверов за 3 минуты• UFTP, libpssh, pigz и 5к строк на PHP