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 
    
    
        
        
        
        и они - главные "потребители" систем оркестрации контейнеров