208 похожих чатов

Грамотный деплой Битрикса - как? Задача: подготовить инфраструктуру, с помощью которой

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

И все эти изменения должны гулять от разраба к мастеру и, в идеале, от мастера к разрабу, потому что контент-менеджер тоже может делать какие то контентные правки.

Причём под словом «контент», взносимый разрабом, я подразумеваю скорее, например, настройки служб доставки. Хотя иногда требуется даже показывать товары на ветрине на тесте до выката из в прод. (особенно на проекте, где у заказчика битрикс работает как api бекенд к фронтенду на Vue.js)

Изменения которые необходимо передавать:
• Изменения кода без ядра
• Изменения бд через миграции
• Изменения контента / настроек в базе
• Изменения контента в папке /upload/

Ход моих мысли и встающие вопросы:

Изменения в коде очевидно как передавать: на то есть git.

Как передавать изменения структуры бд тоже понятно: есть много готовых решений с миграциями. Хотя встаёт вопрос: а что если изменения структуры были произведены разрабом через админку? Как реплицировать эти изменения БД в файл миграции?

Как передавать изменения контента или настроек модулей? Миграции, как я понимаю (и как я прочитал все Readme всех доступных решений) передают структуру, а не контент.

Что делать с папкой /upload/? На сколько я изучил лучшие практики - никто эту папку в гит не кладёт. А что тогда делать с передачей контента?

Предположим, я разраб, который должен подключится к разработке проекта: что я должен сделать? Развернуть бекап мастера на локале, а затем подключится к репозиторию и сделать git clone? (И тут ещё появляется вопрос миграций: получается база то будет актуальная, и этап миграции надо пропустить?)

А как иначе? Ядро передавать - это же плохо. А откуда его взять иначе?

Почему я задаюсь этими вопросами? Потому что я начинающий devops, меня крайне затягивает эта тема, а теперь передо мной встала задача замутить такое аж на двух проектах с битриксом. С битриксом я знаком достаточно поверхностно.

Не ругайте, если кому то покажется, что я задаю глупые вопросы: тогда поверните меня в нужное русло. А может при такой тесной интеграции веток разработки все это вообще не нужно..?

Какие у вас будут на этот счёт мысли?

P.S. Я уже прошёлся поиском по чату в попытках найти идеи или рассуждения на эту тему, но ничего конструктивного не нашёл.

5 ответов

20 просмотров

>Что делать с папкой /upload/? На сколько я изучил лучшие практики - никто эту папку в гит не кладёт. А что тогда делать с передачей контента? Как вариант использовать rsync для передачи /upload/

Игорь-Майоров Автор вопроса
Ivan Milov
>Что делать с папкой /upload/? На сколько я изучил...

На тесте синхронизировать папку с локальными копиями? Выглядит интересным, но такое чувство, что тогда что то должно с базой рассинхронится

>Как передавать изменения контента или настроек модулей? Миграции, как я понимаю (и как я прочитал все Readme всех доступных решений) передают структуру, а не контент. Вот этот модуль смотрели? https://marketplace.1c-bitrix.ru/solutions/sprint.migration/ Есть wiki https://github.com/andreyryabin/sprint.migration/wiki и куча примеров файлов миграций. Можно и контент переносить, элементы, разделы и прочее. Настройки модулей наверняка тоже можно. Пример добавления элемента: https://github.com/andreyryabin/sprint.migration/blob/master/examples/Version20190606000012.php

Игорь-Майоров Автор вопроса
Ivan Milov
>Как передавать изменения контента или настроек мо...

Смотрел. Основная проблема в том, что получается разраб должен вообще забыть про админку и весь контент пихать через код миграций? Или, иначе, где то должны генерироваться миграции (хотя бы контента) автоматически. Есть ещё одно решения, кажется, похожее, и они даже заявляют поддержку автоматической генерации миграций: https://github.com/arrilot/bitrix-migrations

думаю, если в конце всех изысканий вы поделитесь общей схемой с сообществом - это будет очень годный контент :)

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Всем привет. Нужна платная консультация от тех, кто сталкивался с октябрём в кластере или шарит оч хорошо в цмс. Проблема следующая: после переноса в кластер октябрь начал ...
wl
8
Карта сайта