Развертывание кода на нескольких серверах из одной ветви

Это моя ситуация.

У меня есть проект, который всегда был развернут на одном сервере. Наша ситуация изменилась, теперь проект развернут на нескольких серверах по всему миру. У нас до сих пор есть только одна ветвь, которую мы развернули. Теперь проект содержит общий код, а также код для конкретной страны.

Я хочу изменить это, но я не знаю как. Для меня есть две возможности. Первый — создать одну ветку на страну из моей страны происхождения. Но перед этим я должен выполнить некоторую работу по очистке, чтобы изолировать общий код и оставить этот конкретный код для каждой страны. Недостатком этого решения является то, что люди могут быстро потеряться между многими ветвями.

введите описание изображения здесь

Второе решение — сохранить одну ветку, но я должен обновить код, чтобы создать универсальные контроллеры, которые будут перенаправлять на определенные контроллеры в зависимости от страны.

введите описание изображения здесь

Мне интересно, если вы считаете, что есть другие решения для решения этой проблемы.

-1

Решение

Имейте в виду, что git — это инструмент управления исходным кодом, а такие структуры, как ветви, предназначены для решения проблем управления исходным кодом. Кто-то давно заметил, что поскольку в git есть протокол для передачи изменений в удаленное хранилище, его можно использовать в качестве инструмента развертывания; и в очень простых случаях он может делать эту работу хорошо. Но слишком часто люди начинают с этого, а затем, когда их требования к сборке / развертыванию становятся более сложными, они ожидают, что Git будет масштабироваться с этим. Что, вероятно, было бы, если бы это был инструмент для сборки и развертывания. Но это не так.

Недостатком «ветвь на страну» является не только то, что люди могут потеряться среди ветвей. Большим недостатком является то, что поддержание синхронизации общего кода во всех ветвях будет утомительным и, в конечном счете, вероятно, не произойдет надежно.

Ваше другое решение, возможно, лучше, но оно рассматривает идентификацию страны как динамическое решение во время выполнения, когда на самом деле оно может быть принято во время развертывания (поскольку ясно, что данный развернутый экземпляр либо всегда находится в стране-1, либо всегда в стране -2 или …).

Почему бы не использовать инструменты сборки и развертывания, которые могут поддерживать несколько конфигураций, чтобы вы могли использовать единую базу кода и позволить инструментам создавать правильную версию сайта для любого конкретного сервера?

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector