EventStore в Docker

2

Я занят изучением использования Docker для системы, над которой я работаю. Мы используем EventStore, и я был очень рад видеть, что для него уже есть Docker-контейнер .

Но когда я просматривал это, я видел это опубликованное несколько раз.

Примечание. Этот контейнер предназначен только для разработки.

Я пытаюсь выяснить, что делает этот контейнер непригодным для производства, но, похоже, не может найти прямой ответ от кого-либо. Самое близкое, что я получил, это то, что все узлы ES ​​будут находиться в одном контейнере, поэтому, если он выйдет из строя, все пойдет вниз.

Существует также эта тема .

Так может кто-нибудь дать мне краткую причину того, почему ES не подходит для Docker в производственной среде?

Дэвид Пилкингтон
источник

Ответы:

1

Отказ от ответственности: я не эксперт в Event Store . Могут быть особенности, специфичные для Event Store, которые делают его менее подходящим для запуска из контейнера, о котором я не знаю.

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

Вещи, которые нужно знать:

  • где вы храните свои данные
  • где вы храните ваши файлы конфигурации
  • какая производительность требуется
  • как насчет безопасности

Данные : из-за способа запуска контейнера в примере ваши данные будут «внутри» контейнера. Удалите или обновите контейнер, и ваши данные исчезнут навсегда.

Чтобы сделать ваши данные постоянными, используйте тома данных или контейнеры томов данных . Они хранят ваши данные на хосте (их Dockerfile уже поддерживает их, см. VOLUME).

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

Файлы конфигурации : та же история, что и для ваших данных. Вы можете сохранить свои конфигурационные файлы в томе данных (контейнере) или передать их через Dockerfile (как они сделали в своем Dockerfile).

Производительность : при использовании Docker и нативной производительности в некоторых ситуациях может наблюдаться небольшое снижение производительности. См. Https://stackoverflow.com/q/21889053/4459346.

Безопасность : из-за способа запуска контейнера в примере хранилище событий будет отображаться на хост-компьютере. Любой может получить к ним доступ извне. Чтобы они оставались локальными для хоста -p 127.0.0.1:1113:1113.

В компании, в которой я работаю, я настроил mysqlсервер в контейнере. Данные и файлы конфигурации «хранятся» в контейнере тома данных. Я также настроил задание cron, которое запускает другой контейнер для резервного копирования mysqlданных на хост.

Многие приложения (также «докеризованные») успешно используют mysqlэтот способ. Мы не видели никакой разницы с бегом в mysqlестественных условиях. Может быть более 50 пользователей одновременно.

NZD
источник