How 2 deploy 5 times per day | Continuos deployment
-
Upload
andrii-shumada -
Category
Software
-
view
346 -
download
0
description
Transcript of How 2 deploy 5 times per day | Continuos deployment
![Page 1: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/1.jpg)
Continuous deployment, абоЯк деплоїти 5 раз за день
Андрій Шумада
![Page 2: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/2.jpg)
Про мене
Debitoor.com
Hvz.kiev.ua
eagleeye_s
eagleeye
![Page 3: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/3.jpg)
Ахтунг!
![Page 4: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/4.jpg)
2 дева
![Page 5: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/5.jpg)
2 деви + git rebase
![Page 6: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/6.jpg)
Стране нужна … ?
![Page 7: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/7.jpg)
![Page 8: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/8.jpg)
SCRUM
Пул задач на 2 тижні
Реліз кожних 2 тижні, або більше
Всі працюють в одній вітці (master)
Стабильность -> release
Master -> playground.xxx.com
Release -> staging.xxx.com -> xxx.com
![Page 9: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/9.jpg)
8 девів – master + release
![Page 10: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/10.jpg)
А як насправді?
Реліз запланований на день Х
Зарелізились в день Х + 10
![Page 11: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/11.jpg)
еееее…
![Page 12: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/12.jpg)
Чого затягується реліз?
Трабли після merge release -> master
Під кінець спрінта хтось сів рефакторити (фотка мене)
Фіча велика, не піддається розбиттю на декілька спринтів
Переоцінили свої сили
Спочатку недооціинли свої сили.. А потім переоцінили їх…
Хтось щось поламав.. Всі чекають..
Мокапи помінялись під кінець спрінта
![Page 13: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/13.jpg)
Всі чекають..
..або пилять наступний спрінт в master
…реліз затягується..
![Page 14: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/14.jpg)
Давайте
Релізитись частіше
(5 раз в день)
Не мішати один одному
Не чекати один одного
![Page 15: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/15.jpg)
Branches
![Page 16: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/16.jpg)
Основні принципи
Одна фіча – один бранч, в одному пул реквесті
При конфліктах – master завжди правий
В мастер попадають бранчі в вигляді одного коміта (--squash) - легко ревертити
Вітка завжди повинна містити останній мастер
QA – тестити треба завжди останній master + feature
В рамках однієї бранчі працювати в –rebase режимі
![Page 17: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/17.jpg)
Master завжди правий
Після кожного релізу
master -> featureBranch
![Page 18: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/18.jpg)
Як розібратись що ревертити?
git merge featureBranch - -squash
git commit –m ‘New feature, fixes #43’
![Page 19: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/19.jpg)
Як перевірити, чи девелопер змерджив master?
#!/bin/sh
echo 'detecting latest master..'
localHistory=`git log -n 50 --pretty=format:"%H"`
latestMaster=`git ls-remote origin master | awk '{print $1;}'`
echo "latest master: $latestMaster"
if echo "$localHistory" | grep -q "$latestMaster"; then
echo "branch has latest master"
else
echo "branch doesn't have latest master"
exit 1
fi
![Page 20: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/20.jpg)
Переваги
Роблю фічу скільки хочу, час ніколи не піджимає
Легше знайти винного..
В разі проблем на продакшені відкатується лише одна фіча
Не блокуються і не відкатуються інші фічі..
Фічі появляються швидше в продакшені
Область тестування завжди обмежена
![Page 21: How 2 deploy 5 times per day | Continuos deployment](https://reader034.fdocuments.net/reader034/viewer/2022052507/558ead991a28ab83708b472f/html5/thumbnails/21.jpg)
І це працює!