Целта на този документ е да определи общите минимално изисквани политики и действия на организацията за КОМПЛЕКСНАТА стратегия за разклоняване и процеса на внедряване, които трябва да се извършват по време на жизнения цикъл на приложеният.
Стандартната структура за внедряване на приложения използва следните среди:
- 
локална среда за разработка (lde)
 - 
разработка (dev)
 - 
тестова (stg)
 - 
продукция (prd)
 - 
master
Това се превежда като стандартен набор от три клона във всички хранилища на приложения:
 
| 
 Клон  | 
 Среда  | 
|---|---|
| 
 
  | 
 Политически по-важен от   | 
| 
 
  | 
 съдържа в момента работещия код в продукционната среда  | 
| 
 
  | 
 съдържа текущия общ код, който ще бъде пуснат в продукционната среда при следващото издание  | 
| 
 
  | 
 съдържа общия код, който работи в   | 
| 
 
  | 
 съдържа общия код, който ще бъде внедрен в   | 
| 
 
  | 
 съдържа общия код, който в момента работи в   | 
| 
 
  | 
 съдържа изходния код, който се разработва от разработчиците в техните собствени локални среди за разработка (локална), както и в някои случаи код в   | 
Следните оперативни насоки трябва да се спазват:
- 
Всички клонове се възстановяват отгоре надолу от таблицата по-горе ^^^ – това означава например, че корекциите в продукция ТРЯБВА да се прилагат към всички клонове под нея в следния ред –
develop,stg, staging,productionкъм всеки функционален клон, който е в процес на разработка в момента на приложението - 
Когато се разработва нова функционалност, разработчикът ще създаде нов функционален клон от последната версия на
developклона. Функционалният клон трябва да следваdevelop, тоестrebase. - 
Функции, които добавят сложност, но не предоставят тестове с CI внедряване на тези тестови сложности НЕ ТРЯБВА да се добавят към никакви от общите клонове (проверете конкретните стъпки, които трябва да се следват)
 - 
Когато новоразработената функционалност е готова за включване, разработчикът създава pull заявка, като иска да обедини своя функционален клон с клона
develop. - 
Pull заявката се преглежда от поне още един член на екипа и се обединява в клона
developАКО преглеждащият одобри заявката и всички променени компоненти на микросервиса са тествани. - 
Внедряването в stg средата се извършва от клона
stg, за да бъде достъпно за тестване от нетехнически потребители. - 
Ако внедряването на клона
stgима проблеми или ако нетехническите потребители не одобряват последното внедряване в средатаstaging, се извършва връщане (rollback). - 
Когато клонът
stagingбъде тестван от нетехнически потребители в stg средата и се счита за готов за продукция, отговорният за внедряването на функционалността слива функционалността в клонаrelease(с флаговете-X theirsи--allow-unrelated-histories) и го маркира с нова версия, за да позволи идентификацията на състоянието на кода с извикването наgit push --tags. - 
Внедряването в продукционната среда се извършва от клона
release. - 
АКО бизнес представителите намерят грешка в продукцията, която може да бъде отстранена за по-малко от 4 часа, се създава клон hotfix от клона
releaseи бързо се внедрява първо в stg средата, и ако всички тестове преминат бързо и там, се внедрява в продукцията с нов етикет. Ако отстраняването на грешката отнема повече от 4 часа, трябва да се създаде приоритетен-1 бъг и да се следва процесът за внедряване без горещи поправки (non-hotfix). - 
След като бизнес представителите одобрят новата версия в продукционната среда, съществуващият клон
prodсе възстановява (rebase) с клонаrelease– издаденият етикет на git става новият „източник на истина“ – тоест каква е текущата версия на софтуера, работеща в продукционната среда. - 
АКО бизнес представителите не одобрят новата версия, се извършва връщане (rollback) към предишния
продукционенcommit. - 
След изданието ВСИЧКИ общи (
developиrelease) клонове се възстановяват (rebase) от клонаdevelopот лицето, което извършва изданието. Всички останали разработчици ТРЯБВА също да възстановят своите функционални / корекционни клонове от клона develop – всеки разработчик трябва да се увери, че разликата (diff) между общия клон develop и текущия функционален / корекционен клон, върху който работи, съдържа САМО промените, свързани с текущата грешка/функционалност, върху която той/тя работи. 
ЗАБЕЛЕЖКА: Внедряванията в живите среди трябва винаги да се извършват чрез автоматизирани CI/CD процеси, никога ръчно. В описания по-горе процес всички премествания между средите се извършват чрез системата за контрол на изходния код в GitLab.
Всяко внедряване в различни среди трябва да бъде податливо на ръчно стартиране чрез потребителския интерфейс на системата за управление на изходния код и нейният DevOps интерфейс.