SlideShare a Scribd company logo
Agile software configuration managementШмаркатюк Сергей, EPAM Systems
Повествование2От простого к сложному
Цель3Связь между:Agile-методологиями и практиками конфигурационного менеджментаИнструментами, использующихся практиками конфигурационного менеджмента
Какие такие практики?Контроль версийБилд менеджмент Автоматизированные сборкиНепрерывная интеграцияРелиз менеджментУправление зависимостями4
Представление5Диаграммы потока разработкиВеткиРелизыСборкиТегиСлиянияДиректорииКоммиты
Simplest scenario6TrunkDevelopment mainlineRepository directorycommitsproject assetsproject stateSource code changes
Простейший сценарий7После нескольких последовательных коммитов разработчик желает сделать сборку приложенияЗачем?Будем считать что сборка будет результатом реализации функциональных требований (баг/фича)Сборка доступна конечному пользователю: Собирается отдельное десктопное приложениеРазвертывается веб-приложениеСбор метрик и статистики (интеграционная сборка)
Простейший сценарий 8Затем возникает необходимость сделать релизЗачем?Релиз – это специальный тип сборкиНо имеет специфичные особенности:Полная реализация набора требованийКачествоДоступность к использованию
Простейший сценарий9Простейший сценарий - это……случай, когда описанные шаги не требуют слишком много усилий
Простейший сценарий10релиз!/trunk??23?1??1.11.2?1.0
11Иногда не все так просто
12Представим себе …что нужно стабилизировать релизиобеспечить одновременную разработку следующей версии приложения
Ветвление для релиза13релизслияние!!/trunk??23??12.32.12.22.0???/?/1.x1.11.21.0???
Ветвление для релиза14Заметили?Возникает непоследовательность в нумерации версий!Имеет смысл разделить разработку в trunk’eи стабилизацию релиза
Ветвление для релиза15/trunk56847??23?1?????/?/1.x/?/2.x1.11.22.11.02.0?????
Ветвление для релиза16Но это еще не всё…Вам может понадобиться стабилизировать релиз в любое времяиПри этом не прерывать параллельной разработки или стабилизации релиза
Ветвление для релиза17/?/2.x2.12.0??/trunk1.32.256??4??23?1???0.10.20.30.40.50.6/?/1.x1.11.21.0???
Типы веток18Время подумать о типах веток!?
Типы веток19/2.xВеткарелизаx.x2.12.0??/trunkБез типа(просто trunk)1.32.2x.8x.756x.2x.5x.6??4??23x.1?1x.3???x.4Веткарелиза/1.x1.11.21.0???
Типы веток20Несовместимые изменения/2.xСлияние невозможно2.12.0??/trunk1.32.2x.8x.756x.2x.5x.6??4??23x.1?1x.3???x.4/1.x1.11.21.0???
Типы ветокНесовместимость означает то, что……слияние изменений не может быть выполнено в родительскую веткуПример:Глубокий рефакторинг (изменение иерархии директорий/файлов)Серьезное архитектурное/структурное изменениеПереписывание приложения или его отдельных частей с нуля21
Типы веток22/2.xВетка релиза/0.2.x2.12.0??0.x.x0.2.10.2.0/trunkСлияние невозможно1.3x.5x.2?4??23x.1?1x.3?x.40.x.50.x.20.x.10.x.30.x.4/?/1.x.xВетка релиза/1.x/0.1.x1.11.21.0???Ветка поддержки0.1.10.1.20.1.0
Типы веток.Ветки поддержки и релиза23/0.2.x/0.3.x/trunk/1.0.x/0.1.x/1.x.xВетка релизаВетка поддержки
Типы веток.Ветки поддержки и релиза24Допускает слияние с родительской веткой Существует до тех пор, пока не выпущен стабильный релизВетки-потомки не разрешеныНе допускает слияния с родительской веткойСуществует всегдаРазрешены ветки-потомкиНе разрешены ветки-потомки для поддержкиНе рекомендуются слияния с ветками- потомкамиВетка поддержкиВетка релиза
Типы веток.Экспериментальные ветки25/trunkx.2x.0x.4x.6x.8x.11x.7x.9x.3x.1?1x.5x.10Экспериментальная ветка
Experimental vs release branch 26Экспериментальная веткаНе допускает веток-потомковИспользует строгое именование. Пример: 1.0.xИспользует собственную область значений для нумерации сборокРекомендуемый подход к слияниям: после каждой сборки/релизаДопускает любое число веток-потомковПравил к именованию не выдвигается. Пример: new_eng_testРазделяет область значений для нумерации сборок с родственными веткамиНет рекомендованного подхода к слияниямВетка релиза
Наследование базыисходного кода27/0.2.x0.x.x/trunk/2.x.x/0.1.x/1.x.xПоследняя разработка
Наследование базыисходного кода28Последняя разработка должна содержаться в trunk
Наследование базыисходного кода29/3.x.x4.x.x3.x.x2.x.x1.x.x/trunk/2.x.x/1.x.x
Типы сборок30
SCM в действии311.x.x2.x.x/trunkPA1.x.31.x.02.x.0A1.x.11.x.42.x.1buildsB1.x.21.x.52.x.2/1.x.xAR1.0.0BR1.0.1RCreleases1.0.21.0.3ST1.0.4/1.0.x
Иерархия директорийПроект32
Иерархия директорийТеги33
34Где же AGILE?!
Scrum и SCM35/trunkdemoPA/AAR/BR1.0.11.x.01.x.11.x.21.0.01.x.3user stories/1.0.xsprint backlog

More Related Content

PPTX
управление сборками и развертыванием веб приложений
PPTX
Виктор Стрелков - Jabber как инструмент разработчика
PDF
Тестирование осень 2013 лекция 5
PPTX
Непрерывная интеграция. Практическое применение
ODP
Обзор Continuous integration инструментов
PDF
Непрерывная интеграция при разработке баз данных. (Show version)
PDF
It meetup cd
PDF
Юрий Василевский "Автоматизация в XCode"
управление сборками и развертыванием веб приложений
Виктор Стрелков - Jabber как инструмент разработчика
Тестирование осень 2013 лекция 5
Непрерывная интеграция. Практическое применение
Обзор Continuous integration инструментов
Непрерывная интеграция при разработке баз данных. (Show version)
It meetup cd
Юрий Василевский "Автоматизация в XCode"

What's hot (20)

PPTX
Мастер класс- Maven + Jenkins
PPT
Java one presentation
PDF
Введение в maven
PDF
Тестирование весна 2013 лекция 5
PPT
Инструменты разработки ПО в *nix
PPTX
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
PDF
Plugin development for intelli j platform
PDF
Ross2013 rubanov
PDF
01 linux-course
PPSX
Разработка БД с использованием инструментов MS VS 2010
PDF
"Доклад не про React", Антон Виноградов, MoscowJS 27
PPT
Continuous integration with TeamCity
PDF
настройка Wine
ODP
Continous Integration
PPTX
Java 9 модули
PDF
Continuous integration
PPTX
метод организации репозитория исходного кода
PDF
Continuous Delivery для ASP.NET MVC проекта под Linux
PPTX
Running Linux and Unix on Hyper-V
PPTX
Net framework
Мастер класс- Maven + Jenkins
Java one presentation
Введение в maven
Тестирование весна 2013 лекция 5
Инструменты разработки ПО в *nix
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
Plugin development for intelli j platform
Ross2013 rubanov
01 linux-course
Разработка БД с использованием инструментов MS VS 2010
"Доклад не про React", Антон Виноградов, MoscowJS 27
Continuous integration with TeamCity
настройка Wine
Continous Integration
Java 9 модули
Continuous integration
метод организации репозитория исходного кода
Continuous Delivery для ASP.NET MVC проекта под Linux
Running Linux and Unix on Hyper-V
Net framework
Ad

Similar to Agile software configuration management (20)

PDF
Dev collaboration
PDF
Масштабируемая архитектура фронтенда
PDF
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
PPT
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
PDF
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
PDF
Zero Downtime PHP Deployment with Envoyer And Forge
PPT
Инсталляторы
PDF
Как devops исчерпывает себя и что будет дальше
PPT
1С-Битрикс - Производительность
PPT
Использование Symfony
PPTX
3 zalomlenkov selenium
PPT
Open Source Testing Framework: real project example and best practices
PPT
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
PPTX
"Опыт создания системы управления сборкой и тестированием" (полная)
PDF
«Собор или базар»: системы контроля версий — централизованные или распределен...
PDF
Abf
PDF
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
PPTX
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)
PPTX
Genome
PDF
Материалы вебинара – Гиперскалярная архитектура VMware EVO: RAIL совместно с ...
Dev collaboration
Масштабируемая архитектура фронтенда
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Zero Downtime PHP Deployment with Envoyer And Forge
Инсталляторы
Как devops исчерпывает себя и что будет дальше
1С-Битрикс - Производительность
Использование Symfony
3 zalomlenkov selenium
Open Source Testing Framework: real project example and best practices
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
"Опыт создания системы управления сборкой и тестированием" (полная)
«Собор или базар»: системы контроля версий — централизованные или распределен...
Abf
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)
Genome
Материалы вебинара – Гиперскалярная архитектура VMware EVO: RAIL совместно с ...
Ad

More from Sergii Shmarkatiuk (19)

PPTX
CS589 paper presentation - What is in unison? A formal specification and refe...
PPTX
CS519 - Visual Software Evolution Reconstruction
PPTX
Software version numbering - DSL of change
PPTX
Continuous integration for se group meeting
PPTX
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...
PPTX
CS 584 - Aligning development tools with the way programmers think about code...
PPTX
CS519 - homework project presentation
PPTX
CS519 - project idea presentation
PPTX
CS519 - Cloud Types for Eventual Consistency
PPTX
05 - Merge Management
PPTX
03 - Continuous Integration
PPTX
02 - Build and Deployment Management
PPTX
01 - Introduction to Version Control
PPTX
1.2 introduction to scm - what does version number tell us
PPTX
1.1 introduction to scm - xp and cm are chicken-and-egg
PPTX
1.0 about software configuration management trainings
PPTX
04 - Agile Software Configuration Management
PPT
Breath of life
PPTX
Организуй свой репозиторий
CS589 paper presentation - What is in unison? A formal specification and refe...
CS519 - Visual Software Evolution Reconstruction
Software version numbering - DSL of change
Continuous integration for se group meeting
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...
CS 584 - Aligning development tools with the way programmers think about code...
CS519 - homework project presentation
CS519 - project idea presentation
CS519 - Cloud Types for Eventual Consistency
05 - Merge Management
03 - Continuous Integration
02 - Build and Deployment Management
01 - Introduction to Version Control
1.2 introduction to scm - what does version number tell us
1.1 introduction to scm - xp and cm are chicken-and-egg
1.0 about software configuration management trainings
04 - Agile Software Configuration Management
Breath of life
Организуй свой репозиторий

Agile software configuration management