Куча говна / Говнокод #27250 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
Объясните, как правильно разрабатывать в 2021 году

Есть один продукт, состоящий из сайта, сервера и БД, связывающей их.
Сайт на PHP, с микрофреймворком, устанавливаемым через composer, отображающий данные из БД
Сервер - программа, слушающая порт из свой конфигурации и записывающая в БД

Таковы потребности, что на один сервер может быть установлено одна и более изолированных копий этого продукта (сервер + сайт + БД), а серверов несколько.
Сайты разделяют через виртуальные хосты nginx, сервера по портам, БД по имени.
Может случиться такое, что нужно остановить сайт или сервер, оставив второе работать.

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

Что здесь нужно? Kubernetes, swarm, docker, docker-compose?

Проблема в том, что никогда не приходилось внедрять такое самостоятельно.
Смотрю в сторону docker-compose, но везде инструкции только для одного экземпляра продукта на одном сервере (или я чего-то не понимаю)

Объясните, пожалуйста, по-хорошему, что делать в таком случае

Запостил: Крендель Крендель, (Updated )

Комментарии (18) RSS

  • Уже 5 часов прошло, а человеку не ответили. SLA нарушен.
    Ответить
  • Да, докер тебе подойдёт, и как раз с него тебе нужно начать. Твоя задача сделать несколько контейнеров под стек. По всей видимости тебе понадобятся контейнер для сайта на пхп (там же будет и свой хттп сервер, чисто для пхп), ещё один контейнер для того, что названо в оп посте сервером, и третий для базы.

    Для каждого сервиса у тебя получится свой докерфайл, и лучше постараться использовать готовый с докерхаба. Гиганты типа nginx, php и СУБД разумеется имеют там свои "официальные" докерфайлы, от которых можно форкаться через FROM, и порой даже ничего больше и делать не надо, если подбросить исходники в нужный вольюм.

    docker-compose тебе нужен чтобы не ебаться с контейнерами вручную, приложение из нескольких контейнеров будет запускаться разом и в одной виртуальной сети, контейнеры друг друга видят, а другие не видят. После запуска можно будет один контейнер перезапустить спокойно, или убить, не трогая остальные. Насколько я знаю, можно докер-композом запускать и несколько инстансов приложения, но если тебе нужно развести это все по портам, доменам и машинам, лучше использовать кубернетис, он как раз для этого и есть, там можно обновляться без даунтайма, задавать сложные правила для маршрутизации между инстансами, распределения нагрузки и так далее.
    Ответить
    • Основная ебля будет наверное в том, что инстансам одного приложения нужны вроде как разные конфиги. Кубер должен это уметь, иначе оно нахуй не нужно. Но даже в худшем случае, если у тебя все конфиги - это файлы, ты уже можешь сэкономить, и запускать экземпляры одного приложения, подбрасывая разные конфиги через вольюмы. Это уже как минимум не целая копия всего приложения, а только копия конфигов. То есть, если тебе не захочется ебаться с кубером или ситуация будет проще, чем та, для которой он нужен (типа, копий приложения несколько, но они полностью независимы и друг с другом вообще не взаимодействуют), то ты спокойно можешь ограничиться docker-compose и обмазаться говноскриптами для говнозапуска всей хуйни, роняния всей хуйни, и ещё парочки типа роняния одной хуйни и перезапуска другой. И все это себе на кнопочки в jenkins (который скоро умрёт).
      Ответить
    • > о всей видимости тебе понадобятся контейнер для сайта на пхп (там же будет и свой хттп сервер, чисто для пхп)

      по феншую поднимать fcgi и к нему коннектиться нгинксом. но там заёб со всеми этими переменными.
      Ответить
  • нужен докер компос, который развернет субд, сервер приложений php (fpm) и nginx.
    Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8