Знакомый попросил прикинуть небольшую инфраструктуру, чтобы развернуть self-hosted версию CRM Bitrix. Мы раньше с ним уже делали подобное, так что я собрал плюс-минус проверенный вариант, который успешно работал в прошлом. Да и сейчас наверное работает.
Чтобы добро не пропадало, решил и с вами поделиться. Кстати, если кто-то будет готов настроить подобное, напишите мне в личку, я сведу с заказчиком. У меня нет возможности всё это сейчас реализовать. Чего-то принципиально сложного тут нет. Надо просто всё аккуратно сделать.
Я предложил 2 сервера в аренду, если не надо HA (High Availability). Если надо HA, добавляется третий, но тут допустимо без него.
Арендуются 2 выделенных сервера под бюджет и потребности. Достаточно хотя бы двух дисков на каждом. Собираем там RAID1 на Mdadm, поверх ставим Proxmox VE. Тут же на гипервизоре настраиваем firewall, пробросы портов и NAT для виртуальных машин. Можно и в отдельной виртуалке шлюз сделать, но тут у нас простая история, можно и так.
🗄 На первый сервер ставим 3 виртуалки:
1️⃣ Прокси на базе Nginx/Angie в режиме proxy_pass. Весь HTTP трафик направляем туда и дальше раскидываем по сервисам. Всё остальное закрываем файрволом на гипервизорах. Если нужно ограничить доступ к инфраструктуре, тут же можно настроить VPN (WG или OpenVPN). Или вынести в отдельную виртуалку. Я обычно выношу, но не уверен, что в простых случаях это реально нужно. Немного переусложняет инфраструктуру, плодя дополнительные сущности.
2️⃣ VMBitrix. Тут будет работать сам Битрикс в своём стандартном окружении. Больше ничего ставить не рекомендую.
3️⃣ Виртуалка с бэкапом. Тут будет храниться локальная копия на уровне файлов и дампов субд (если по размеру пролезут, иначе бинарные бэкапы) для быстрого восстановления, если на VMBitrix что-то случится из-за червя, вируса или ошибки разработчика. На уровне виртуальных машин данные изолированы, так что зловред или ошибка не затронет их, зато можно быстро восстановиться. Резервные копии делать инкрементными. Я бы использовал rsync, но можно любое другое решение, не принципиально.
🗄Второй сервер используется под бэкапы, мониторинг и логи. Предлагаю такие виртуалки:
1️⃣ PBS (Proxmox Backup Server) для бэкапа на уровне виртуальных машин виртуалок с первого сервера. Думаю, имеет смысл бэкапить только прокси и VMBitrix.
2️⃣ Мониторинг на базе Zabbix, Prometheus, VictoriaMetrics. Не принципиально, что больше знает и любит исполнитель или тот, кто будет поддерживать.
3️⃣ Сбор и анализ логов, особенно с веб серверов (прокси и VMBitrix). Ну и все остальные тоже. Решение также на выбор исполнителя, кто что больше любит и знает: ELK, Loki, VictoriaLogs.
Отдельно где-то арендуется обычная VPS с большим диском и туда передаются бэкапы сырых данных с виртуалки с бэкапами на первом сервере. И туда же копируются все конфигурации, особенно мониторинга и логов. Сами данные этих сервисов в рамках данной задачи не представляют большой ценности, я бы не бэкапил.
Остаётся ещё вопрос хранения кода. Если будет активно идти разработка своими силами, то на первый сервер можно добавить отдельную виртуалку под Git и её тоже бэкапить в PBS.
Что думаете насчёт предложенной схемы? Как бы решали такую же задачу?
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#bitrix
Post #4575
10.5K

- 👍 160
- 👎 9