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