SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Релиз-менеджмент в
       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
                            Планы
●   Ускорение выкладки – фоновая загрузка;
●   Синхронизация выкладки – включение лупов конечными
    серверами самостоятельно, по получению команды от
    центрального сервера, в определенный момент времени;
●   Управление конфигами через БД. Выгрузка и применение
    конфигов конечными серверами самостоятельно.

Mais conteúdo relacionado

Mais procurados

Виды систем контоля верий. Система Git.
Виды систем контоля верий. Система Git.Виды систем контоля верий. Система Git.
Виды систем контоля верий. Система Git.Ксения Торгаева
 
Переход на Git из Subversion
Переход на Git из SubversionПереход на Git из Subversion
Переход на Git из SubversionMikhail Vasilyev
 
Владислав Грязнов "Многозадачность в PHP"
Владислав Грязнов "Многозадачность в PHP"Владислав Грязнов "Многозадачность в PHP"
Владислав Грязнов "Многозадачность в PHP"Fwdays
 
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2Oleg Poludnenko
 
SymfonyConf IV.2016 - Реанимация проектов на Symfony
SymfonyConf IV.2016 - Реанимация проектов на SymfonySymfonyConf IV.2016 - Реанимация проектов на Symfony
SymfonyConf IV.2016 - Реанимация проектов на SymfonySerge Velikanov
 
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019corehard_by
 
Андрей Сибирёв "Ваше собственное облако — война за независимость"
Андрей Сибирёв "Ваше собственное облако — война за независимость"Андрей Сибирёв "Ваше собственное облако — война за независимость"
Андрей Сибирёв "Ваше собственное облако — война за независимость"Yandex
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Vladimir Bakhov
 

Mais procurados (12)

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

Destaque

Релиз-менеджмент в Badoo (Юрий Насретдинов)
Релиз-менеджмент в Badoo (Юрий Насретдинов)Релиз-менеджмент в Badoo (Юрий Насретдинов)
Релиз-менеджмент в Badoo (Юрий Насретдинов)Ontico
 
Product development. Founder Institute
Product development. Founder InstituteProduct development. Founder Institute
Product development. Founder InstituteDenis Alaev
 
Управление потоком проектов и задач
Управление потоком проектов и задачУправление потоком проектов и задач
Управление потоком проектов и задачTabtabusconf
 
Курс "Хранение и Обработка больших данны". Лекция 5 YARN
Курс "Хранение и Обработка больших данны". Лекция 5 YARNКурс "Хранение и Обработка больших данны". Лекция 5 YARN
Курс "Хранение и Обработка больших данны". Лекция 5 YARNPavel Mezentsev
 
Как выковать процесс самому / Михаил Вязанкин (2ГИС)
Как выковать процесс самому / Михаил Вязанкин (2ГИС)Как выковать процесс самому / Михаил Вязанкин (2ГИС)
Как выковать процесс самому / Михаил Вязанкин (2ГИС)Ontico
 
Надежда Бычкова "За витриной. Эффективная организация бэк-офиса"
Надежда Бычкова "За витриной. Эффективная организация бэк-офиса"Надежда Бычкова "За витриной. Эффективная организация бэк-офиса"
Надежда Бычкова "За витриной. Эффективная организация бэк-офиса"Tiu.ru
 
Управление релизами в системе управления ИТ
Управление релизами в системе управления ИТУправление релизами в системе управления ИТ
Управление релизами в системе управления ИТSoftmart
 
Управление разработкой продукта
Управление разработкой продуктаУправление разработкой продукта
Управление разработкой продуктаAlexey Filimonov
 
Управление доставкой заказов интернет-магазина в 1С
Управление доставкой заказов интернет-магазина в 1СУправление доставкой заказов интернет-магазина в 1С
Управление доставкой заказов интернет-магазина в 1СStart-IT-Up
 
Роман Радионов - Мобильная версия интернет-магазина: как избежать типичных ош...
Роман Радионов - Мобильная версия интернет-магазина: как избежать типичных ош...Роман Радионов - Мобильная версия интернет-магазина: как избежать типичных ош...
Роман Радионов - Мобильная версия интернет-магазина: как избежать типичных ош...Yandex
 
«Планирование, разработка, продвижение и эксплуатация Интернет-магазина. Прак...
«Планирование, разработка, продвижение и эксплуатация Интернет-магазина. Прак...«Планирование, разработка, продвижение и эксплуатация Интернет-магазина. Прак...
«Планирование, разработка, продвижение и эксплуатация Интернет-магазина. Прак...sp66
 
My way фрии
My way фрииMy way фрии
My way фрииMW_vv
 
Инструменты роста интернет-магазина
Инструменты роста интернет-магазинаИнструменты роста интернет-магазина
Инструменты роста интернет-магазинаMoySklad
 
эффективный интернет магазин
эффективный интернет магазинэффективный интернет магазин
эффективный интернет магазинJenia Varava
 
Как юзабилити влияет на экономику интернет-магазина
Как юзабилити влияет на экономику интернет-магазинаКак юзабилити влияет на экономику интернет-магазина
Как юзабилити влияет на экономику интернет-магазинаArtem Kuznetsov
 
Методология создания интернет-магазина
Методология создания интернет-магазинаМетодология создания интернет-магазина
Методология создания интернет-магазинаАгентство AlterEGO
 
За витриной. бэк офис интернет-магазина
За витриной. бэк офис интернет-магазинаЗа витриной. бэк офис интернет-магазина
За витриной. бэк офис интернет-магазинаMoySklad
 
Проектирование интернет-магазина с высокой конверсией
Проектирование интернет-магазина с высокой конверсиейПроектирование интернет-магазина с высокой конверсией
Проектирование интернет-магазина с высокой конверсиейAstra Media Group, Russia
 
Презентация: "Электронная коммерция в России"
Презентация: "Электронная коммерция в России"Презентация: "Электронная коммерция в России"
Презентация: "Электронная коммерция в России"ptecs
 

Destaque (20)

Релиз-менеджмент в Badoo (Юрий Насретдинов)
Релиз-менеджмент в Badoo (Юрий Насретдинов)Релиз-менеджмент в Badoo (Юрий Насретдинов)
Релиз-менеджмент в Badoo (Юрий Насретдинов)
 
Product development. Founder Institute
Product development. Founder InstituteProduct development. Founder Institute
Product development. Founder Institute
 
Управление потоком проектов и задач
Управление потоком проектов и задачУправление потоком проектов и задач
Управление потоком проектов и задач
 
Курс "Хранение и Обработка больших данны". Лекция 5 YARN
Курс "Хранение и Обработка больших данны". Лекция 5 YARNКурс "Хранение и Обработка больших данны". Лекция 5 YARN
Курс "Хранение и Обработка больших данны". Лекция 5 YARN
 
Как выковать процесс самому / Михаил Вязанкин (2ГИС)
Как выковать процесс самому / Михаил Вязанкин (2ГИС)Как выковать процесс самому / Михаил Вязанкин (2ГИС)
Как выковать процесс самому / Михаил Вязанкин (2ГИС)
 
Надежда Бычкова "За витриной. Эффективная организация бэк-офиса"
Надежда Бычкова "За витриной. Эффективная организация бэк-офиса"Надежда Бычкова "За витриной. Эффективная организация бэк-офиса"
Надежда Бычкова "За витриной. Эффективная организация бэк-офиса"
 
Управление релизами в системе управления ИТ
Управление релизами в системе управления ИТУправление релизами в системе управления ИТ
Управление релизами в системе управления ИТ
 
Управление разработкой продукта
Управление разработкой продуктаУправление разработкой продукта
Управление разработкой продукта
 
Управление доставкой заказов интернет-магазина в 1С
Управление доставкой заказов интернет-магазина в 1СУправление доставкой заказов интернет-магазина в 1С
Управление доставкой заказов интернет-магазина в 1С
 
Роман Радионов - Мобильная версия интернет-магазина: как избежать типичных ош...
Роман Радионов - Мобильная версия интернет-магазина: как избежать типичных ош...Роман Радионов - Мобильная версия интернет-магазина: как избежать типичных ош...
Роман Радионов - Мобильная версия интернет-магазина: как избежать типичных ош...
 
«Планирование, разработка, продвижение и эксплуатация Интернет-магазина. Прак...
«Планирование, разработка, продвижение и эксплуатация Интернет-магазина. Прак...«Планирование, разработка, продвижение и эксплуатация Интернет-магазина. Прак...
«Планирование, разработка, продвижение и эксплуатация Интернет-магазина. Прак...
 
Agile Product Management Framework
Agile Product Management FrameworkAgile Product Management Framework
Agile Product Management Framework
 
My way фрии
My way фрииMy way фрии
My way фрии
 
Инструменты роста интернет-магазина
Инструменты роста интернет-магазинаИнструменты роста интернет-магазина
Инструменты роста интернет-магазина
 
эффективный интернет магазин
эффективный интернет магазинэффективный интернет магазин
эффективный интернет магазин
 
Как юзабилити влияет на экономику интернет-магазина
Как юзабилити влияет на экономику интернет-магазинаКак юзабилити влияет на экономику интернет-магазина
Как юзабилити влияет на экономику интернет-магазина
 
Методология создания интернет-магазина
Методология создания интернет-магазинаМетодология создания интернет-магазина
Методология создания интернет-магазина
 
За витриной. бэк офис интернет-магазина
За витриной. бэк офис интернет-магазинаЗа витриной. бэк офис интернет-магазина
За витриной. бэк офис интернет-магазина
 
Проектирование интернет-магазина с высокой конверсией
Проектирование интернет-магазина с высокой конверсиейПроектирование интернет-магазина с высокой конверсией
Проектирование интернет-магазина с высокой конверсией
 
Презентация: "Электронная коммерция в России"
Презентация: "Электронная коммерция в России"Презентация: "Электронная коммерция в России"
Презентация: "Электронная коммерция в России"
 

Semelhante a Релиз менеджмент в Badoo (Илья Агеев)

Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
 
Continuous Deployment (in Russian)
Continuous Deployment  (in Russian)Continuous Deployment  (in Russian)
Continuous Deployment (in Russian)Smartling
 
Drupal code sprint для новичков
Drupal code sprint для новичковDrupal code sprint для новичков
Drupal code sprint для новичковOvadiah Myrgorod
 
Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"Egor Stremousov
 
Continuous deployment Smartling event
Continuous deployment Smartling eventContinuous deployment Smartling event
Continuous deployment Smartling eventViktoriya Pridatko
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Fwdays
 
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Badoo Development
 
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...it-people
 
Deployment to production with an unexpected load
Deployment to production with an unexpected loadDeployment to production with an unexpected load
Deployment to production with an unexpected loadGrid Dynamics
 
Релизимся чаще, или тернистый путь к continuous delivery
Релизимся чаще, или тернистый путь к continuous deliveryРелизимся чаще, или тернистый путь к continuous delivery
Релизимся чаще, или тернистый путь к continuous deliverySQALab
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктуройdddpaul
 
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...DrupalCamp MSK
 
Git для начинающих
Git для начинающихGit для начинающих
Git для начинающихVadim Drobinin
 
Абак Пресс
Абак ПрессАбак Пресс
Абак Прессit-people
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...Nikolay Samokhvalov
 

Semelhante a Релиз менеджмент в Badoo (Илья Агеев) (20)

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

Mais de Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

Mais de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Релиз менеджмент в Badoo (Илья Агеев)

  • 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 Планы ● Ускорение выкладки – фоновая загрузка; ● Синхронизация выкладки – включение лупов конечными серверами самостоятельно, по получению команды от центрального сервера, в определенный момент времени; ● Управление конфигами через БД. Выгрузка и применение конфигов конечными серверами самостоятельно.