Релиз-менеджмент в
       Badoo
     Илья Агеев
Badoo
●   140 миллионов пользователей;
●   180 стран мира;
●   160 тысяч ежедневных регистраций;
●   3 миллиона фото и видео ежедневно;
●   Более 200 сотрудников, говорящих на 39
    языках.
План доклада
●   1. Старая схема релизов
    ●   Subversion;
    ●   Issues tracking;
    ●   Работа с системой перевода;
    ●   Deployment.
●   2. Новый деплой, I этап
    ●   Разделение задач по веткам, переход на git;
    ●   Issues tracking, привязка задач;
    ●   Недостатки и преимущества.
План доклада
●   3. Новый деплой, II этап
    ●   “Шоты” и “Билды”;
    ●   Раскладка по кластерам;
    ●   Изменения в схеме работы с JIRA;
    ●   Deployment;
    ●   Недостатки и преимущества.
●   Новый деплой, III этап
    ●   Ускорение выкладки
    ●   Синхронное переключение лупов;
    ●   Централизованное управление конфигами.
1. Старая схема релизов
                                   subversion

     trunk

commits
          Feature 1                                            Feature 3
                                   bugfix 1

                      Feature 2               bugfix 2




                              release                release
1. Старая схема релизов
               JIRA
                       svn revision field
Open     In progress      Resolved



         Reopened



                       Passed on DEV



                       Passed on Stage



Closed                 Passed on Prod
1. Старая схема релизов
                           Переводы
                                                             Translators
devel
        Parse
*.tpl   templates

                         Translate database



                    Generate
                    templates




                                              English   Español   ‫עברית‬
                                *.tpl         Русский   Italiano ‫العربية‬

                                              Deutsch     中文          िहिंदी
                                              Français Ελληνικά Türkçe
1. Старая схема релизов
                   Выкладка кода
HEAD
                                 main

svn                  translate                 loop




                   mscp                 mscp 20
                                        threads

           stage
                                            production
2. Новый деплой – этап I
                                                git

                                 SRV-1027_rebuild_reg_stat
stable branch (master)


        BFG-1020_new_profile BD-502_spp_in_Spain   CS-89_improve_blog_comments




                        release                          release
1. Старая схема релизов
                          Недостатки
●   В выкладку попадают незавершенные задачи;
●   Неудобно отслеживать состояние кода;
●   Невозможно откатить задачу;
●   Невозможно добавить что-то в прошлый релиз;
●   Работа отделов волнообразно зависит от выкладки;
●   Выкладка готовых задач тормозится из-за недопереведенных или
    неработающих задач;
●   Код выкладывается медленно и несинхронно;
●   ...
2. Новый деплой – этап I
Open     In progress            Resolved      QA on Devel


          Reopen


                                To merge
                       auto
                               To Deploy
                       auto
                               On Staging     QA on Staging


                              To Production
                       auto
                              On Production     To Verify


Closed                           Verified
2. Новый деплой – этап I
                    Преимущества
●   В выкладку попадают завершенные задачи;
●   Всегда четко видно в каком состоянии задача, где
    находится код;
●   Гибкое управление кодом.
                    Недостатки
●   После выкладки на мэйн присутствуют
    недостатки предыдущей схемы
3. Новый деплой – этап II
                      Шоты и билды
●   Shot (шот) – стэйджинг для каждой отдельно взятой
    задачи (ветки git). Физически – папка на сервере, куда
    чекаутится ветка git + настройка nginx. Имеет свой
    домен первого уровня - .shot;
●   Build (билд) – аггрегация задач для раскладки по
    продакшену. Это отдельная ветка в git, в которую
    мержатся все выкладываемые задачи.
3. Новый деплой – этап II
                                     build


                                                    production




master
                  Feature 1
                 Feature 2
                Feature 3


         shot                                shot
                              shot
3. Новый деплой – этап II
            Кластеры
                          www
   build1


                         scripts
   build2


                         billing
   build3


                       back-office



                          etc
3. Новый деплой – этап II
            JIRA
      ...          Resolved     Reopen


                In DEV - ok


                   In Shot


                In Shot - ok


                   In Build


                In Build - ok


      ...      On Production
3. Новый деплой – этап II
              Переводы
  HEAD

           Translates parse
                                    shot
  Git
branch




                              Translates generate


                      build
3. Новый деплой – этап II
       Передача файлов




         uftp
3. Новый деплой – этап II
                     Преимущества
●   Любую задачу можно откатить в любой момент;
●   Можно добавлять задачи в прошлые релизы;
●   Работа идет плавно, не волнообразно;
●   Ничто не тормозит выкладку задачи, если она завершена;
●   Выкладка ускорилась с 40 до 3 минут вместе с генерацией.
    Непосредственно раскладка лупа через uftp ~ 30 секунд на
    все машины платформы.
4. Новый деплой – этап III
                            Планы
●   Ускорение выкладки – фоновая загрузка;
●   Синхронизация выкладки – включение лупов конечными
    серверами самостоятельно, по получению команды от
    центрального сервера, в определенный момент времени;
●   Управление конфигами через БД. Выгрузка и применение
    конфигов конечными серверами самостоятельно.

More Related Content

PDF
Фламп на спидах или ка релизить каждый день
PPTX
Презентация Git-flow (на русском)
PPTX
Управление highload-проектами 24 на 7
PPTX
Git for you
PPTX
Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...
PDF
DevHub 3 - CVS
PPTX
Xp в brown field разработке
Фламп на спидах или ка релизить каждый день
Презентация Git-flow (на русском)
Управление highload-проектами 24 на 7
Git for you
Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...
DevHub 3 - CVS
Xp в brown field разработке

What's hot (12)

PPTX
Виды систем контоля верий. Система Git.
PDF
Переход на Git из Subversion
PDF
Владислав Грязнов "Многозадачность в PHP"
PPTX
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
PDF
SymfonyConf IV.2016 - Реанимация проектов на Symfony
PPTX
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
PDF
Giflow
PDF
Андрей Сибирёв "Ваше собственное облако — война за независимость"
PDF
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
PDF
Непрерывная интеграция при разработке баз данных. (Show version)
PPTX
Agile Days 2013 - Dead Area
PDF
Linux Kernel Processes
Виды систем контоля верий. Система Git.
Переход на Git из Subversion
Владислав Грязнов "Многозадачность в PHP"
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
SymfonyConf IV.2016 - Реанимация проектов на Symfony
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
Giflow
Андрей Сибирёв "Ваше собственное облако — война за независимость"
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Непрерывная интеграция при разработке баз данных. (Show version)
Agile Days 2013 - Dead Area
Linux Kernel Processes
Ad

Similar to Badoo presentation-2012-rit-ageev (20)

PDF
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
PPTX
Continuous Deployment (in Russian)
PDF
Drupal code sprint для новичков
PDF
Никита Шультайс. "Система управления версиями git"
PPTX
Continuous deployment Smartling event
PPTX
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
PDF
CI/CD with Fastlane and Telegram
PDF
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
PDF
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
PDF
Deployment to production with an unexpected load
PDF
Релизимся чаще, или тернистый путь к continuous delivery
PDF
GitFlow_MOEX
PPTX
Управление облачной инфраструктурой
PDF
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
PDF
Git для начинающих
PDF
Абак Пресс
PDF
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
PDF
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
PDF
linux and freebsd monitoring
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Continuous Deployment (in Russian)
Drupal code sprint для новичков
Никита Шультайс. "Система управления версиями git"
Continuous deployment Smartling event
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
CI/CD with Fastlane and Telegram
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
Deployment to production with an unexpected load
Релизимся чаще, или тернистый путь к continuous delivery
GitFlow_MOEX
Управление облачной инфраструктурой
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Git для начинающих
Абак Пресс
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
linux and freebsd monitoring
Ad

Badoo presentation-2012-rit-ageev

  • 1. Релиз-менеджмент в Badoo Илья Агеев
  • 2. Badoo ● 140 миллионов пользователей; ● 180 стран мира; ● 160 тысяч ежедневных регистраций; ● 3 миллиона фото и видео ежедневно; ● Более 200 сотрудников, говорящих на 39 языках.
  • 3. План доклада ● 1. Старая схема релизов ● Subversion; ● Issues tracking; ● Работа с системой перевода; ● Deployment. ● 2. Новый деплой, I этап ● Разделение задач по веткам, переход на git; ● Issues tracking, привязка задач; ● Недостатки и преимущества.
  • 4. План доклада ● 3. Новый деплой, II этап ● “Шоты” и “Билды”; ● Раскладка по кластерам; ● Изменения в схеме работы с JIRA; ● Deployment; ● Недостатки и преимущества. ● Новый деплой, III этап ● Ускорение выкладки ● Синхронное переключение лупов; ● Централизованное управление конфигами.
  • 5. 1. Старая схема релизов subversion trunk commits Feature 1 Feature 3 bugfix 1 Feature 2 bugfix 2 release release
  • 6. 1. Старая схема релизов JIRA svn revision field Open In progress Resolved Reopened Passed on DEV Passed on Stage Closed Passed on Prod
  • 7. 1. Старая схема релизов Переводы Translators devel Parse *.tpl templates Translate database Generate templates English Español ‫עברית‬ *.tpl Русский Italiano ‫العربية‬ Deutsch 中文 िहिंदी Français Ελληνικά Türkçe
  • 8. 1. Старая схема релизов Выкладка кода HEAD main svn translate loop mscp mscp 20 threads stage production
  • 9. 2. Новый деплой – этап I git SRV-1027_rebuild_reg_stat stable branch (master) BFG-1020_new_profile BD-502_spp_in_Spain CS-89_improve_blog_comments release release
  • 10. 1. Старая схема релизов Недостатки ● В выкладку попадают незавершенные задачи; ● Неудобно отслеживать состояние кода; ● Невозможно откатить задачу; ● Невозможно добавить что-то в прошлый релиз; ● Работа отделов волнообразно зависит от выкладки; ● Выкладка готовых задач тормозится из-за недопереведенных или неработающих задач; ● Код выкладывается медленно и несинхронно; ● ...
  • 11. 2. Новый деплой – этап I Open In progress Resolved QA on Devel Reopen To merge auto To Deploy auto On Staging QA on Staging To Production auto On Production To Verify Closed Verified
  • 12. 2. Новый деплой – этап I Преимущества ● В выкладку попадают завершенные задачи; ● Всегда четко видно в каком состоянии задача, где находится код; ● Гибкое управление кодом. Недостатки ● После выкладки на мэйн присутствуют недостатки предыдущей схемы
  • 13. 3. Новый деплой – этап II Шоты и билды ● Shot (шот) – стэйджинг для каждой отдельно взятой задачи (ветки git). Физически – папка на сервере, куда чекаутится ветка git + настройка nginx. Имеет свой домен первого уровня - .shot; ● Build (билд) – аггрегация задач для раскладки по продакшену. Это отдельная ветка в git, в которую мержатся все выкладываемые задачи.
  • 14. 3. Новый деплой – этап II build production master Feature 1 Feature 2 Feature 3 shot shot shot
  • 15. 3. Новый деплой – этап II Кластеры www build1 scripts build2 billing build3 back-office etc
  • 16. 3. Новый деплой – этап II JIRA ... Resolved Reopen In DEV - ok In Shot In Shot - ok In Build In Build - ok ... On Production
  • 17. 3. Новый деплой – этап II Переводы HEAD Translates parse shot Git branch Translates generate build
  • 18. 3. Новый деплой – этап II Передача файлов uftp
  • 19. 3. Новый деплой – этап II Преимущества ● Любую задачу можно откатить в любой момент; ● Можно добавлять задачи в прошлые релизы; ● Работа идет плавно, не волнообразно; ● Ничто не тормозит выкладку задачи, если она завершена; ● Выкладка ускорилась с 40 до 3 минут вместе с генерацией. Непосредственно раскладка лупа через uftp ~ 30 секунд на все машины платформы.
  • 20. 4. Новый деплой – этап III Планы ● Ускорение выкладки – фоновая загрузка; ● Синхронизация выкладки – включение лупов конечными серверами самостоятельно, по получению команды от центрального сервера, в определенный момент времени; ● Управление конфигами через БД. Выгрузка и применение конфигов конечными серверами самостоятельно.