Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Цикл	  разработки	  и	  внедрения	     функционала	  в	  Мамбе	              Михаил	  Буйлов	                «Мамба»	  
О	  чем	  доклад?	  •  Основа	  разработки	  –	  система	  контроля	     версий	  •  Автоматизированная	  система	  деплоя...
Системы	  контроля	  версий	  (VCS)	                Мы	  использовали	  •  CVS	  •  SVN	  •  GIT	  
Проблемы	  SVN	  •  Тяжелые	  операции	  переключения	  веток	  •  Тяжелые	  операции	  мержа	  и	  поддержки	        акту...
Проблемы	  разработки	  в	  транке	  •  Нет	  стабильного	  кода	     –  Решение:	  	  ConZnuous	  IntegraZon	  
ConZnuous	  IntegraZon	  •  Коммит	  в	  транк	  вызывает	  старт	  билда	  
ConZnuous	  IntegraZon	  •  Коммит	  в	  транк	  вызывает	  старт	  билда	  •  Сервер	  билдов	  –	  jenkins	  
Проблемы	  разработки	  в	  транке	  •  Нет	  стабильного	  кода	  •  Нет	  боевого	  кода	  
Проблемы	  деплоя	  при	  разработки	  в	                 транке	  •  Его	  нельзя	  раскладывать	  целиком.	  Только	    ...
Проблемы	  деплоя	  при	  разработки	  в	                 транке	  •  Его	  нельзя	  раскладывать	  целиком.	  Только	    ...
Проблемы	  деплоя	  при	  разработки	  в	                 транке	  •  Его	  нельзя	  раскладывать	  целиком.	  Только	    ...
Сегментация	  билда	  •  Структурирует	  изменения	  
Сегментация	  билда	  •  Структурирует	  изменения	  •  Позволяет	  автоматически	  исключать	  из	     билда	  нестабильн...
Заявка	  	  •  Строительный	  элемент	  билда	  
        Решение	  проблем:	  	  научится	  разрабатывать	  в	  бранчах	  
Решение	  всех	  проблем:	  переход	  на	  гит	  •  Сильно	  проще	  работать	  с	  ветками.	  	  
Решение	  всех	  проблем:	  переход	  на	  гит	  	  •  Сильно	  проще	  работать	  с	  ветками.	  	  •  Стабильный	  масте...
Решение	  всех	  проблем:	  переход	  на	  гит	  	  •  Сильно	  проще	  работать	  с	  ветками.	  	  •  Стабильный	  масте...
Система	  визуального	  деплоя	  •  Начиналась	  со	  списка	  файлов	  в	  почте	  
Система	  визуального	  деплоя	  •  Начиналась	  со	  списка	  файлов	  в	  почте	  •  Потом	  появилась	  форма,	  для	  ...
Система	  визуального	  деплоя	  •  Валидирует	  заявки	  
Валидация	  заявок	  •  Автоматический	  merge	  с	  мастером	  •  Проверка	  корректности	  разметки	  шаблонов	  •  Запу...
Система	  визуального	  деплоя	  •  Валидирует	  заявки	  •  Диагностирует	  конфликты	  между	  заявками	  
Система	  визуального	  деплоя	  •  Валидирует	  заявки	  •  Диагностирует	  конфликты	  между	  заявками	  •  Выгружает	 ...
Система	  визуального	  деплоя	  •    Валидирует	  заявки	  •    Диагностирует	  конфликты	  между	  заявками	  •    Выгру...
Система	  визуального	  деплоя	  •      Валидирует	  заявки	  •      Диагностирует	  конфликты	  между	  заявками	  •     ...
Система	  перевода	  •  Меташаблоны	  
Система	  перевода	  •  Меташаблоны	    –  Blitz	    –  Вызовы	  из	  пхп	  кода	  из	  шаблонов	    –  Вызовы	  как	  мар...
Система	  перевода	  •  Меташаблоны	     –  Blitz	     –  Вызовы	  из	  пхп	  кода	  из	  шаблонов	     –  Вызовы	  как	  ...
Система	  перевода	  •  Меташаблоны	     –  Blitz	     –  Вызовы	  из	  пхп	  кода	  из	  шаблонов	     –  Вызовы	  как	  ...
Визуальный	  перевод	  
Цикл	  деплоя	  функционала	                	                	  
Цикл	  деплоя	  функционала	  
Цикл	  деплоя	  функционала	  
Цикл	  деплоя	  функционала	  
Цикл	  деплоя	  функционала	  
Как	  не	  надо	  делать	  деплой	   На	  проекте	  с	  нагрузкой	  больше	  1	  одновременного	  запроса	  на	  сервер	  
Как	  не	  надо	  делать	  деплой	  •  Нельзя	  делать	  копирование	  в	  бой	  –	  будут	     сегфолты	  
Как	  нежелательно	  делать	  деплой	  •  Нельзя	  копировать	  в	  соседнюю	  папку	  и	     переключать	  симлинк	  
Graceful	  restart	  
Как	  нежелательно	  делать	  деплой	  Нежелательно	  выключать	  рабочий	  процесс	  	  
Как	  мы	  делаем	  деплой	  •  Разделили	  процесс	  доставки	  кода	  и	     процесс	  переключения	  
Как	  мы	  делаем	  деплой	  •  Разделили	  процесс	  доставки	  кода	  и	     процесс	  переключения	  •  Изменяем	  docu...
Как	  мы	  делаем	  деплой	  
После	  деплоя.	         Демон	  агрегации	  статистики	                          	  •  BTP:	  Демон	  сбора	  статистики	  
После	  деплоя.	        Демон	  агрегации	  статистики	                         	  •  BTP:	  Демон	  сбора	  статистики	  ...
После	  деплоя.	        Демон	  агрегации	  статистики	                         	  •  BTP:	  Демон	  сбора	  статистики	  ...
После	  деплоя.	        Демон	  агрегации	  статистики	                         	  •  BTP:	  Демон	  сбора	  статистики	  ...
После	  деплоя	  все	  хорошо	  
А	  вот	  что-­‐то	  не	  так	  
Мы	  настроили	  дашборды	  и	  сидим	  в	       центре	  управления	  полетом	  
О	  чем	  же	  был	  доклад?	  •  Git	  быстрее	  svn	  из-­‐за	  локальных	  операций	  •  Визуальным	  деплоем	  пользую...
BTP	  можно	  найти	  на	  github	  •  h€ps://github.com/mambaru/btp-­‐daemon	     Демон	  •  h€ps://github.com/mambaru/bt...
Вопросы?	  	  	  	            Михаил	  Буйлов,	  «Мамба»	                   buylov@mamba.ru	                github.com/mam...
Upcoming SlideShare
Loading in …5
×

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

2,174 views

Published on

  • Be the first to comment

  • Be the first to like this

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

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

×