SlideShare a Scribd company logo
Цикл	
  разработки	
  и	
  внедрения	
  
   функционала	
  в	
  Мамбе	
  

            Михаил	
  Буйлов	
  
              «Мамба»	
  
О	
  чем	
  доклад?	
  

•  Основа	
  разработки	
  –	
  система	
  контроля	
  
   версий	
  
•  Автоматизированная	
  система	
  деплоя	
  с	
  веб	
  
   интерфейсом	
  
•  Проблемы	
  непосредственно	
  деплоя	
  кода	
  
•  Как	
  мы	
  понимаем,	
  что	
  все	
  хорошо	
  
Системы	
  контроля	
  версий	
  (VCS)	
  
              Мы	
  использовали	
  
•  CVS	
  
•  SVN	
  
•  GIT	
  
Проблемы	
  SVN	
  

•  Тяжелые	
  операции	
  переключения	
  веток	
  
•  Тяжелые	
  операции	
  мержа	
  и	
  поддержки	
  
      актуальности	
  веток	
  
	
  и	
  как	
  следствие	
  	
  
•  Разработка	
  в	
  транке	
  
Проблемы	
  разработки	
  в	
  транке	
  

•  Нет	
  стабильного	
  кода	
  
   –  Решение:	
  	
  ConZnuous	
  IntegraZon	
  
ConZnuous	
  IntegraZon	
  
•  Коммит	
  в	
  транк	
  вызывает	
  старт	
  билда	
  
ConZnuous	
  IntegraZon	
  
•  Коммит	
  в	
  транк	
  вызывает	
  старт	
  билда	
  
•  Сервер	
  билдов	
  –	
  jenkins	
  
Проблемы	
  разработки	
  в	
  транке	
  

•  Нет	
  стабильного	
  кода	
  
•  Нет	
  боевого	
  кода	
  
Проблемы	
  деплоя	
  при	
  разработки	
  в	
  
               транке	
  

•  Его	
  нельзя	
  раскладывать	
  целиком.	
  Только	
  
   отдельные	
  файлы.	
  
Проблемы	
  деплоя	
  при	
  разработки	
  в	
  
               транке	
  

•  Его	
  нельзя	
  раскладывать	
  целиком.	
  Только	
  
     отдельные	
  файлы.	
  
•  Деплой	
  нужно	
  производить	
  так	
  часто	
  как	
  
     это	
  возможно	
  	
  
	
  
Проблемы	
  деплоя	
  при	
  разработки	
  в	
  
               транке	
  

•  Его	
  нельзя	
  раскладывать	
  целиком.	
  Только	
  
     отдельные	
  файлы.	
  
•  Деплой	
  нужно	
  производить	
  так	
  часто	
  как	
  
     это	
  возможно	
  	
  
•  Нет	
  возможности	
  сегментировать	
  билд	
  
	
  
Сегментация	
  билда	
  
•  Структурирует	
  изменения	
  
Сегментация	
  билда	
  
•  Структурирует	
  изменения	
  
•  Позволяет	
  автоматически	
  исключать	
  из	
  
   билда	
  нестабильный	
  функционал	
  	
  
Заявка	
  	
  
•  Строительный	
  элемент	
  билда	
  
 


       Решение	
  проблем:	
  	
  
научится	
  разрабатывать	
  в	
  бранчах	
  
Решение	
  всех	
  проблем:	
  переход	
  на	
  гит	
  


•  Сильно	
  проще	
  работать	
  с	
  ветками.	
  	
  
Решение	
  всех	
  проблем:	
  переход	
  на	
  гит	
  

	
  
•  Сильно	
  проще	
  работать	
  с	
  ветками.	
  	
  
•  Стабильный	
  мастер	
  позволит	
  делать	
  теги	
  
   для	
  аварийного	
  отката	
  
Решение	
  всех	
  проблем:	
  переход	
  на	
  гит	
  

	
  
•  Сильно	
  проще	
  работать	
  с	
  ветками.	
  	
  
•  Стабильный	
  мастер	
  позволит	
  делать	
  теги	
  
   для	
  аварийного	
  отката	
  
•  Заявка	
  на	
  деплой	
  –	
  ветка	
  в	
  репозитории	
  
Система	
  визуального	
  деплоя	
  
•  Начиналась	
  со	
  списка	
  файлов	
  в	
  почте	
  
Система	
  визуального	
  деплоя	
  
•  Начиналась	
  со	
  списка	
  файлов	
  в	
  почте	
  
•  Потом	
  появилась	
  форма,	
  для	
  списка	
  
   файлов(автоматизация!)	
  
Система	
  визуального	
  деплоя	
  
•  Валидирует	
  заявки	
  
Валидация	
  заявок	
  
•  Автоматический	
  merge	
  с	
  мастером	
  
•  Проверка	
  корректности	
  разметки	
  шаблонов	
  
•  Запуск	
  тестов	
  conZnuous	
  integraZon	
  
Система	
  визуального	
  деплоя	
  
•  Валидирует	
  заявки	
  
•  Диагностирует	
  конфликты	
  между	
  заявками	
  
Система	
  визуального	
  деплоя	
  
•  Валидирует	
  заявки	
  
•  Диагностирует	
  конфликты	
  между	
  заявками	
  
•  Выгружает	
  код	
  на	
  тестовые	
  сервера	
  
Система	
  визуального	
  деплоя	
  
•    Валидирует	
  заявки	
  
•    Диагностирует	
  конфликты	
  между	
  заявками	
  
•    Выгружает	
  код	
  на	
  тестовые	
  сервера	
  
•    Генерирует	
  переводы	
  
Система	
  визуального	
  деплоя	
  
•      Валидирует	
  заявки	
  
•      Диагностирует	
  конфликты	
  между	
  заявками	
  
•      Выгружает	
  код	
  на	
  тестовые	
  сервера	
  
•      Генерирует	
  переводы	
  
•      Хранит	
  кучу	
  галочек	
  и	
  стрелочек	
  	
  

	
  
Система	
  перевода	
  
•  Меташаблоны	
  
Система	
  перевода	
  
•  Меташаблоны	
  
  –  Blitz	
  
  –  Вызовы	
  из	
  пхп	
  кода	
  из	
  шаблонов	
  
  –  Вызовы	
  как	
  маркеры	
  фраз	
  
Система	
  перевода	
  
•  Меташаблоны	
  
   –  Blitz	
  
   –  Вызовы	
  из	
  пхп	
  кода	
  из	
  шаблонов	
  
   –  Вызовы	
  как	
  маркеры	
  фраз	
  
•  Копия	
  шаблонов	
  для	
  каждого	
  языка	
  
Система	
  перевода	
  
•  Меташаблоны	
  
   –  Blitz	
  
   –  Вызовы	
  из	
  пхп	
  кода	
  из	
  шаблонов	
  
   –  Вызовы	
  как	
  маркеры	
  фраз	
  
•  Копия	
  шаблонов	
  для	
  каждого	
  языка	
  
•  Визуальный	
  перевод	
  
Визуальный	
  перевод	
  
Цикл	
  деплоя	
  функционала	
  
              	
  
              	
  
Цикл	
  деплоя	
  функционала	
  
Цикл	
  деплоя	
  функционала	
  
Цикл	
  деплоя	
  функционала	
  
Цикл	
  деплоя	
  функционала	
  
Как	
  не	
  надо	
  делать	
  деплой	
  


 На	
  проекте	
  с	
  нагрузкой	
  больше	
  1	
  
одновременного	
  запроса	
  на	
  сервер	
  
Как	
  не	
  надо	
  делать	
  деплой	
  
•  Нельзя	
  делать	
  копирование	
  в	
  бой	
  –	
  будут	
  
   сегфолты	
  
Как	
  нежелательно	
  делать	
  деплой	
  
•  Нельзя	
  копировать	
  в	
  соседнюю	
  папку	
  и	
  
   переключать	
  симлинк	
  
Graceful	
  restart	
  
Как	
  нежелательно	
  делать	
  деплой	
  
Нежелательно	
  выключать	
  рабочий	
  процесс	
  
	
  
Как	
  мы	
  делаем	
  деплой	
  
•  Разделили	
  процесс	
  доставки	
  кода	
  и	
  
   процесс	
  переключения	
  
Как	
  мы	
  делаем	
  деплой	
  
•  Разделили	
  процесс	
  доставки	
  кода	
  и	
  
   процесс	
  переключения	
  
•  Изменяем	
  document	
  root	
  и	
  перечитываем	
  
   конфиг	
  nginx	
  
Как	
  мы	
  делаем	
  деплой	
  
После	
  деплоя.	
  
       Демон	
  агрегации	
  статистики	
  
                        	
  
•  BTP:	
  Демон	
  сбора	
  статистики	
  
После	
  деплоя.	
  
      Демон	
  агрегации	
  статистики	
  
                       	
  
•  BTP:	
  Демон	
  сбора	
  статистики	
  
•  Большое	
  количество	
  счетчиков	
  и	
  таймеров	
  
   разного	
  уровня.	
  
После	
  деплоя.	
  
      Демон	
  агрегации	
  статистики	
  
                       	
  
•  BTP:	
  Демон	
  сбора	
  статистики	
  
•  Большое	
  количество	
  счетчиков	
  и	
  таймеров	
  
   разного	
  уровня.	
  
•  Циклическая	
  база	
  для	
  хранения	
  значений	
  
   до	
  года	
  
После	
  деплоя.	
  
      Демон	
  агрегации	
  статистики	
  
                       	
  
•  BTP:	
  Демон	
  сбора	
  статистики	
  
•  Большое	
  количество	
  счетчиков	
  и	
  таймеров	
  
   разного	
  уровня.	
  
•  Циклическая	
  база	
  для	
  хранения	
  значений	
  
   до	
  года	
  
•  Обновляется	
  в	
  реальном	
  времени	
  
После	
  деплоя	
  все	
  хорошо	
  
А	
  вот	
  что-­‐то	
  не	
  так	
  
Мы	
  настроили	
  дашборды	
  и	
  сидим	
  в	
  
     центре	
  управления	
  полетом	
  
О	
  чем	
  же	
  был	
  доклад?	
  

•  Git	
  быстрее	
  svn	
  из-­‐за	
  локальных	
  операций	
  
•  Визуальным	
  деплоем	
  пользуются	
  даже	
  
   менеджеры	
  
•  Деплой:	
  переключение	
  document	
  root	
  
•  Для	
  мониторинга	
  мы	
  написали	
  сервер	
  
   статистики	
  и	
  он	
  open	
  source	
  	
  
BTP	
  можно	
  найти	
  на	
  github	
  
•  h€ps://github.com/mambaru/btp-­‐daemon	
  
   Демон	
  
•  h€ps://github.com/mambaru/btp-­‐webui	
  	
  
   Web	
  интерфейс	
  
•  h€ps://github.com/mambaru/btp-­‐api	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
   Api	
  для	
  PHP	
  
Вопросы?	
  

	
  
	
  
	
  
          Михаил	
  Буйлов,	
  «Мамба»	
  
                 buylov@mamba.ru	
  
              github.com/mambaru	
  
                                      	
  
	
  

More Related Content

What's hot

Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Max Lapshin
 
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИСЭволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
2ГИС Технологии
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Anton Baranov
 
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Ontico
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
Ontico
 
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHP
Oleg Poludnenko
 
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...
corehard_by
 
Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥
Oleg Poludnenko
 
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Ontico
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Ontico
 
Salt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systemsSalt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systems
Alex Chistyakov
 
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
2ГИС Технологии
 
Максим Лапшин. Erlang production
Максим Лапшин. Erlang productionМаксим Лапшин. Erlang production
Максим Лапшин. Erlang production
Alina Dolgikh
 
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнBadoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Sergey Xek
 
Golang в avito
Golang в avitoGolang в avito
Golang в avito
AvitoTech
 
Erlang for Yandex
Erlang for YandexErlang for Yandex
Erlang for Yandex
Max Lapshin
 
Performance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskPerformance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon Saransk
Alex Chistyakov
 
Что и почему писать на Erlang
Что и почему писать на ErlangЧто и почему писать на Erlang
Что и почему писать на Erlang
Max Lapshin
 
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON
 

What's hot (20)

Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.
 
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИСЭволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
 
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
 
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHP
 
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...
 
Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥
 
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
Salt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systemsSalt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systems
 
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
 
Максим Лапшин. Erlang production
Максим Лапшин. Erlang productionМаксим Лапшин. Erlang production
Максим Лапшин. Erlang production
 
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнBadoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
 
Golang в avito
Golang в avitoGolang в avito
Golang в avito
 
Erlang for Yandex
Erlang for YandexErlang for Yandex
Erlang for Yandex
 
Performance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskPerformance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon Saransk
 
Что и почему писать на Erlang
Что и почему писать на ErlangЧто и почему писать на Erlang
Что и почему писать на Erlang
 
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
 

Similar to Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)

Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
Tanya Denisyuk
 
Иван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаИван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаYandex
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
Denis Tuchin
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
Positive Hack Days
 
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Ontico
 
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON
 
Про тестирование миграций
Про тестирование миграцийПро тестирование миграций
Про тестирование миграций
Roman Ivliev
 
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...it-people
 
Фламп на спидах или ка релизить каждый день
Фламп на спидах или ка релизить каждый деньФламп на спидах или ка релизить каждый день
Фламп на спидах или ка релизить каждый день
DevDay
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Ontico
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Anton Baranov
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
Yehor Herasymchuk
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
it-people
 
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Ontico
 
Иван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьИван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьDaria Oreshkina
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
Provectus
 
Инженерный дзен. Непрерывные изменения (Александр Титов)
Инженерный дзен. Непрерывные изменения (Александр Титов)Инженерный дзен. Непрерывные изменения (Александр Титов)
Инженерный дзен. Непрерывные изменения (Александр Титов)Ontico
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
Ontico
 

Similar to Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов) (20)

Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
 
Иван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаИван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проекта
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
 
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
 
Про тестирование миграций
Про тестирование миграцийПро тестирование миграций
Про тестирование миграций
 
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
 
Фламп на спидах или ка релизить каждый день
Фламп на спидах или ка релизить каждый деньФламп на спидах или ка релизить каждый день
Фламп на спидах или ка релизить каждый день
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
 
Gitlab devconf
Gitlab devconfGitlab devconf
Gitlab devconf
 
Иван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьИван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать жить
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
Инженерный дзен. Непрерывные изменения (Александр Титов)
Инженерный дзен. Непрерывные изменения (Александр Титов)Инженерный дзен. Непрерывные изменения (Александр Титов)
Инженерный дзен. Непрерывные изменения (Александр Титов)
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 

More from 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
 
Новые технологии репликации данных в 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
 
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
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Ontico
 
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Ontico
 

More from 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...
 
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...
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
 
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
 

Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)

  • 1. Цикл  разработки  и  внедрения   функционала  в  Мамбе   Михаил  Буйлов   «Мамба»  
  • 2. О  чем  доклад?   •  Основа  разработки  –  система  контроля   версий   •  Автоматизированная  система  деплоя  с  веб   интерфейсом   •  Проблемы  непосредственно  деплоя  кода   •  Как  мы  понимаем,  что  все  хорошо  
  • 3. Системы  контроля  версий  (VCS)   Мы  использовали   •  CVS   •  SVN   •  GIT  
  • 4. Проблемы  SVN   •  Тяжелые  операции  переключения  веток   •  Тяжелые  операции  мержа  и  поддержки   актуальности  веток    и  как  следствие     •  Разработка  в  транке  
  • 5. Проблемы  разработки  в  транке   •  Нет  стабильного  кода   –  Решение:    ConZnuous  IntegraZon  
  • 6. ConZnuous  IntegraZon   •  Коммит  в  транк  вызывает  старт  билда  
  • 7. ConZnuous  IntegraZon   •  Коммит  в  транк  вызывает  старт  билда   •  Сервер  билдов  –  jenkins  
  • 8. Проблемы  разработки  в  транке   •  Нет  стабильного  кода   •  Нет  боевого  кода  
  • 9. Проблемы  деплоя  при  разработки  в   транке   •  Его  нельзя  раскладывать  целиком.  Только   отдельные  файлы.  
  • 10. Проблемы  деплоя  при  разработки  в   транке   •  Его  нельзя  раскладывать  целиком.  Только   отдельные  файлы.   •  Деплой  нужно  производить  так  часто  как   это  возможно      
  • 11. Проблемы  деплоя  при  разработки  в   транке   •  Его  нельзя  раскладывать  целиком.  Только   отдельные  файлы.   •  Деплой  нужно  производить  так  часто  как   это  возможно     •  Нет  возможности  сегментировать  билд    
  • 12. Сегментация  билда   •  Структурирует  изменения  
  • 13. Сегментация  билда   •  Структурирует  изменения   •  Позволяет  автоматически  исключать  из   билда  нестабильный  функционал    
  • 14. Заявка     •  Строительный  элемент  билда  
  • 15.   Решение  проблем:     научится  разрабатывать  в  бранчах  
  • 16. Решение  всех  проблем:  переход  на  гит   •  Сильно  проще  работать  с  ветками.    
  • 17. Решение  всех  проблем:  переход  на  гит     •  Сильно  проще  работать  с  ветками.     •  Стабильный  мастер  позволит  делать  теги   для  аварийного  отката  
  • 18. Решение  всех  проблем:  переход  на  гит     •  Сильно  проще  работать  с  ветками.     •  Стабильный  мастер  позволит  делать  теги   для  аварийного  отката   •  Заявка  на  деплой  –  ветка  в  репозитории  
  • 19. Система  визуального  деплоя   •  Начиналась  со  списка  файлов  в  почте  
  • 20. Система  визуального  деплоя   •  Начиналась  со  списка  файлов  в  почте   •  Потом  появилась  форма,  для  списка   файлов(автоматизация!)  
  • 21. Система  визуального  деплоя   •  Валидирует  заявки  
  • 22. Валидация  заявок   •  Автоматический  merge  с  мастером   •  Проверка  корректности  разметки  шаблонов   •  Запуск  тестов  conZnuous  integraZon  
  • 23. Система  визуального  деплоя   •  Валидирует  заявки   •  Диагностирует  конфликты  между  заявками  
  • 24. Система  визуального  деплоя   •  Валидирует  заявки   •  Диагностирует  конфликты  между  заявками   •  Выгружает  код  на  тестовые  сервера  
  • 25. Система  визуального  деплоя   •  Валидирует  заявки   •  Диагностирует  конфликты  между  заявками   •  Выгружает  код  на  тестовые  сервера   •  Генерирует  переводы  
  • 26. Система  визуального  деплоя   •  Валидирует  заявки   •  Диагностирует  конфликты  между  заявками   •  Выгружает  код  на  тестовые  сервера   •  Генерирует  переводы   •  Хранит  кучу  галочек  и  стрелочек      
  • 27. Система  перевода   •  Меташаблоны  
  • 28. Система  перевода   •  Меташаблоны   –  Blitz   –  Вызовы  из  пхп  кода  из  шаблонов   –  Вызовы  как  маркеры  фраз  
  • 29. Система  перевода   •  Меташаблоны   –  Blitz   –  Вызовы  из  пхп  кода  из  шаблонов   –  Вызовы  как  маркеры  фраз   •  Копия  шаблонов  для  каждого  языка  
  • 30. Система  перевода   •  Меташаблоны   –  Blitz   –  Вызовы  из  пхп  кода  из  шаблонов   –  Вызовы  как  маркеры  фраз   •  Копия  шаблонов  для  каждого  языка   •  Визуальный  перевод  
  • 37. Как  не  надо  делать  деплой   На  проекте  с  нагрузкой  больше  1   одновременного  запроса  на  сервер  
  • 38. Как  не  надо  делать  деплой   •  Нельзя  делать  копирование  в  бой  –  будут   сегфолты  
  • 39. Как  нежелательно  делать  деплой   •  Нельзя  копировать  в  соседнюю  папку  и   переключать  симлинк  
  • 41. Как  нежелательно  делать  деплой   Нежелательно  выключать  рабочий  процесс    
  • 42. Как  мы  делаем  деплой   •  Разделили  процесс  доставки  кода  и   процесс  переключения  
  • 43. Как  мы  делаем  деплой   •  Разделили  процесс  доставки  кода  и   процесс  переключения   •  Изменяем  document  root  и  перечитываем   конфиг  nginx  
  • 44. Как  мы  делаем  деплой  
  • 45. После  деплоя.   Демон  агрегации  статистики     •  BTP:  Демон  сбора  статистики  
  • 46. После  деплоя.   Демон  агрегации  статистики     •  BTP:  Демон  сбора  статистики   •  Большое  количество  счетчиков  и  таймеров   разного  уровня.  
  • 47. После  деплоя.   Демон  агрегации  статистики     •  BTP:  Демон  сбора  статистики   •  Большое  количество  счетчиков  и  таймеров   разного  уровня.   •  Циклическая  база  для  хранения  значений   до  года  
  • 48. После  деплоя.   Демон  агрегации  статистики     •  BTP:  Демон  сбора  статистики   •  Большое  количество  счетчиков  и  таймеров   разного  уровня.   •  Циклическая  база  для  хранения  значений   до  года   •  Обновляется  в  реальном  времени  
  • 50. А  вот  что-­‐то  не  так  
  • 51. Мы  настроили  дашборды  и  сидим  в   центре  управления  полетом  
  • 52. О  чем  же  был  доклад?   •  Git  быстрее  svn  из-­‐за  локальных  операций   •  Визуальным  деплоем  пользуются  даже   менеджеры   •  Деплой:  переключение  document  root   •  Для  мониторинга  мы  написали  сервер   статистики  и  он  open  source    
  • 53. BTP  можно  найти  на  github   •  h€ps://github.com/mambaru/btp-­‐daemon   Демон   •  h€ps://github.com/mambaru/btp-­‐webui     Web  интерфейс   •  h€ps://github.com/mambaru/btp-­‐api                     Api  для  PHP  
  • 54. Вопросы?         Михаил  Буйлов,  «Мамба»   buylov@mamba.ru   github.com/mambaru