Задать вопрос
Ответы пользователя по тегу Развёртывание ПО
  • Как правильно настроить сервер(а) для dev/test/prod?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Все настройки ваших серверов сводятся к установке приложения gitlab-runner (либо настройке SSH для CI/CD сервера: т.е. CI/CD сервер подключается к целевому серверу по SSH/SFTP, копирует файлы и выполняет скрипты на целевой машине), а так же настройке требуемых зависимостей вашего проекта. Stage сервер настраивается идентично Prod серверу. Dev сервер настраивается для прямого доступа к нему со стороны разработчиков для отладки и дебага багов, не воспроизводящихся локально. В гитлабе настраивается CI/CD для деплоя через gitlab-runner или SSH, развертывается отдельный CI/CD сервер с приложением gitlab-runner и докером для запуска CI/CD задач и деплоя на серверы. Для каждой ветки настраиваются свои правила и ограничения деплоя под отдельные сервера. Итого у вас должно быть минимум пять серверов: гитлаб, cicd, dev, stage, prod. Плюс еще есть роль VPN сервера - эту роль вполне можно совместить с гитлабом. CI/CD - только отдельный сервер, ибо задачи штука ресурсоёмкая (компиляция, сборка, установка зависимостей и прочее). Еще очень полезная штука - кэширующий сервер для образов докера и пакеты (harbor - топ). Ускоряет работу задач и экономит трафик. Prod сервер может быть как сервером, так и группой серверов - prod-app, prod-db, prod-files и т.п. В идеале stage должен быть идентичной конфигурации, но обычно обходятся простыми виртуалками для экономии ресурсов, в отличии от prod сервера.
    Ответ написан
    Комментировать
  • Как разместить web api на FTP сервере?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    После загрузки исполняемого файла на сервер его еще надо запустить как приложение или сервис. Кроме того, просто обычный фтп сервер для документов и сервер с фтп сервисом для загрузки файлов на него - это две разные вещи. Вообще, вам надо не фтп, а стандартный SSH для подключения к серверу, загрузки файлов на него и настройки сервера для запуска вашего приложения на нём.
    Ответ написан
    6 комментариев
  • Независимая выкатка микросервисов. Как сделать так, чтобы на продакшен не попадал неготовый код?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Делаете три окружения: develop, staging, production. Develop - WIP, то, над чем сейчас идет работа. Staging - следующий стабильный продакшен. Тестирование отдельных фич можно проводить как в рамках staging так и в develop. Еще можно завести отдельный testing - туда отдельно вливать и деплоить изменения конкретно для тестирования. Работа ведется в рамках рабочего процесса github flow. Для каждого окружения поднимаете все нужные сервера и сервисы. Настраиваете автоматический деплой по PR в ветку для develop/testing/staging. Настраиваете автоматический запуск тестирования, при этом если тесты не проходят - деплой тоже не происходит. Деплой в production запускается либо по событию "релиз" либо вручную. Кроме того, сам деплой в production настраивается пошагово с возможностью отката на предыдущую версию. В целом же, рекомендую сделать декомпозицию вашего решения и рассмотреть возможность разделить ваш шлюз на несколько независимых компонентов/модулей.
    Ответ написан
    Комментировать