Фламп на спидах или ка релизить каждый день

979 views

Published on

Вместе с Алексеем Ашурком мы расскажем о том, как проект «Фламп» релизится по 2n раз в неделю и комфортно себя при этом чувствует:

— Ветки - это хорошо или о переходе с SVN на Git.
— Чем плоха «классическая» модель релизов.
— Что такое модель пофичных релизов, в чём её плюсы и минусы.
— Почему она подходит для веб-сервисов.
— Как идти в ногу со временем или частые деплои.
— Как ловить ошибки и минимизировать их число.

Видео доклада: http://devday.2gis.ru/report/15

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
979
On SlideShare
0
From Embeds
0
Number of Embeds
336
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Фламп на спидах или ка релизить каждый день

  1. 1. Фламп на спидах, или как релизить каждый день DevDay 21.09.201218+
  2. 2. Кто все эти люди? Александр Миронов:○ веб-разработчик;○ в прошлом фрилансер;○ готовил Сибирские интернет-недели;○ в команде Флампа с июля 2011;○ внедрил Git.
  3. 3. Кто все эти люди? Алексей Ашурок:○ работал в НИИ Измерительных Приборов;○ во Флампе с февраля 2011;○ автор «Метода Ашурка»;
  4. 4. Кто все эти люди?Алексей Ашурок
  5. 5. Кто все эти люди?Алексей Ашурок
  6. 6. Кто все эти люди?Алексей Ашурок
  7. 7. Кто все эти люди? Алексей Ашурок:○ работал в НИИ Измерительных Приборов;○ во Флампе с февраля 2011;○ автор «Метода Ашурка»; Инженер-конструктор (sic!) 3 категории макетно-инструментального производства!
  8. 8. О чём пойдёт речь?○ Почему ветки — это хорошо? Переход с SVN на Git.
  9. 9. О чём пойдёт речь?○ Почему ветки — это хорошо? Переход с SVN на Git.○ Чем плоха «классическая» модель релизов?
  10. 10. О чём пойдёт речь?○ Почему ветки — это хорошо? Переход с SVN на Git.○ Чем плоха «классическая» модель релизов?○ Что такое модель пофичных релизов? Почему она хорошо подходит веб-сервисам?
  11. 11. О чём пойдёт речь?○ Почему ветки — это хорошо? Переход с SVN на Git.○ Чем плоха «классическая» модель релизов?○ Что такое модель пофичных релизов? Почему она хорошо подходит веб-сервисам?○ Как идти в ногу со временем? (О частых деплоях)
  12. 12. О чём пойдёт речь?○ Почему ветки — это хорошо? Переход с SVN на Git.○ Чем плоха «классическая» модель релизов?○ Что такое модель пофичных релизов? Почему она хорошо подходит веб-сервисам?○ Как идти в ногу со временем? (О частых деплоях)○ Как ловить ошибки и минимизировать их число?
  13. 13. Ветки — хорошо?«If you are using Subversion, stop it. Just stop.Subversion = Leeches. Mercurial and Git =Antibiotics. We have better technology now» Joel Spolsky
  14. 14. Ветки — хорошо? Ветки
  15. 15. Ветки — хорошо?
  16. 16. Ветки — хорошо? Divide et impera
  17. 17. Ветки — хорошо!○ Изоляция и стабилизация кода
  18. 18. Начинали с SVN:
  19. 19. Мёржинг в SVN — боль.
  20. 20. Надоело. Перешли на Git.
  21. 21. Git — хорошо?○ распределённая VCS;○ изменения вместо версий;○ предельно простой мёржинг и бранчинг.
  22. 22. Git — хорошо! SVN Git Сравнительная диаграмма
  23. 23. Классическая модель релизов: feature1 feature2 QA feature3 v1.0 release/v1.0 master develop (trunk) Модель «снежного кома»
  24. 24. Классическая модель релизов:
  25. 25. Медленно!
  26. 26. Решение?
  27. 27. Features!
  28. 28. Feature-based релизы:○ фичи разрабатываются и тестируются в отдельных бранчах;
  29. 29. Feature-based релизы:○ фичи разрабатываются и тестируются в отдельных бранчах;○ сборка релиза (одна или несколько фич?);
  30. 30. Feature-based релизы:○ фичи разрабатываются и тестируются в отдельных бранчах;○ сборка релиза (одна или несколько фич?);○ unit- и functional- тесты (Selenium);
  31. 31. Feature-based релизы:○ фичи разрабатываются и тестируются в отдельных бранчах;○ сборка релиза (одна или несколько фич?);○ unit- и functional- тесты (Selenium);○ Jenkins прогоняет тесты перед релизом.
  32. 32. Feature-based релизы: QA QA Jenkins feature1 feature2 release/v1.0 v1.0 develop master Модель «пофичных релизов»
  33. 33. Git-flow«A successful branching model»
  34. 34. Git-flow:○ 2 основные ветки: develop и master;○ вспомогательные feature, hotfix, release ветки;○ имеется решение для максимальной автоматизации бранчинга: git flow feature start login-page git flow feature finish login-page
  35. 35. Кому подходит?
  36. 36. Веб-сервисам!
  37. 37. Кому подходит?○ небольшие изменения каждый день;
  38. 38. Кому подходит?○ небольшие изменения каждый день;○ доставляем сразу всем пользователям (мы же в вебе!);
  39. 39. Кому подходит?○ небольшие изменения каждый день;○ доставляем сразу всем пользователям (мы же в вебе!);○ всегда можем откатиться в случае чего.
  40. 40. Nginx:○ пускать/не пускать;
  41. 41. Nginx:○ пускать/не пускать;○ распределять нагрузку.
  42. 42. Git: pull!1
  43. 43. Git: pull!!1
  44. 44. Phing:○ Дельты ○ CSS/JS ○ Конфиги
  45. 45. Присматриваем за ошибками:
  46. 46. Присматриваем за ошибками:
  47. 47. Присматриваем за ошибками: Pinba
  48. 48. Присматриваем за ошибками: Котятки Пользователи
  49. 49. Профит:
  50. 50. Профит:○ 11 релизов за первые 10 дней внедрения модели. Зависимость!
  51. 51. Профит:○ 11 релизов за первые 10 дней внедрения модели.○ Юзеры счастливы!
  52. 52. Профит:○ 11 релизов за первые 10 дней внедрения модели.○ Юзеры счастливы!○ Девелоперы счастливы!
  53. 53. Профит:○ 11 релизов за первые 10 дней внедрения модели.○ Юзеры счастливы!○ Девелоперы счастливы!○ QA идёт в ногу со временем.
  54. 54. Полезные ссылки: http://go.2gis.ru/xkbe
  55. 55. Спасибо! Вопросы?

×