Инструменты пользователя

Инструменты сайта


learning:devops

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

learning:devops [18.04.2024 06:26] – [SonarQube] viacheslavlearning:devops [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1
Строка 29: Строка 29:
  
 ==== Ветвления ==== ==== Ветвления ====
 +=== Trunk-Based Development ===
 +
 [[https://www.optimizely.com/optimization-glossary/trunk-based-development/|Trunk-Based Development]] - частые мелкие изменения прямо в master. Ветки feature короткоживущие и ведутся чаще всего одним разработчиком. [[https://www.optimizely.com/optimization-glossary/trunk-based-development/|Trunk-Based Development]] - частые мелкие изменения прямо в master. Ветки feature короткоживущие и ведутся чаще всего одним разработчиком.
  
Строка 34: Строка 36:
  
 Подходит для мелких проектов и небольших команд, или когда нужно что-то быстро написать (MVP). Подходит для мелких проектов и небольших команд, или когда нужно что-то быстро написать (MVP).
 +
 +=== Feature Branch Workflow ===
  
 Feature Branch Workflow - новые функции разрабатываются отдельно от master (где всегда содержится рабочий код), ветки feature существуют долго, в рамках этих веток делаются pull-реквесты для совместной работы. Feature Branch Workflow - новые функции разрабатываются отдельно от master (где всегда содержится рабочий код), ветки feature существуют долго, в рамках этих веток делаются pull-реквесты для совместной работы.
  
 {{:learning:pasted:20220722-062952.png?600}} {{:learning:pasted:20220722-062952.png?600}}
 +
 +=== Gitflow ===
  
 Gitflow - основная разработка ведётся в ветке develop, ветки feature делаются от неё и сливаются с ней же. Master - это история релизов с единственной производной от неё - hotfix, где правятся баги. После исправления ошибок hotfix сливается с master и develop. Когда в develop достаточно изменений для релиза, создаётся ветка release и там код допиливается без добавления новых функций и пишется документация, затем она сливается в master (и в develop) и ей присваивается версия, а ветка release удаляется. Gitflow - основная разработка ведётся в ветке develop, ветки feature делаются от неё и сливаются с ней же. Master - это история релизов с единственной производной от неё - hotfix, где правятся баги. После исправления ошибок hotfix сливается с master и develop. Когда в develop достаточно изменений для релиза, создаётся ветка release и там код допиливается без добавления новых функций и пишется документация, затем она сливается в master (и в develop) и ей присваивается версия, а ветка release удаляется.
Строка 45: Строка 51:
 https://bitworks.software/2019-03-12-gitflow-workflow.html https://bitworks.software/2019-03-12-gitflow-workflow.html
  
 +=== Gitlab flow ===
 +Разработка ведётся аналогично GitHub flow — в отдельных ветках, которые также сливаются в master, но содержимое ветки master развёрнуто на тестовом сервере. Дополнительно у вас есть ветки окружений, содержимое которых соответствует содержимому ваших окружений. Обычно существует три окружения, но их может быть больше или меньше в зависимости от ваших требований:
 +  - Master/main - тестовое окружение
 +  - Preprod - опытное окружение
 +  - Prod - пром
 +
 +{{:learning:pasted:20240529-103458.png?800}}
 +
 +https://habr.com/ru/companies/intersystems/articles/354158/
 +
 +Использование веток релиза нужно, если ПО выпускается для внешних пользователей. В этом случае ветки нужно называть с использованием минорной версии, например, ''2.3-stable'' или ''2.4-stable''.
 +
 +{{:learning:pasted:20240529-104947.png?600}}
 +
 +Сливать изменения в тематических ветках нужно именно в мастер (не в релиз!), а потом делать cherry-pick оттуда в релизные ветки, иначе баг останется в следующих версиях, когда из непропатченной мастер-ветки создадут новый релиз.
 +
 +Слияние с основной веткой и последующий cherry-pick в релизную называется "upstream first" policy. После cherry-pick в релизной ветке нужно увеличивать патч-версию, устанавливая новый тег.
 +
 +Некоторые проекты также имеют ветку stable, которая указывает на тот же коммит, что и последняя ветка release. В этом случае не принято иметь ветку production.
 ===== Бережливое производство ===== ===== Бережливое производство =====
 Lean manufacturing - это постоянный поиск улучшения процессов и снижение количества ненужных и неэффективных действий. Важно определить ценность продукта - то, что решает ключевую потребность (проблему, задачу) потребителя, и сосредоточиться на ней. Например, ценность мессенджера - в передаче текстовых сообщений, а не в смайлах и стикерах, и т. п. Lean manufacturing - это постоянный поиск улучшения процессов и снижение количества ненужных и неэффективных действий. Важно определить ценность продукта - то, что решает ключевую потребность (проблему, задачу) потребителя, и сосредоточиться на ней. Например, ценность мессенджера - в передаче текстовых сообщений, а не в смайлах и стикерах, и т. п.
Строка 183: Строка 208:
  
 ==== Terraform - управление инфраструктурой ==== ==== Terraform - управление инфраструктурой ====
 +:!: Свободный аналог - Opentofu. https://opentofu.org/, https://github.com/opentofu/opentofu.
 +
 Скачать: https://hashicorp-releases.yandexcloud.net/terraform/ Скачать: https://hashicorp-releases.yandexcloud.net/terraform/
 <code bash> <code bash>
learning/devops.1713421589.txt.gz · Последнее изменение: 30.07.2024 19:20 (внешнее изменение)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki