LINUX.ORG.RU
ФорумAdmin

БД для docker

 , , , ,


0

1

У меня возник вопрос.

Часто в репах docker для предлагается скачать к контейнеру приложения еще и базу данных.

Обычно это Postgresql, MySQL и MariaDB.

Какая из них будет предпочтительней в использовании?

Думаю из списка можно вычеркивать Postgresql с его не совсем корректным завершением при перезапуске контейнера. Тогда вопрос остается к последним двум.

Спасибо.



Последнее исправление: Krishnoved (всего исправлений: 1)

Ответ на: комментарий от anonymous

ы расскажи какой мне профит от докеризации/контейнеризации постгреса либо того же мускуля?

Ну, вот, хочешь ты попробовать сильно другую версию постгреса или того же мускуля. А загрязнять ОС всяким мусором, нужным для сборки запуска этого хозяйства не хочешь. Что будешь делать?

ugoday ★★★★★
()
Ответ на: комментарий от stevejobs

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

anonymous
()
Ответ на: комментарий от ugoday

а теперь отмотай назад разговор и открой для себя то, что речь идет о БД в продакшне

anonymous
()
Ответ на: комментарий от pekmop1024

Нормальную виртуалку поставлю. Ибо пихать БД в докер... ну выше было уже.

Против религиозных тезисов возражений не имею.

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

ты так и не ответил, чем мне поможет докеризация постгреса?

Тем же, чем и докеризация всего остального, не?

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Это не религиозные возражения.
Смысла гонять на девелоперской машине окружение, которое никогда не попадет в продакшен - нет. Потому что тогда софт будет написан не для того, чтобы он работал в продакшене, а для того, чтобы он работал у погромистов. А такой софт и такие погромисты - вообще не нужны.

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Волюмы это не персистентность

А что?

они находятся за пределами контейнера

Это рекомендуемый способ хранения данных в Docker'е. А вы написали:

Никогда не клади БД в докер. Сколько раз уже говорено и писано об этом. В докере не должно быть данных. Точка.
Докер не умеет в персистентность. Более того, он и не планировал ее уметь никогда, это фича. Все, что ты засунул в докер, может подохнуть в любой момент

Anatolik ★★
()
Ответ на: комментарий от ugoday

докеризация stateless говна помогает мне легко масштабировать это говно в случае проблем с производительностью этого говна. как мне поможет докеризация постгреса в случае проблем с производительностью постгреса?

anonymous
()
Ответ на: комментарий от Anatolik

А что?

Это внешнее хранилище.

Это рекомендуемый способ хранения данных в Docker'е. А вы написали:

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

pekmop1024 ★★★★★
()
Ответ на: комментарий от anonymous

Не уверен, что он такие слова умные знает. Ему просто лень/не умеет поднять сервер БД, потому проще дернуть докер.

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Не в докере, а для докера.

Как вы определяете, что «в», а что «для»?

Anatolik ★★
()
Ответ на: комментарий от pekmop1024

Смысла гонять на девелоперской машине окружение, которое никогда не попадет в продакшен - нет.

Т.е. если мне нужно проверить как libfoo-x.y.z работает с сервером бд blah-k.l.m, мне нужно закупать десяток серверов и СХД, раз в продакшене оно будет развёртываться именно на таком оборудовании?

Вот облом.

Потому что тогда софт будет написан не для того, чтобы он работал в продакшене, а для того, чтобы он работал у погромистов.

Ты просто гуру тестирования.

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

А. Я понял. Ты просто путаешь докер-контейнеры и микросервисную архитектуру. Они действительно часто используются вместе, но это далеко не синонимы.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

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

anonymous
()
Ответ на: комментарий от anonymous

В лоб - никак

А вот если сначала наделить его свойством stateless, то он станет stateless говном, а к этому уже можно применит докеризацию, что избавит от проблем с производительностью

Ну както так…

Minona ★★☆
()
Ответ на: комментарий от anonymous

а теперь найди, где я говорил о том, что это синонимы.

Нигде. Но твои тексты станут верными, если все вхождения слова «докер» заменить на «микросервисная архитектура».

как оно поможет мне с постгресом, мне ответит кто-нибудь?

Как я уже и говорил ранее, точно так же, как поможет со всем остальным. Как оно это делает, ты сможешь узнать, зайдя на hub.docker.com и проверив как люди используют докер/

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

кто мне конфиги поправит, репликацию настроит. или докер мне как-то поможет в ситуации, когда вдруг понадобился шардинг?

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

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

докер - один из многих кирпичиков на большом пути

погугли, что такое hyperconvergence и как работает современный девопс (гугл даже сделал про это бесплатную книжку: https://landing.google.com/sre/book.html)

stevejobs ★★★★☆
()
Ответ на: комментарий от ugoday

Нигде. Но твои тексты станут верными, если все вхождения слова «докер» заменить на «микросервисная архитектура».

анус себе замени, пёс. меня мои тексты устраивают именно в том виде, в котором я их написал

Как я уже и говорил ранее, точно так же, как поможет со всем остальным. Как оно это делает, ты сможешь узнать, зайдя на hub.docker.com и проверив как люди используют докер/

то есть ответа не будет, только бла-бла-бла? зачем ты тогда в принципе в тред влазил?

anonymous
()
Ответ на: комментарий от stevejobs

докер - один из многих кирпичиков на большом пути

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

anonymous
()
Ответ на: комментарий от anonymous

меня мои тексты устраивают именно в том виде, в котором я их написал

Но ведь тогда получается глупость.

то есть ответа не будет,

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

1. Ты смотришь на вещи не под тем углом.

2. Если сотни тысяч инженеров используют метод а, чтобы решить задачу А, значит метод а небесполезен и, возможно, пригодится и тебе.

Дальше сам.

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

потому что докер решает кусок этого пути. Это очень, очень технически сложный кусок, чтобы простой быдлокодер сам мог за месяц времени и бочку смузи написать свой аналог Докера. Обычным людям (не гуглам с майкрософтами) приходится жрать что есть и обмазывать его клеем и костылями. Плюс вокруг докера уже есть огромное количество утилит (типа кубернетиса), которые тоже самому писать долго, а для докера уже всё готово, достаточно обмазать костылями и смузи.

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

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от anonymous

По большому счёту --- избавляются от недостатков динамического связывания. С точки зрения установки-развёртывания-сопровождения очень удобно иметь сущность, которая включает в себя всё, что нужно для своей работы. Чтобы вся работа свелась к положить исполняемый файл нужной версии в $PATH.

Вот, например, прямо сейчас я планирую провести пару экспериментов с elasticsearch. И всё, что мне нужно, это сделать.


$ docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:5.6.0

И никакого секса с установкой 100-500 библиотек, разрешения конфликтов версий и корректным удалением этого барахла через час, когда я закончу. Это ли не счастье?

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

это твое счастье имеет два небольших недостатка: оно не имеет отношения к

а) хранению данных

б) продакшну

при том, что вопрос был о том, зачем мне засовывать в контейнер продакшн базу данных

anonymous
()
Ответ на: комментарий от ugoday

P.S. И со стороны разработчиков тоже хорошо. Они собирают один образ один раз. А не овер 9к пакетов под все используемые версии (т.е. лет на 5 в прошлое) всех популярных дистрибутивов. После чего всё равно остаются всякие отщепенцы которые ноют на весь интернет, что для их школолинукса не собрали пакетика.

ugoday ★★★★★
()

Какая из них будет предпочтительней в использовании?

PostgreSQL конечно. Про не завершение, это скорее всего кто-то криворукий.

th3m3 ★★★★★
()
Ответ на: комментарий от th3m3

Нафиг тогда Докер, с таким подходом.

«для всякого stateless-говна»

pekmop1024 ★★★★★
()
Ответ на: комментарий от ugoday

Ваш юзкейс stateless , а его statefull.

Чтобы ему было такое же счастье как вам (ну почти такое же), ему надо что-то типа архитектуры ceph , только вместо OSD - PostgreSQLDBSD :)

Minona ★★☆
()
Ответ на: комментарий от Minona

Ваш юзкейс stateless

Стоит добавить '-v /path/to/local/dir:/usr/share/elasticsearch/data' и внезапно stateless превращается в statefull.

Но это не важно. Вопрос не в том, что можно ли использовать docker для statefull приложений, а в том, когда и зачем использовать (а когда не использовать) контейнерную виртуализацию.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Стоит добавить '-v /path/to/local/dir:/usr/share/elasticsearch/data' и внезапно stateless превращается в statefull

нет, не превращается, вы получили stateless контейнер и прицепили к нему внешний state.

Вопрос не в том, что можно ли использовать docker для statefull приложений

вопрос анонима как раз в этом

Minona ★★☆
()
Ответ на: комментарий от Minona

нет, не превращается, вы получили stateless контейнер и прицепили к нему внешний state.

Поясни пожалуйста, в чём разница?

ugoday ★★★★★
()
Ответ на: комментарий от Yustas

У вас какой-то сумасшедший контейнеры рандомно кладёт

Есть такая практика в нетфликсе - chaos monkey, оно как-раз этим и занимается для тестирования факапоустойчивости инфраструктуры. Ответственные за разработку сервиса, приведшего к падению остальных, огребают знатных люлей и после этого начинают писать идеальный код и продумывать архитектуру более тщательно тут должна была быть шутка про каскадные падения, но её удалят модераторы stevejobs, но даже хороший кот не спасает от рандомных падений(не по причине chaos monkey) в большой инфраструктуре и к этому надо быть готовым.

anonymous
()
Ответ на: комментарий от Aber

Можно и яйца дверью прищемить, но как это относится к sigterm/sigkill?

anonymous
()
Ответ на: комментарий от stevejobs

Hyperconvergence является предметной областью и задачей, жизненно необходимой.

это только в воспалённом сознании оголтелых апологетов, которые максимально оторваны от реальности и не понимают, как реальные вещи работают и что есть области где докер не уместен.

Вопрос в том, что для этого есть лучше Docker.

В том-то и дело, что у докера нет никаких преимущества перед оркестраторами баз данных.

То есть, базы данных и их файловые хранилища так или иначе будут виртуализованы, это не вопрос.

кококо, докероблака.

anonymous
()
Ответ на: комментарий от stevejobs

докер - один из многих кирпичиков на большом пути

вот именно, что один из многих вариантов. во многих органихациях есть ci/cd, hypercorvergence и прочие базворды, но нет докера. и не придвидится, потому что уже давно без него процессы отлажены.

и как работает современный девопс (гугл даже сделал про это бесплатную книжку

и где в этой книге про hyperconvergence?

погугли, что такое hyperconvergence

вот ты бы сам и погуглил что это такое, а то смешно читать горе-архитектора.

anonymous
()
Ответ на: комментарий от anonymous

у докера нет никаких преимущества перед оркестраторами баз данных.

А у руля нет никаких преимущест перед подушкой безопасности.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

тебя и стиви неоднократно просили показать плюсы засовывания производственной базы данных в докер. в ответ вынесёте какую-то хипстерскую дичь, что показывает ваш уровень понимания вопроса.

anonymous
()
Ответ на: комментарий от ugoday

Для твоей задачи подходит не докер, а snap или flatpak
Но ты продолжай забивать гвозди микроскопом, естественный отбор и без меня хорошо сработает.

pekmop1024 ★★★★★
()
Ответ на: комментарий от ugoday

точно-точно, а потом, чтобы закрыть критическую уязвимость, вместо обновления хоста, пересобираем все контейнеры, это я ещё молчу про дублирование 100500 версий mycoollib.so.{0..9}.{0..9} и «всё, что нужно для своей работы.». приходи когда у тебя будет овер9к контейнеров в проде.

anonymous
()
Ответ на: комментарий от Minona

stateless - функция, statefull - объект. Понятна разница?

Всё ещё нет. Телепат из меня так себе. Не могли бы вы изъясняться менее лаконично?

ugoday ★★★★★
()
Ответ на: комментарий от pekmop1024

Для твоей задачи подходит не докер, а snap или flatpak

Да, это другой (тоже хороший) подход для решения тех же проблем. У него есть как преимущества (легковесность, скорость), так и недостатки (отстутсвие полноценной изоляции).

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

Гражданин, вы не на митинге.

чтобы закрыть критическую уязвимость, вместо обновления хоста, пересобираем все контейнеры,

да. Это проблема?

я ещё молчу про дублирование 100500 версий mycoollib.so.{0..9}.

и правильно молчите. Продолжайте в том же духе.

ugoday ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.