Полноценное использование Git
Команды должны иметь возможность по необходимости, предсказуемо и быстро восстанавливать сервисы даже после крупных отказов на основании только информации из Гита. Поэтому содержимое Git должно включать не только исходный код самого приложения, но и все артефакты для его сборки, тестирования, схемы миграции данных (как в одну увеличения версии, так и в сторону отката).
Чек-лист использования Git в вашей команде
В Git должны храниться в нескольких версиях:
- Весь код приложения и зависимости (библиотеки, статический контент и др.)
- Все сценарии, используемые для создания схем баз данных, справочных данных приложения и т.д.
- Все инструменты создания среды и артефакты из предыдущего пункта (например, сценарии создания образа VMware или AMI или рецепты Chef).
- Любые файлы, используемые для создания и компоновки контейнеров (например, файлы Docker и билдпаки)
- Все поддерживающие автоматизированные тесты и любые сценарии ручного тестирования
- Любые сценарии, поддерживающие упаковку кода, развертывание, миграцию баз данных и инициализацию среды.
- Поддерживающие артефакты проекта (например, документация по требованиям, процедуры развертывания и примечания к выпуску)
- Оркестрация контейнеров (например, конфигурация Kubernetes, конфигурация Mesos и конфигурация Docker Swarm).
- Все файлы конфигурации облака (например, шаблоны AWS Cloudformation, конфигурация Cloud Deployment Manager, файлы Microsoft Azure Stack DSC, OpenStack HEAT, файлы Terraform и стеки Pulumi).
- Любые другие сценарии или конфигурационная информация, необходимые для создания инфраструктуры, поддерживающей множество сервисов (например, корпоративные сервисные шины, системы управления базами данных, файлы зон DNS, правила конфигурации для брандмауэров и других сетевых устройств)
Если в вашем Git хранится не всё из этого списка и Git не даёт вам быстро и без потерь восстановить предыдущие версии систем, вы используете его не полностью.
Как улучшить контроль версий
Специалисты Google рекомендуют:
- Убедитесь, что каждый коммит в версионный контроль автоматически запускает создание пакетов, которые могут быть развернуты в любом окружении с использованием только информации из версионного контроля.
- По необходимости создавайте тестовые среды, неотличимы от прода, используя только сценарии и конфигурационную информацию из системы управления версиями. Создавайте пакеты с помощью автоматизированного процесса, описанного в предыдущем подходе.
- Прорабатывайте тестирование кода и прода так, чтобы команды могли добавлять мощности или восстанавливаться после отказов автоматизированно.
QR-код на источник
https://cloud.google.com/architecture/devops/devops-tech-version-control