Maxim
смерть мастера все-равно все убъет
Alexander
мне главное, чтобы чтение не убило, а с записью и подождут... видимо, какая-то проверка ещё нужна
Alexander
по идее, запросы распределяются на балансировшике за пределами облака, они тупо там разбиваются на 3 сервера, на каждом сервере копия всех контейнеров
Alexander
если nginx на одном из них не отвечает - запрос уйдёт на другой сервер, где будет свой nginx, свой код и своя субд, к которой код и полезет с запросом
Alexander
это если запросы на чтение
Alexander
а про запросы на запись я не знаю как лучше сделать, наверное, тут надо погуглить и подумать про разные варианты...
Maxim
никак
Alexander
ну, 1 из вариантов - писать сразу во все 3 базы
Alexander
если 1 из них недоступна - возвращать 500
Alexander
другой вариант - выбрать мастер и писать в него, если мастер недоступен - возвращать 500
Alexander
какие-то варианты всё равно есть
Maxim
ну а дальше-то что делать?
Alexander
третий вариант - сделать сетевую файловую систему и туда поставить контейнер с базой
Maxim
вот у тебя выбранный мастер сломался
Maxim
и?
Alexander
тут или 500 (ждём, пока он починится) или переключаем слейв в мастер
Alexander
и потом после восстановления мастера синхронизируем его
Maxim
а остальных слейвов пересинхронизируем с новым мастером
Maxim
и старый мастер тоже становится слейвом
Maxim
где тут про отказоустойчивость-то?
Maxim
это же часы ручной работы
Alexander
эту синхронизацию нельзя автоматизировать?
Alexander
как те же хостеры, например, делают?
Maxim
какие хостеры?
Alexander
ну, какие-нибудь облачные
Alexander
хероку там какой-нибудь
Maxim
я работал в подобном "хостере"
Maxim
там круглые сутки сидит грядка S2L'ей и смотрит в заббикс
Alexander
https://www.heroku.com/
Alexander
мм
Maxim
дада, я знаю, что такое хероку
Maxim
но у них не три сервера
Maxim
и они могут себе позволить круглосуточный мониторинг инфраструктуры
Alexander
а вариант с объединить SSD в сетевую ФС (Ceph какой-нибудь) и там запускать контейнер с PostgreSQL, 1 на облако?
Alexander
он нормальный?
Maxim
а в чем тогда смысл вообще контейнеризировать постгрес?
Alexander
ну, просто для удобства
Alexander
доставки
Maxim
и еще помимо устойчивости многих интересует перфоманс
и вот тут-то все начинают советовать так не делать
Maxim
не городить сетевых файловых систем и вот этого всего
Alexander
производительность сильно падает даже если NVMe диски?
Maxim
да хоть в памяти держи
Maxim
ты в сеть упрешься
Alexander
даже если 10гигабитка?
Maxim
у тебя 10гбс между серверами?
Alexander
ну я планирую элтекс купить, там 4 порта будет
Alexander
мне 3 надо)
Alexander
мне советовали недорогие свитчи элтекса
Alexander
http://eltex-msk.ru/catalog/ethernet/ethernet-kommutatoryi-agregaczii/mes3124.html
Alexander
вот эти вроде
Maxim
> наличие 2 интерфейсов 10Гбит/с (SFP+),
Maxim
SFP - это оптические интерфейсы
Maxim
не медь
Maxim
у тебя в сервера оптика заходит?
Alexander
у меня обычные, но там карточки есть недорогие интеловские же
Alexander
я сначала гигабитку сделаю в любом случае
Alexander
но дальше если нужно будет - сделаю апгрейд сети
Alexander
мне сейчас важно понять, оно решит проблему или нет
Alexander
если нет - то и смысла не будет обновлять гигабитную сеть
Maxim
пока ты не можешь четко обозначить проблему, решить ее невозможно
Alexander
так я обозначил - работа PostgreSQL на Ceph
Alexander
при какой нагрузке 10 гигабитки будет не хватать?
Alexander
вот если обычные Xeon E5 серверы (ну, супермикра), тот элтексный свитч и интеловские сетевые карточки
Maxim
а мы вообще точно еще в канале про кубернетес?
Alexander
это слегка оффтопик, но я хотел бы понять, как пользователи Kubernetes эти проблемы решают
Alexander
вам ведь тоже СУБД в облаке нужно запускать как-то
Alexander
я в чём вижу главный плюс систем типа Kubernetes - сломался 1 сервак, а проект работает
Alexander
если с базой ничего не делать - смысла от Kubernetes не будет
Alexander
разве нет?
Maxim
так же, как и не пользователи кубернетес
резервирование и отказоустойчивость классических РСУБД имеет очень мало общего с контейнерной виртуализацией и системами оркестрации
Maxim
Alexander
у меня 20-30 проектов почти без нагрузки
Maxim
но как только ты приносишь stateful-базу, сказка кончается и приходится решать те же вопросы, которые были без контейнеров
Alexander
главная цель, чего я хочу от облака - отказоустойчивость
Maxim
только еще и с контейнерами
Maxim
у меня есть stateless приложения с чудовищной нагрузкой, если что
Maxim
потому что у них десятки миллионов пользователей
Maxim
что не мешает им оставаться stateless
Maxim
и они - главные "потребители" систем оркестрации контейнеров