?

Log in

No account? Create an account

Стой под стрелой

Поступки и мысли, о которых могу вспомнить не краснея

Previous Entry Поделиться Next Entry
БД на диване
усы2
tonsky
Я тут слушаю по субботам подкаст, пока в квартире убираюсь, DevZen. У нас с ними своеобразный симбиоз: они мои посты иногда обсуждают, а я из их высказываний иногда черпаю темы для новых постов. В этот раз был совершенно некрасивый наезд на дашборд CouchBase, мол, зачем оно такое нужно, если правильные админы первым делом метрики в graphite сливают.

Я согласен, что дружить с внешним миром надо уметь, но Валера (в основном) совершенно не понял прикола, что это за дашборд. Между тем это очень концептуально важная штука: CouchBase это программа, хардкорная, серверная, все дела, для серьезных продакшнов, которая сразу работает. То есть ее установка это apt-get install и после этого пара кликов мышкой в веб-интерфейсе. Даже настройка кластера в эти пару кликов укладывается. То есть это примерно как скачать программу из аппстора, сравнимый уровень головняка. Я понимаю, что это непривычно, и что так почти никто не делает. Но так можно, и это революционно.



И кайф не только в установке. Сам CouchBase это предельно простой продукт, распределенный кэш ключ-значение. Я подозреваю что там функционального кода раза в 3 меньше чем навернутой вокруг него админки. В нормальном продукте так и должно быть. Это программа, которая сама знает о своей эксплуатации, мониторит ее, репортит, дает UI для управления. У них там графики нагрузки (десятки метрик, возможность zoom in к чему-то конкретному и zoom out к общей картине), мониторинг хост-системы, схема кластера, UI для переконфигурации. Все это живое и web 2.0. По сути это базовый алгоритм и навернутый вокруг него сложный пульт, покрывающий все эксплутационные потребности от начала до конца. Законченная программа, от и до, под ключ.



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

И не надо мне говорить, что сливание в одно место, унификация, единый стандарт решают. Не решают. Метрики можно слить, а вот состояние кластера уже вряд ли. Топ 20 горячих ключей тоже непонятно куда пристроить. UI для перебалансировки точно ни с чем не унифицируется. Ну и так далее.

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

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


  • 1
А для чего ваще юзать? Это типа самобалансирующийся распределëнный мемкеш? Или?..

Да, и персистентный еще. В смысле, на диск пишет на всякий случай

Edited at 2015-06-03 19:24 (UTC)

Это сильно покруче, чем просто мемкэш.

На этом мемкэше определены ещё так называемые view. Каждый view – это map-функция, результаты вычисления которой над документами кэшируются (мемоизируются). View эмитит ноль, одну или несколько пар ключ-значение на каждый документ, причём и ключ, и значение могут быть не только строками, но и объектами.

Работает это всё почти как в CouchDB, за мелкими отличиями. Говорю про CouchDB, потому что про views в CouchDB гораздо больше написано – легче изучать.

Views позволяют строить чрезвычайно эффективные схемы выборки.

То-есть в какой-нибудь монго тоже, конечно, есть map-reduce – но там оно непременно вызывает фуллскан и полный recalc, что на хоть сколь-нибудь серьёзных объёмах становится неюзабельно.

В Couchbase оно летает пулей – потому что выборка по факту идёт по диапазонам мемоизированных ключей.



Edited at 2015-06-04 00:12 (UTC)

Абсолютно согласен.

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

А иначе
>надо работать (вы уверены, что настроите свой мониторинг заранее, авансом, с первого раза правильно и полно?),
не факт, что вообще хоть что-то будет.
Потом иди собирай по частям, что там конкретные сервисы пишут в лог в момент предполагаемого затыка в БД. Хорошо, если есть централизованный лог каждого сервиса, а то еще придется грепать логи со всех серверов, где он развернут.

Если такие админки приходят из коробки, это большой плюс.

Да, я полностью согласен, но не смог доказать ничего Валере :(

всё так. но - ВНЕЗАПНО - есть случаи когда такого всякого софта - сотни. и самописного и несамописного. и вариантов кроме как "засунуть всё в один заббикс графит опентсдб" нет.

>>Я подозреваю что там функционального кода раза в 3 меньше чем навернутой вокруг него админки.

ты явно исходники не видел :)

Больше? Меньше? Конкретнее, пожалуйста

Мой пойнт был в том, что я хочу весь функционал админки получать не только отрендеренным, но и иметь консольные или http концы отдающие ту же инфу и функционал. Наличие оных для меня важнее самой админки. А так-то хорошо, конечно, что есть.

Зачем тебе http конец показывающий процесс перебалансировки кластера?

не далее чем 3 месяца назад писал автотест который следил за процессом перебалансировки riak

(Анонимно)
Очень интересно было-бы услышать твои мысли по вопросу Clojure vs. Erlang и про http://elixir-lang.org

  • 1