Двадцать шестого февраля прошла конференция MariaDB M|18, в которой участвовали 330 ИТ-компаний. На конференции выступил представитель ServiceNow. Он поделился кейсом по управлению «85 тысячами БД по всему миру». Среднее количество запросов в час — 25 миллиардов. Как в ServiceNow работают с такими нагрузками, расскажем под катом.


/ Flickr / Tethys. / CC

Почему в ServiceNow используют MariaDB


Представитель ServiceNow Тим Йим (Tim Yim) рассказал об использовании MariaDB. По словам Йима, компания выбрала MariaDB, потому что эта БД отличается стабильностью и высокой доступностью. В ServiceNow нацелены на обеспечение доступности систем 99,999%, поскольку этот показатель критически важен для таких клиентов, как больницы, фабрики, банки и электростанции.

Выгоду от использования MariaDB уже оценили в сингапурском банке DBS Bank, отказавшись от DB2 и Oracle Enterprise. За два года банк развернул более 700 экземпляров БД MariaDB, на которых работают 54% бизнес-критических сервисов, ежедневно проводящих транзакции на 70–80 млрд долларов. Компания в семь раз увеличила производительность приложений, а инструменты для их тестирования смогли выдерживать в десять раз большую нагрузку. При этом системы автоматизированного выпуска приложений стали в два раза эффективнее.

Что такое multi-instance-архитектура


В компании говорят, что не используют multi-tenant- и single-tenant-архитектуру. Вместо этого, ServiceNow придумали свой вариант – multi-instance. Модель развертывания multi-instance позволяет каждому клиенту получить собственную базу данных и клиентское приложение.

Йим поясняет: «Обычно компании развертывают multi-tenant-архитектуру, когда все клиенты делят одну большую базу данных. Представим, что клиентов тысяча. Тогда сбой в работе одного из них повлияет на 999 других: в итоге вместо единичного простоя получается тысяча».

В случае multi-instance каждый экземпляр БД клиента работает на «bare metal» для лучшей производительности. При этом ресурсы аппаратного обеспечения делятся между уровнями приложений и БД, а процессы «контейнеризуются». Йим прокомментировал: «Мы дублируем каждую конфигурацию, каждый узел клиентских приложений и каждую базу данных. Каждую ночь мы создаем резервные копии всех БД».

Такой подход позволяет наращивать вычислительную мощность с «хирургической точностью». В отдельно взятый момент времени можно масштабировать инфраструктуру и устранять неполадки одного клиента.


/ Flickr / David Goehring / CC

Йим заявляет, что для эффективной работы такого решения «нужно автоматизировать всё». В ServiceNow так и сделали. Все активы загружаются в CMDB, чтобы их можно было отслеживать в одном месте, а затем происходит настройка и автоматизация рабочих процессов: систем высокой готовности, систем восстановления после отказа и др. В последних релизах платформы ServiceNow разработчики добавили возможность автоматизации на естественном языке, позволяющую «неспециалистам» автоматизировать нужные процессы в своем отделе.

«Скрытые» сложности и дальнейшие планы


Управление таким количеством БД приводит к возникновению ряда проблем. Тим Йим поясняет: «Динамичность ServiceNow позволяет нашим клиентам масштабировать сервисы, но из-за этого меняются шаблоны запросов. Поэтому такой платформой очень сложно управлять».

Решить все возникающие проблемы ServiceNow помогают сотрудники MariaDB: они проводят тренинги для администраторов БД, системных администраторов и специалистов по обеспечению надежности инфраструктуры (site reliability engineer), а также помогают ServiceNow разбираться в технических вопросах.

Компании планируют продолжить сотрудничество и внедрить такие фичи, как DDL для описания структуры БД и более надежное шифрование данных в облаке. Кроме того, представитель ServiceNow заявил, что не против внедрения систем на базе машинного обучения: «Я думаю, что любой администратор БД был бы заинтересован в работе с более «умной» базой данных, которая может помогать в распределении нагрузки». И разработчики MariaDB уже работают над внедрением инструментов для мониторинга, которые позволят повысить производительность и масштабируемость системы.



Еще несколько постов из корпоративного блога ИТ Гильдии:

Комментарии (15)


  1. datacompboy
    04.03.2018 19:59
    -2

    Ммм… Что-то я не понимаю…
    Миллион запросов в секунду может один тазик давать.
    25 миллиардов в час = 7 миллионов в секунду.

    Они говорят про 85 тысяч баз по миру — это, простите, 82 запроса в секунду на базу.
    Дикая нагрузка, ага.


    1. mediaman
      04.03.2018 20:38

      Ну получили мы среднее значение, как это применимо к конкретным кейсам? Иначе как в случае со средней зарплатой по стране получается


      1. datacompboy
        05.03.2018 08:47

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

        статья вообще ни о чем, и единственные цифры сами по себе — шлак.


        1. mediaman
          05.03.2018 11:25

          Ну помимо 25ккк в посте есть и другие цифры, например тот факт, что 700 инстансов MariaDB держат 54% buisness-critical сервисов банка, ворочая по $70 млрд ежедневно. А ваш комментарий определенно внес вклад в обсуждение вопроса: нашли среднее, сорвали покровы, указали всем как и что. Люблю такие треды


          1. datacompboy
            05.03.2018 11:32

            Да, только эти цифры никакого отношения к ServiceNow не имеют.
            Это в разделе объяснения почему SN решили взять марию.

            Проще говоря, вся статья умещается в:
            — мы автоматизировали деплой в контейнерах.

            всё. ничего более не сказано, цифры не имеют отношения к тексту и вообще непонятно за чем.

            каким образом контейнеры и bare metal связаны тоже непонятно — обычно под bare metal понимают отсутствие слоя виртуализации каких бы то ни было сортов, но они явно говорят что железки делят. или они докер уже за виртуализацию не считают?

            самое интересное — как они скалят инстанс за пределы машины — про это тоже не слова. не скалят? то есть таких задач не было?


          1. antonn
            05.03.2018 11:32
            -1

            Справедливости ради надо заметить, что суммы в долларах никак не относятся к характеристикам БД (ее отказоустойчивость и загруженность), они добавлены для напускной значимости.

            Как в ServiceNow работают с такими нагрузками, расскажем под катом.

            А вот про это было бы интересно почитать, но технические детали не написали.


    1. AmberSP
      04.03.2018 21:21
      +1

      А я вот наброшу на вентилятор вопросом «сколько SQL запросов выполняется, когда инженер в интерфейсе кликает на номере инцидента и открывает его?».
      Достоверно ответ не знаю.


      1. datacompboy
        05.03.2018 08:48
        +1

        по хорошему или на самом деле? :D


        1. africaunite
          05.03.2018 11:33

          25 млр в час, 85 тыс серверов, "Trusted by 3,300+ Industry Leaders (и 85К серверов?). We handle 8 billion transactions every month for 17 million licensed users." (баннер на сайте ServiceNow).


          Можно было бы прикинуть, очень-очень приблизительно (с пролетом в три порядка), но страшновато.


      1. Murimonai
        05.03.2018 11:19

        По личным наблюдениям, типичный таймер в этом случае вроде такого: «Response time(ms): 4071, Network: 16, server: 2110, browser: 1945». Не в курсе, насколько кастомизация сервиса в каждом конкретном случае сильно влияет на server-часть, но тот факт, что она зачастую сопоставима с бразерными затратами — выглядит не плохо.
        Думается, полезнее было бы узнать, за сколько запросов справляется сервис, когда скрипт через API этот инцидент, к примеру, резолвит.


  1. romy4
    04.03.2018 21:12

    Очень интересен процесс апдейта схем БД. Пусть есть app1 работающая на scheme1 и app2, которая работает на scheme2 без обратной совместимости со scheme1 (пускай добавлена новая таблица, требуемая в app2). Как это вот всё на 85тысячах машин одновременно разворачивается и как паузится работа всей банковской системы?


  1. JuriM
    05.03.2018 00:47

    Надежность это конечно хорошо, но читая чейнджлог очередного обновления mariadb, становится както не по себе


  1. shushu
    05.03.2018 09:40
    +1

    Я не совсем понял, они делают инстанс базы данных для каждой организаци? Или всё таки просто база данных в одном большом инстансе?

    Скорее всего у них есть мастер база данных где всекие глобальные настройки и т.д.

    Если первое: Они держат отдельное соеденение для этой мастер БД? А что если надо заджоинить что то на мастер БД?

    Ну и интересно было бы услышать как они роутинг делают (в первом варианте)


  1. novikovag
    05.03.2018 11:19
    -1

    Очередная БД без которой невозможно прожить.


  1. sergeyns
    05.03.2018 14:22
    -1

    За такие заголовки нужно банить!