Size: a a a

2020 June 24

Bm

Baka mate in Sysadminka
Вадим Исаканов
Vadims-MBP:~ vadimisakanov$ digs lostfilm.tv
188.186.157.49
Vadims-MBP:~ vadimisakanov$ whois 188.186.157.49 | grep name
netname:        RU-RAID-20090619
org-name:       JSC "ER-Telecom Holding"
org-name:       JSC "ER-Telecom Holding"
Vadims-MBP:~ vadimisakanov$ digs lostfilm.tv @1.1.1.1
188.186.157.49
Vadims-MBP:~ vadimisakanov$ digs lostfilm.tv @8.8.8.8
188.186.157.49
Даже так
источник

S

SW in Sysadminka
поэтому и написал что стимулируют на dns-over-https
источник

r

raven428 in Sysadminka
SW
они все подменяют
Имелось ввиду, наверное, DOH от cloudflare. Там оно тоже есть.
источник

S

SW in Sysadminka
raven428
Имелось ввиду, наверное, DOH от cloudflare. Там оно тоже есть.
ну я с этого и начал сообщение
источник

ВИ

Вадим Исаканов... in Sysadminka
SW
поэтому и написал что стимулируют на dns-over-https
Латенси увеличится, снова будем локальные днс кэши делать
И больше впнов богу впнов
источник

ВИ

Вадим Исаканов... in Sysadminka
И вот тут самое время выступить против законов о запрете vpn
источник

r

raven428 in Sysadminka
Кстати, в unbound тремя строчками настраивается:
forward-zone:
name: .
forward-tls-upstream: yes
forward-addr: 1.1.1.1@853
forward-addr: 1.0.0.1@853
forward-addr: 9.9.9.9@853
forward-addr: 149.112.112.112@853

Давно уже у себя сделал, ибо забодали.
источник

ВИ

Вадим Исаканов... in Sysadminka
норм)
источник

ND

Nikolay Didenko in Sysadminka
Вадим Исаканов
Есть имхо, что просто мастер-мастер схема, даже с galeradb и подобными (не знаю про vitess), или недостаточно надежна, или слишком сложна (нужны всякие скрипты-костыли для проверки целостности данных).
Нет гарантии того, что запись прошла прям на все узлы нашего мастер-мастер.
Я б добавил какой-то буфер (типа Кафки), в котором данные хранятся, пока не придет подтверждение завершенной транзакции от всех узлов ДБ кластера.

И я тут кидал ссылку на митап Mysql@Scale, там чуваки из Баду и Авито говорили про их опыт:
- В основном master-slave схемы, а не мастер-мастер. Это просто проще.
- ProxySQL на каждом узле, который обращается к базе
- Запросы чз ProxySQL балансятся по нодам мускула, и proxysql выкидывает сдохшие узлы из списков балансировки. Тут вопрос про балансировку, раз они в основном используют мастер-слейв, видимо, мастеров все-таки обычно много.
- И тут деталь, которую я или не досмотрел, или не понял - как мы убеждаемся, что транзакции успешно прошли на всех узлах
Я несколько лет назад перевозил всю инфраструктуру нашу из одного ЦОДа в другой и соответственно надо было заново развернуть её в другом ЦОДе.
Т.к. до этого всё было поднято спонтанно, руками и местами отказоустойчивость была конкретно ручная, то мы решили всю инфру раскатывать через ansible и попутно решали вопросы повышения отказоустойчивости.
И тоже думали про кластеры и прочую автоматическую хрень (master-master). Связывать с этим не хотелось, т.к. было понятно  что на поддержку и в случае факапа софта потребуется очень много времени.
В итоге решили делать по схоже схеме с деградационными схемами. Т.е. в случае выхода из строя мастера мы готовы пожить в RO до тех пор пока руками не примем решение что с этим делать. Ибо мастера могут потеряться по разным причинам (ошибка в сети, ошибка в конфигурации, выход из строя железки).

1. С mysql вообще схема была простая: master -> slave -> [slave N] -> slave for backup. На всех слейвах read_only=1. Все обращения в mysql идут через именам, имена смотрят на haproxy, инстансов haproxy 2 (1 мастер, 2 слейв). У слейва настроен пул из всех слейвов и мастера. У мастера настроен master и в качестве бэкапа следующий за ним слейв.
В итоге если слейв какой-то подыхает - всё продолжит штатно работать - мы его восстановим и подоткнем в нужное место обратно.
Если подохнет мастер - мы получил об этом нотификацию и пойдем смотреть причину и по факту диагностики примем решение запускать мастера на следующем слейве или восстанавливать мастера исходного. А всё это время сервисы работают в RO. Да, сервисы должны быть готовы к этому - в этом нет большой проблемы.

2. С Редисом тоже похожая схема - глядя на статec sentinel, который рядом с инстансом крутится - мы понимаем кто есть мастер и туда haproxy льет трафик. Несколько раз это проверялось в бою.

3. memcache с помощью mcrouter без проблем масштабируется и HA тоже настроить можно.

4. кассандра из коробки HA, но надо понимать что там изначально eventual consistency и сравнивать ее с мускулем неразумно.

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

ND

Nikolay Didenko in Sysadminka
В Авито кстати те принципы которые ты перечислил, до боли узнаваемы. Они применялись и применяются в одной крупной новосибирской компании, выходцов из которой немало работают или работали в Авито )
источник

ВИ

Вадим Исаканов... in Sysadminka
Спасибо, что рассказал, интересно
источник

ВИ

Вадим Исаканов... in Sysadminka
А расскажешь, для чего и почему у вас мускуль?
Условно говоря, деньги же вам считать не нужно, верно?
источник

ND

Nikolay Didenko in Sysadminka
Вадим Исаканов
А расскажешь, для чего и почему у вас мускуль?
Условно говоря, деньги же вам считать не нужно, верно?
Истоирически сложилось. Он там с основания. Наверное с начала двухтысячных или даже раньше.
источник

ВИ

Вадим Исаканов... in Sysadminka
У меня тоже есть мысль, что лет 10 назад, например, было мало других хороших баз, поэтому везде были реляционные базы
источник

r

raven428 in Sysadminka
Oracle старше )
источник

ND

Nikolay Didenko in Sysadminka
Вадим Исаканов
У меня тоже есть мысль, что лет 10 назад, например, было мало других хороших баз, поэтому везде были реляционные базы
да, когда у тебя отлаженные процессы и фреймворки - как-то и нет мотивации тратить время/деньги на хипстерские хотелки с чем-то поиграться.
Кассандрой хотели заменить полностью мусукуль, и уже почти это сделали, но пришли слияния и поглощения и этот процесс встал. А сейчас и вообще отменился и вся эта инфра скоро останется только в репозиториях в качестве истории )
источник

ND

Nikolay Didenko in Sysadminka
raven428
Oracle старше )
ну мы же малый бизнес ) в 98ом году стартап )
источник

r

raven428 in Sysadminka
У меня так вышло, что с ораклом в том числе программированием для него я познакомился раньше мускла. И после знакомства с мусклом было искреннее недоумение, отчего такая любовь к этому недоделку. Тогда ещё InnoDB и транзакций в нём даже не было или было, но глючная и никто её не использовал.
источник

ND

Nikolay Didenko in Sysadminka
raven428
У меня так вышло, что с ораклом в том числе программированием для него я познакомился раньше мускла. И после знакомства с мусклом было искреннее недоумение, отчего такая любовь к этому недоделку. Тогда ещё InnoDB и транзакций в нём даже не было или было, но глючная и никто её не использовал.
любовь к деньгам вероятно.
ну и когда у тебя задачи добавить объявление в таблички и потом вывести список этих объявлени. Кажется Оракл - это оверхед.
источник

r

raven428 in Sysadminka
Просто оракл нельзя было запустить так просто как мускул. Опять же с другой стороны, почему нельзя было взять sqlite. Он не сильно позже появился. К слову, оракл в то время никто не покупал. Да и сейчас не все покупают )
источник