SlideShare a Scribd company logo
1 of 35
Software Craftsmanship
meetup #8
Continuous Integration
Continuous Deployment
Continuous Delivery
Павел Вейник
CTO @ Splitmetrics
CEO @ Hard & Soft Skills
Зачем митапы?
Поделиться с разработчиками
Узнать что-то интересное
Обкатать новый курс для тимлидов
Обкатать новый курс для техлидов и
архитекторов
Пообщаться
Для кого митапы?
Для разработчиков и архитекторов
Для тестировщиков
Для тимлидов и менеджеров
Continuous integration doesn't get rid of bugs,
but it does make them dramatically easier to find
and remove. Martin Fowler
Мы на новом месте
Зарегистрировались 187 человек
Наш первый митап в ШАГе
План митапов
1. Software Craftsmanship & Agile.
Как не делать говно?
2. Принципы хранения данных
3. Обзор баз данных
4. Очереди сообщений
5. Кэши и файловые хранилища
План митапов
6. Как Software Craftsmanship фиксит проблемы Agile
7. БД: проектирование, масштабирование,
шардирование, реплицирование…
8. Процессы и инструменты для CI/CD
9. Логгирование и мониторинг
10. Распределенные транзакции
План этого митапа
1. Что такое CI/CD
2. Польза и недостатки
3. Внедрение в ваши процессы
4. Инструменты
5. Вопросы
Continuous Integration
Все что до попадания кода в trunk
Статический анализ кода
Тестовые сборки
Автотесты
Continuous Delivery
Continuous Integration +
Автоматизированный процесс релиза
на прод
Этот процесс запускается руками
Continuous Deployment
Continuous Delivery +
Автоматизированный процесс релиза
на прод
Этот процесс запускается
автоматически
Continuous Integration –чего
стоит
Писать тесты на каждый чих – фичу, баг,
improvement
CI server должен запускать тесты по
пушам в git
Мержить как можно чаще
Continuous Integration – что
дает
Меньше багов проходит в прод из-за
автотестов
Сборка релиза быстрее, тк интеграция
проверена на ранних этапах
Меньше переключений
Continuous Integration – что
дает
Стоимость тестов меньше на порядки
Команда QA фокусируется на QA, а не на
QC
Continuous Delivery – чего
стоит
Хорошо работающий CI
Автоматические деплои
Использовать Feature flags чтобы
закрывать несделанные фичи
Continuous Delivery – что дает
Деплой без усилий и без десяток проверок и
валидаций
Можно релизить так часто как только хочешь
Проще релизить мелкие вещи, короче
итерации, быстрее feedback
Continuous Deployment – что
дает
Хороший процесс QA, а не QC
Грамотная документация
Feature flags абсолютно необходимы
Continuous Deployment – что
дает
Не нужно готовить и проверять релизы
Меньше рисков при релизах
Постоянный поток улучшений для
клиента
CI/CD для бизнеса
Темп релизов
Продуктивность, автоматизация рутины.
Мозги – важному, остальное – машинам
Устойчивость за счет автоматизации
рутины
CI/CD для бизнеса
Вложения
Необходимость жесткой приоритезации
задач
Риски процессных изменений
Внедрение CI/CD/CD
CI/CD/CD – это конвейер
Требует
Новых процессов
Новых инструментов
Внедрение CI/CD/CD
Нельзя начинать CI с выбора
инструментов
Нужно начинать с изменения культуры и
процессов, только потом – инструменты
Изменения в процессах
Автотесты
Приоритеты
Планирование и выполнение
Мелкие изменения
Ответственность за каждую строку
Коммуникации в команде и вне
Актуальная документация
Изменения в процессах
Вы действительно к этому готовы?
Нередко CI начинается и заканчивается спорами
об инструментах
Каждый имеет свое мнение
Никто не может договориться
Внедрение CI/CD/CD
Подходит не везде
Сложнее с монолитами
Легче с микросервисами
Сложно с mission critical системами
Больше этапов ручных проверок
Внедрение CI/CD/CD
Хорошо для front и middleware
Микросервисы
SaaS
Ecommerce
Веб-разработка
Внедрение CI/CD/CD
Недостаточно поддержки менеджмента
Недооценка изменений культуры
Нет фиксированных целей внедрения в
конкретный проект
Нет плана внедрения
Внедрение CI/CD/CD
Смута в результате изменения ролей и
ответственности
Недооценка технической сложности
внедрения
Неверная стратегия автоматизации тестов
Инструменты
Контейнеризация/деплой
Выполнение задач/скриптов
CI Services
Jenkins
TeamCity
Travis CI
Gitlab CI
Bitbucket Pipelines
Circle CI
Bamboo
Buddy
CodeShip
GoCD
Wercker
И еще десятки
Ссылки
Понятия
 https://www.plutora.com/ci-cd-tools
 https://tproger.ru/blogs/ci-cd/
 https://www.atlassian.com/continuous-delivery/principles/business-value
 https://www.plutora.com/blog/continuous-integration-continuous-delivery-continuous-deployment
 https://thenewstack.io/understanding-the-difference-between-ci-and-cd/
 https://www.netsolutions.com/insights/business-benefits-of-ci-cd/
 https://www.intellias.com/the-pros-and-cons-of-ci-cd-for-fintech/
Риски
 https://abstracta.us/insights/resource/transitioning-to-CICD.pdf
 https://habr.com/ru/company/true_engineering/blog/426821
 https://testcollab.com/blog/ci-cd-pipelines/
Ссылки
Понятия
 https://www.plutora.com/ci-cd-tools
 https://tproger.ru/blogs/ci-cd/
 https://www.atlassian.com/continuous-delivery/principles/business-value
 https://www.plutora.com/blog/continuous-integration-continuous-delivery-continuous-deployment
 https://thenewstack.io/understanding-the-difference-between-ci-and-cd/
 https://www.netsolutions.com/insights/business-benefits-of-ci-cd/
 https://www.intellias.com/the-pros-and-cons-of-ci-cd-for-fintech/
Риски
 https://abstracta.us/insights/resource/transitioning-to-CICD.pdf
 https://habr.com/ru/company/true_engineering/blog/426821
 https://testcollab.com/blog/ci-cd-pipelines/
Ссылки
А как у них
 https://habr.com/ru/company/true_engineering/blog/426821/
 https://habr.com/ru/company/yandex/blog/237017/
 https://www.slideshare.net/chaddickerson/continuous-deployment-at-etsy-sxsw-lean-startup-track
 https://toni.org/2010/05/19/in-praise-of-continuous-deployment-the-wordpress-com-story/
 https://www.forbes.com/sites/steveblank/2014/01/03/tesla-and-adobe-why-continuous-deployment-may-
mean-continuous-customer-disappointment/#59ddd5be13bc
 https://medium.com/airbnb-engineering/testing-at-airbnb-199f68a0a40d#.owpgrk8hl
 https://habr.com/ru/company/southbridge/blog/329262/
Best practices
 https://techblog.rakuten.co.jp/2018/02/06/cd-the-best-practice/
Ссылки
Книги
 https://www.amazon.com/Continuous-Delivery-DevOps-Quickstart-successful/dp/1788995473/ref=sr_1_1
 https://www.amazon.com/Continuous-Integration-Delivery-Deployment-automating-
ebook/dp/B01N3C5ECP/ref=sr_1_1
 https://www.amazon.com/Hands-Continuous-Integration-Delivery-software-
ebook/dp/B07F2KCM75/ref=sr_1_1
 https://www.amazon.com/Continuous-Delivery-Docker-Jenkins-Delivering-ebook/dp/B0756FCZQY
 https://www.amazon.com/Continuous-Delivery-Java-Essential-Production/dp/1491986026
 https://www.amazon.com/Jenkins-Essentials-Mitesh-Soni/dp/1783553472/ref=cm_cr_arp_d_product_top
Задайте мне вопрос

More Related Content

What's hot

Software craftsmanship 7
Software craftsmanship 7Software craftsmanship 7
Software craftsmanship 7Pavel Veinik
 
Software craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsSoftware craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsPavel Veinik
 
Жизнь в стиле стартап в корпоративной среде: Agile в помощь?
Жизнь в стиле стартап в корпоративной среде: Agile в помощь?Жизнь в стиле стартап в корпоративной среде: Agile в помощь?
Жизнь в стиле стартап в корпоративной среде: Agile в помощь?ScrumTrek
 
Дмитрий Грибов, Трава и грибы как средства управления разработкой
Дмитрий Грибов, Трава и грибы как средства управления разработкойДмитрий Грибов, Трава и грибы как средства управления разработкой
Дмитрий Грибов, Трава и грибы как средства управления разработкойScrumTrek
 
Константин Бажин, ТОП 10 не могу или что нужно сделать, чтобы жить по Agile
Константин Бажин, ТОП 10 не могу или что нужно сделать, чтобы жить по AgileКонстантин Бажин, ТОП 10 не могу или что нужно сделать, чтобы жить по Agile
Константин Бажин, ТОП 10 не могу или что нужно сделать, чтобы жить по AgileScrumTrek
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software DevelopmentDmytro Mindra
 
Процесс Mindbox 2015
Процесс Mindbox 2015Процесс Mindbox 2015
Процесс Mindbox 2015Alexander Gornik
 
Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAlexey Deryushkin
 
131024 производственное планирование как метод решения проблем itsm forum r...
131024   производственное планирование как метод решения проблем itsm forum r...131024   производственное планирование как метод решения проблем itsm forum r...
131024 производственное планирование как метод решения проблем itsm forum r...Андрей Степенко
 
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Pavel Veinik
 
вебинар 2601 эффективность интернет магазина
вебинар 2601 эффективность интернет магазинавебинар 2601 эффективность интернет магазина
вебинар 2601 эффективность интернет магазинаАндрей Степенко
 
System Engineering Webinar
System Engineering WebinarSystem Engineering Webinar
System Engineering WebinarPavel Veinik
 
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!ScrumTrek
 
2019 advanced mod_2_lesson_3_agile_principles
2019 advanced mod_2_lesson_3_agile_principles2019 advanced mod_2_lesson_3_agile_principles
2019 advanced mod_2_lesson_3_agile_principlesAlexander Radich
 
Software craftsmanship 1
Software craftsmanship 1Software craftsmanship 1
Software craftsmanship 1Pavel Veinik
 
Роль ретроспектив в создании эффективного процесса разработки
Роль ретроспектив в создании эффективного процесса разработкиРоль ретроспектив в создании эффективного процесса разработки
Роль ретроспектив в создании эффективного процесса разработкиDmitry Lobasev
 

What's hot (20)

Software craftsmanship 7
Software craftsmanship 7Software craftsmanship 7
Software craftsmanship 7
 
Software craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsSoftware craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systems
 
Жизнь в стиле стартап в корпоративной среде: Agile в помощь?
Жизнь в стиле стартап в корпоративной среде: Agile в помощь?Жизнь в стиле стартап в корпоративной среде: Agile в помощь?
Жизнь в стиле стартап в корпоративной среде: Agile в помощь?
 
Дмитрий Грибов, Трава и грибы как средства управления разработкой
Дмитрий Грибов, Трава и грибы как средства управления разработкойДмитрий Грибов, Трава и грибы как средства управления разработкой
Дмитрий Грибов, Трава и грибы как средства управления разработкой
 
Константин Бажин, ТОП 10 не могу или что нужно сделать, чтобы жить по Agile
Константин Бажин, ТОП 10 не могу или что нужно сделать, чтобы жить по AgileКонстантин Бажин, ТОП 10 не могу или что нужно сделать, чтобы жить по Agile
Константин Бажин, ТОП 10 не могу или что нужно сделать, чтобы жить по Agile
 
20070414 Toc Pm
20070414 Toc Pm20070414 Toc Pm
20070414 Toc Pm
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
Процесс Mindbox 2015
Процесс Mindbox 2015Процесс Mindbox 2015
Процесс Mindbox 2015
 
Agile testing
Agile testingAgile testing
Agile testing
 
Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в Райффайзенбанке
 
131024 производственное планирование как метод решения проблем itsm forum r...
131024   производственное планирование как метод решения проблем itsm forum r...131024   производственное планирование как метод решения проблем itsm forum r...
131024 производственное планирование как метод решения проблем itsm forum r...
 
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
 
Scrum practic
Scrum practicScrum practic
Scrum practic
 
вебинар 2601 эффективность интернет магазина
вебинар 2601 эффективность интернет магазинавебинар 2601 эффективность интернет магазина
вебинар 2601 эффективность интернет магазина
 
20100309-DBR potencial
20100309-DBR potencial20100309-DBR potencial
20100309-DBR potencial
 
System Engineering Webinar
System Engineering WebinarSystem Engineering Webinar
System Engineering Webinar
 
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!
 
2019 advanced mod_2_lesson_3_agile_principles
2019 advanced mod_2_lesson_3_agile_principles2019 advanced mod_2_lesson_3_agile_principles
2019 advanced mod_2_lesson_3_agile_principles
 
Software craftsmanship 1
Software craftsmanship 1Software craftsmanship 1
Software craftsmanship 1
 
Роль ретроспектив в создании эффективного процесса разработки
Роль ретроспектив в создании эффективного процесса разработкиРоль ретроспектив в создании эффективного процесса разработки
Роль ретроспектив в создании эффективного процесса разработки
 

Similar to Software craftsmanship 8

Software craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgileSoftware craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgilePavel Veinik
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CICEE-SEC(R)
 
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps_Fest
 
SCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max KolodezniySCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max KolodezniyAlexey Krivitsky
 
Петр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRMПетр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRMScrumTrek
 
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...CEE-SEC(R)
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...RIF-Technology
 
Sdlc by Anatoliy Anthony Cox
Sdlc by  Anatoliy Anthony CoxSdlc by  Anatoliy Anthony Cox
Sdlc by Anatoliy Anthony CoxAlex Tumanoff
 
AgileCamp’11 Новосибирск - Continuous Integration (CI)
AgileCamp’11 Новосибирск - Continuous Integration (CI)AgileCamp’11 Новосибирск - Continuous Integration (CI)
AgileCamp’11 Новосибирск - Continuous Integration (CI)Anton Katkov
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.ScrumTrek
 
Agile на Смертельном Марше
Agile на Смертельном МаршеAgile на Смертельном Марше
Agile на Смертельном МаршеNikita Filippov
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Agile.by - Agileee season 3 - Agile Testing by Elisabeth Hendrickson
Agile.by  - Agileee season 3 - Agile Testing by Elisabeth HendricksonAgile.by  - Agileee season 3 - Agile Testing by Elisabeth Hendrickson
Agile.by - Agileee season 3 - Agile Testing by Elisabeth HendricksonNick Frolov
 
Оценка эффективности от внедрения и использования методологии и инструменталь...
Оценка эффективности от внедрения и использования методологии и инструменталь...Оценка эффективности от внедрения и использования методологии и инструменталь...
Оценка эффективности от внедрения и использования методологии и инструменталь...Alexander Novichkov
 
Ad 2009 - agile в кризис
Ad 2009 - agile в кризисAd 2009 - agile в кризис
Ad 2009 - agile в кризисAlexey Korsun
 
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...Yury Vetrov
 
Гибкие методологии при создании ИТ продукта.
Гибкие методологии при создании ИТ продукта.Гибкие методологии при создании ИТ продукта.
Гибкие методологии при создании ИТ продукта.Project Management Institute (PMI) in Ufa
 

Similar to Software craftsmanship 8 (20)

Software craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgileSoftware craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы Agile
 
TECHNATION - Internal IT Processes (Rus)
TECHNATION - Internal IT Processes (Rus)TECHNATION - Internal IT Processes (Rus)
TECHNATION - Internal IT Processes (Rus)
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
 
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
 
SCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max KolodezniySCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max Kolodezniy
 
AgileDays11 Resume
AgileDays11 ResumeAgileDays11 Resume
AgileDays11 Resume
 
Петр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRMПетр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRM
 
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
 
Sdlc by Anatoliy Anthony Cox
Sdlc by  Anatoliy Anthony CoxSdlc by  Anatoliy Anthony Cox
Sdlc by Anatoliy Anthony Cox
 
AgileCamp’11 Новосибирск - Continuous Integration (CI)
AgileCamp’11 Новосибирск - Continuous Integration (CI)AgileCamp’11 Новосибирск - Continuous Integration (CI)
AgileCamp’11 Новосибирск - Continuous Integration (CI)
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
 
Agile на Смертельном Марше
Agile на Смертельном МаршеAgile на Смертельном Марше
Agile на Смертельном Марше
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Agile.by - Agileee season 3 - Agile Testing by Elisabeth Hendrickson
Agile.by  - Agileee season 3 - Agile Testing by Elisabeth HendricksonAgile.by  - Agileee season 3 - Agile Testing by Elisabeth Hendrickson
Agile.by - Agileee season 3 - Agile Testing by Elisabeth Hendrickson
 
Оценка эффективности от внедрения и использования методологии и инструменталь...
Оценка эффективности от внедрения и использования методологии и инструменталь...Оценка эффективности от внедрения и использования методологии и инструменталь...
Оценка эффективности от внедрения и использования методологии и инструменталь...
 
Ad 2009 - agile в кризис
Ad 2009 - agile в кризисAd 2009 - agile в кризис
Ad 2009 - agile в кризис
 
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
 
Гибкие методологии при создании ИТ продукта.
Гибкие методологии при создании ИТ продукта.Гибкие методологии при создании ИТ продукта.
Гибкие методологии при создании ИТ продукта.
 

More from Pavel Veinik

Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...Pavel Veinik
 
Software craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interactionSoftware craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interactionPavel Veinik
 
Software craftsmanship 16: online building ml pipeline
Software craftsmanship 16: online building ml pipelineSoftware craftsmanship 16: online building ml pipeline
Software craftsmanship 16: online building ml pipelinePavel Veinik
 
Software craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and ResiliencySoftware craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and ResiliencyPavel Veinik
 
Software craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the MonolithSoftware craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the MonolithPavel Veinik
 
Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещениеSoftware craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещениеPavel Veinik
 
Software craftsmanship 3
Software craftsmanship 3Software craftsmanship 3
Software craftsmanship 3Pavel Veinik
 
Women in technology_week-women_leadership
Women in technology_week-women_leadershipWomen in technology_week-women_leadership
Women in technology_week-women_leadershipPavel Veinik
 
Программирование и лингвистика: как понять язык и извлечь знания из текстов
Программирование и лингвистика: как понять язык и извлечь знания из текстовПрограммирование и лингвистика: как понять язык и извлечь знания из текстов
Программирование и лингвистика: как понять язык и извлечь знания из текстовPavel Veinik
 
Человеческий фактор в разработке, или ORM на noSql через JPA.
Человеческий фактор в разработке, или ORM на noSql через JPA.Человеческий фактор в разработке, или ORM на noSql через JPA.
Человеческий фактор в разработке, или ORM на noSql через JPA.Pavel Veinik
 

More from Pavel Veinik (11)

Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
 
Software craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interactionSoftware craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interaction
 
Software craftsmanship 16: online building ml pipeline
Software craftsmanship 16: online building ml pipelineSoftware craftsmanship 16: online building ml pipeline
Software craftsmanship 16: online building ml pipeline
 
Software craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and ResiliencySoftware craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and Resiliency
 
Software craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the MonolithSoftware craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the Monolith
 
Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещениеSoftware craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
 
Software craftsmanship 3
Software craftsmanship 3Software craftsmanship 3
Software craftsmanship 3
 
Women in technology_week-women_leadership
Women in technology_week-women_leadershipWomen in technology_week-women_leadership
Women in technology_week-women_leadership
 
Career day 2019
Career day 2019Career day 2019
Career day 2019
 
Программирование и лингвистика: как понять язык и извлечь знания из текстов
Программирование и лингвистика: как понять язык и извлечь знания из текстовПрограммирование и лингвистика: как понять язык и извлечь знания из текстов
Программирование и лингвистика: как понять язык и извлечь знания из текстов
 
Человеческий фактор в разработке, или ORM на noSql через JPA.
Человеческий фактор в разработке, или ORM на noSql через JPA.Человеческий фактор в разработке, или ORM на noSql через JPA.
Человеческий фактор в разработке, или ORM на noSql через JPA.
 

Software craftsmanship 8

  • 1. Software Craftsmanship meetup #8 Continuous Integration Continuous Deployment Continuous Delivery Павел Вейник CTO @ Splitmetrics CEO @ Hard & Soft Skills
  • 2. Зачем митапы? Поделиться с разработчиками Узнать что-то интересное Обкатать новый курс для тимлидов Обкатать новый курс для техлидов и архитекторов Пообщаться
  • 3. Для кого митапы? Для разработчиков и архитекторов Для тестировщиков Для тимлидов и менеджеров Continuous integration doesn't get rid of bugs, but it does make them dramatically easier to find and remove. Martin Fowler
  • 4. Мы на новом месте Зарегистрировались 187 человек Наш первый митап в ШАГе
  • 5. План митапов 1. Software Craftsmanship & Agile. Как не делать говно? 2. Принципы хранения данных 3. Обзор баз данных 4. Очереди сообщений 5. Кэши и файловые хранилища
  • 6. План митапов 6. Как Software Craftsmanship фиксит проблемы Agile 7. БД: проектирование, масштабирование, шардирование, реплицирование… 8. Процессы и инструменты для CI/CD 9. Логгирование и мониторинг 10. Распределенные транзакции
  • 7. План этого митапа 1. Что такое CI/CD 2. Польза и недостатки 3. Внедрение в ваши процессы 4. Инструменты 5. Вопросы
  • 8. Continuous Integration Все что до попадания кода в trunk Статический анализ кода Тестовые сборки Автотесты
  • 9. Continuous Delivery Continuous Integration + Автоматизированный процесс релиза на прод Этот процесс запускается руками
  • 10. Continuous Deployment Continuous Delivery + Автоматизированный процесс релиза на прод Этот процесс запускается автоматически
  • 11.
  • 12. Continuous Integration –чего стоит Писать тесты на каждый чих – фичу, баг, improvement CI server должен запускать тесты по пушам в git Мержить как можно чаще
  • 13. Continuous Integration – что дает Меньше багов проходит в прод из-за автотестов Сборка релиза быстрее, тк интеграция проверена на ранних этапах Меньше переключений
  • 14. Continuous Integration – что дает Стоимость тестов меньше на порядки Команда QA фокусируется на QA, а не на QC
  • 15. Continuous Delivery – чего стоит Хорошо работающий CI Автоматические деплои Использовать Feature flags чтобы закрывать несделанные фичи
  • 16. Continuous Delivery – что дает Деплой без усилий и без десяток проверок и валидаций Можно релизить так часто как только хочешь Проще релизить мелкие вещи, короче итерации, быстрее feedback
  • 17. Continuous Deployment – что дает Хороший процесс QA, а не QC Грамотная документация Feature flags абсолютно необходимы
  • 18. Continuous Deployment – что дает Не нужно готовить и проверять релизы Меньше рисков при релизах Постоянный поток улучшений для клиента
  • 19. CI/CD для бизнеса Темп релизов Продуктивность, автоматизация рутины. Мозги – важному, остальное – машинам Устойчивость за счет автоматизации рутины
  • 20. CI/CD для бизнеса Вложения Необходимость жесткой приоритезации задач Риски процессных изменений
  • 21. Внедрение CI/CD/CD CI/CD/CD – это конвейер Требует Новых процессов Новых инструментов
  • 22. Внедрение CI/CD/CD Нельзя начинать CI с выбора инструментов Нужно начинать с изменения культуры и процессов, только потом – инструменты
  • 23. Изменения в процессах Автотесты Приоритеты Планирование и выполнение Мелкие изменения Ответственность за каждую строку Коммуникации в команде и вне Актуальная документация
  • 24. Изменения в процессах Вы действительно к этому готовы? Нередко CI начинается и заканчивается спорами об инструментах Каждый имеет свое мнение Никто не может договориться
  • 25. Внедрение CI/CD/CD Подходит не везде Сложнее с монолитами Легче с микросервисами Сложно с mission critical системами Больше этапов ручных проверок
  • 26. Внедрение CI/CD/CD Хорошо для front и middleware Микросервисы SaaS Ecommerce Веб-разработка
  • 27. Внедрение CI/CD/CD Недостаточно поддержки менеджмента Недооценка изменений культуры Нет фиксированных целей внедрения в конкретный проект Нет плана внедрения
  • 28. Внедрение CI/CD/CD Смута в результате изменения ролей и ответственности Недооценка технической сложности внедрения Неверная стратегия автоматизации тестов
  • 30. CI Services Jenkins TeamCity Travis CI Gitlab CI Bitbucket Pipelines Circle CI Bamboo Buddy CodeShip GoCD Wercker И еще десятки
  • 31. Ссылки Понятия  https://www.plutora.com/ci-cd-tools  https://tproger.ru/blogs/ci-cd/  https://www.atlassian.com/continuous-delivery/principles/business-value  https://www.plutora.com/blog/continuous-integration-continuous-delivery-continuous-deployment  https://thenewstack.io/understanding-the-difference-between-ci-and-cd/  https://www.netsolutions.com/insights/business-benefits-of-ci-cd/  https://www.intellias.com/the-pros-and-cons-of-ci-cd-for-fintech/ Риски  https://abstracta.us/insights/resource/transitioning-to-CICD.pdf  https://habr.com/ru/company/true_engineering/blog/426821  https://testcollab.com/blog/ci-cd-pipelines/
  • 32. Ссылки Понятия  https://www.plutora.com/ci-cd-tools  https://tproger.ru/blogs/ci-cd/  https://www.atlassian.com/continuous-delivery/principles/business-value  https://www.plutora.com/blog/continuous-integration-continuous-delivery-continuous-deployment  https://thenewstack.io/understanding-the-difference-between-ci-and-cd/  https://www.netsolutions.com/insights/business-benefits-of-ci-cd/  https://www.intellias.com/the-pros-and-cons-of-ci-cd-for-fintech/ Риски  https://abstracta.us/insights/resource/transitioning-to-CICD.pdf  https://habr.com/ru/company/true_engineering/blog/426821  https://testcollab.com/blog/ci-cd-pipelines/
  • 33. Ссылки А как у них  https://habr.com/ru/company/true_engineering/blog/426821/  https://habr.com/ru/company/yandex/blog/237017/  https://www.slideshare.net/chaddickerson/continuous-deployment-at-etsy-sxsw-lean-startup-track  https://toni.org/2010/05/19/in-praise-of-continuous-deployment-the-wordpress-com-story/  https://www.forbes.com/sites/steveblank/2014/01/03/tesla-and-adobe-why-continuous-deployment-may- mean-continuous-customer-disappointment/#59ddd5be13bc  https://medium.com/airbnb-engineering/testing-at-airbnb-199f68a0a40d#.owpgrk8hl  https://habr.com/ru/company/southbridge/blog/329262/ Best practices  https://techblog.rakuten.co.jp/2018/02/06/cd-the-best-practice/
  • 34. Ссылки Книги  https://www.amazon.com/Continuous-Delivery-DevOps-Quickstart-successful/dp/1788995473/ref=sr_1_1  https://www.amazon.com/Continuous-Integration-Delivery-Deployment-automating- ebook/dp/B01N3C5ECP/ref=sr_1_1  https://www.amazon.com/Hands-Continuous-Integration-Delivery-software- ebook/dp/B07F2KCM75/ref=sr_1_1  https://www.amazon.com/Continuous-Delivery-Docker-Jenkins-Delivering-ebook/dp/B0756FCZQY  https://www.amazon.com/Continuous-Delivery-Java-Essential-Production/dp/1491986026  https://www.amazon.com/Jenkins-Essentials-Mitesh-Soni/dp/1783553472/ref=cm_cr_arp_d_product_top