Мы покажем, как они помогают сократить нагрузку на персонал, сэкономить деньги и сосредоточиться на задачах бизнеса. В конце статьи приведем расчеты, сколько стоит владение каждым из вариантов: on-premise, виртуальной машиной (ВМ) в облаке и управляемой базой данных (БД).
Установка и первоначальная настройка
Жизненный цикл любой БД начинается с установки. Но перед этим необходимо подготовить инфраструктуру: оборудование, операционную систему (ОС), сеть, политики безопасности, пользователей и т. д. С одной стороны, это разовое действие, с другой, если через месяц для нового проекта понадобится БД — все придется делать заново.
Управляемая БД разворачивается по нажатию нескольких кнопок: нужно выбрать тип, задать параметры ВМ (CPU, RAM и др.) и подождать несколько минут. Шаги для развёртывания баз данных при самостоятельной установке или с управляемой БД:
Поддержка специалистами
После установки сразу начинается этап поддержки. Нужно непрерывно следить за оборудованием, ОС и самой БД. Оборудование нуждается в бесперебойном питании, мониторинге и периодической замене. Необходимо регулярно устанавливать обновления ОС и БД, чтобы исправлять ошибки и закрывать уязвимости. Поддержка продолжается постоянно, на нее уходит время.
Отдельно стоит упомянуть мажорные обновления ОС и системы управления базами данных (СУБД). Время от времени нужно переходить на новые версии, но компании обычно откладывают миграцию на последний момент или вовсе продолжают работать с неподдерживаемыми версиями. Потому что самостоятельное обновление и миграция — это долго и сложно: нужно учесть много нюансов, провести тестирование и решить возникающие проблемы.
В небольших компаниях, как правило, за БД следят администраторы общей специализации. Но они обслуживают и другие элементы инфраструктуры, а с БД работают не каждый день, поэтому профильных компетенций может быть недостаточно. Как следствие — администраторы не всегда выбирают оптимальные настройки и устраняют проблемы намного дольше профессионалов.
В крупных компаниях есть администраторы, которые занимаются только БД. Это опытные специалисты, и у них достаточно знаний и умений, чтобы решать проблемы в сроки, определенные в SLA.
Примечание
Команда Yandex.Cloud не просто администрирует БД, мы также получаем опыт из разработки. Системные администраторы и разработчики совместно улучшают БД: решают инциденты и совершенствуют сам сервис.
- Мы разработали ClickHouse — высокопроизводительную аналитическую БД, которая обрабатывает миллиарды строк в секунду. Мы создавали ее для внутренних задач, а сейчас ею пользуются более 2000 компаний по всему миру: в e-commerce, мобильной и игровой разработке, рекламе и аналитике.
- Мы участвуем в разработке других открытых проектов. Например, мы создали пулер соединений Odyssey для PostgreSQL, участвуем в развитии системы бекапирования WAL-G и других расширений для PostgreSQL.
- Мы используем управляемые БД внутри собственных продуктов: Почты, Такси, Диска, Драйва и др. Поэтому мы понимаем на деле, какие проблемы возникают у пользователей управляемых БД, и стараемся сами их решать.
В управляемом сервисе поддержкой занимается облачный провайдер, а клиенту нужно только управлять пользователями. Мы сами следим за оборудованием, ОС и БД; устанавливаем обновления, сопровождаем системы мониторинга, резервное копирование и сетевые настройки. За базами следят профильные специалисты, которые работают с ними каждый день. Они понимают, как устроены БД, следят за развитием технологий и последними новостями. Поэтому их решения — оптимальные и соответствуют лучшим практикам. Профильные специалисты знают, как лучше настроить БД, как реализовать ту или иную функцию, и помогут советом, если вы столкнетесь с нестандартной ситуацией.
В управляемой БД намного легче мигрировать на новые, мажорные версии. Для этого достаточно по клику создать копию хоста БД с новой версией, проверить, что все работает как надо, и просто перевести нагрузку на новый хост.
Ниже перечислены задачи обслуживания БД при самостоятельном администрировании и при использовании сервиса по управлению базой данных.
Отказоустойчивость и масштабируемость
Отказоустойчивость СУБД достигается за счет создания кластера: если из строя выйдет один из хостов, остальные продолжат работу. В идеале хосты следует расположить в разных ЦОДах (зонах доступности), обезопасить свой проект от сбоев целого дата-центра.
Такую отказоустойчивую систему можно создать и собственными силами, но для этого потребуется много ресурсов и навыки экспертов. Это непростая задача: нужно наладить связь между хостами, настроить репликацию данных и автоматический перенос нагрузки с одного узла на другой. Размещение хостов в разных дата-центрах требует дополнительных усилий: нужно разбираться, где физически находятся серверы, и арендовать их в разных зонах доступности.
Схема построения отказоустойчивого кластера:
Управляемые БД — это отказоустойчивость и легкое изменение топологии из коробки. Все наши БД кластерные, и для любой можно создать реплики в трех зонах доступности. Это повышает отказоустойчивость и позволяет легко масштабировать кластер. Например, вы разворачиваете стенд для нового проекта, который еще разрабатывается. Поначалу проекту не нужны реплики, так как к нему не предъявляются требования продуктивных систем. Но когда проект готов к запуску в production, вы можете из этой БД сразу же сделать боевую отказоустойчивую систему. Добавляете реплики к установке и получаете отказоустойчивую БД без переноса данных и миграции.
Резервное копирование и восстановление на любой момент
Резервное копирование позволяет восстановить данные в случае сбоя. Но чтобы оно правильно работало, нужно выбрать тип (когда лучше сделать полную копию, а когда инкремент), определиться с расписанием, найти место для хранения и организовать процесс так, чтобы копию можно было восстановить за несколько минут.
В управляемой БД все задачи, кроме расписания, решает облачный провайдер. Восстановить копию можно самостоятельно несколькими кликами мыши — не придется писать в поддержку и ждать ответа.
Кроме привычных всем бекапов, в некоторых СУБД есть механизм point-in-time recovery (PITR). Эта полезная функция позволяет восстановить данные на любой момент, а не только на момент создания копии. Например, бекап создается ночью в 00:00. Утром БД начинает наполняться данными, а в обед junior-разработчик случайно удаляет одну из таблиц. Если восстановить предыдущую копию — то потеряются утренние данные. Механизм PITR позволяет указать точное время, на которое нужно восстановить данные: он сам восстановит последнюю копию и применит все транзакции, которые прошли после ее создания.
PITR будет работать и при локальной установке БД. Но вам придется сначала настроить этот механизм, а потом просить системного администратора восстанавливать данные. В управляемой БД PITR уже настроен, а воспользоваться им можно без помощи администратора.
Полностью управляемый сервис, а не ВМ с шаблоном
Мы предоставляем полностью управляемые БД: вы получаете доступ к БД как пользователь, а мы следим, чтобы она работала как часы. Вы создаете схемы и таблицы, обращаетесь к данным, анализируете производительность запросов. Но у вас нет root-доступа, вы не можете менять системные настройки и управлять ВМ, на которой запущена СУБД.
Кажется, что вы получаете меньше гибкости, ведь вы не можете управлять всеми настройками. Но чаще всего клиентам нужна готовая и стабильная БД, а не конструктор, который легко сломать. Именно благодаря таким ограничениям мы гарантируем стабильную работу СУБД.
Есть и другой вариант: пользователи получают полный доступ к СУБД и ВМ, на которой она работает. Это нельзя назвать полностью управляемым сервисом, это скорее ВМ с готовым шаблоном для быстрого развертывания БД. Такой вариант упрощает установку и настройку. Но раз вы имеете доступ ко всем внутренним настройкам и функциям — провайдеру сложнее гарантировать стабильную работу. Если из-за вмешательства система сломается, провайдер не отвечает за это и разбираться придется самостоятельно.
В Yandex.Cloud вы получаете на 100% управляемый сервис. А еще мы единственный облачный провайдер в России, у которого есть Terraform для управляемых БД. Через него можно делать все то же самое, что через консоль управления, API и CLI.
Готовые метрики и простая визуализация данных
В сервисе мониторинга Yandex Monitoring для каждой управляемой БД есть более ста метрик, которые можно отслеживать. Мы настроили готовые дашборды, но ничего не мешает вам создавать свои варианты с нужными метриками.
Примеры графиков мониторинга — потребление ресурсов, количество запросов и другие:
Кроме самих метрик еще есть алерты — удобный способ узнать о приближении к критической отметке. Например, когда заканчивается место в БД или появляются запросы с ошибками.
Мы постарались создать удобный инструмент для мониторинга, но вы можете выгрузить данные метрик во внешнюю систему и анализировать их там. Подключите Prometheus или любой другой инструмент для анализа с помощью встроенного API.
Доступность выше, чем у ВМ
Еще одна особенность управляемых БД — соглашение об уровне сервиса (SLA). Мы гарантируем, что БД будет доступна определенное количество времени. Если мы не выполним обещание, то компенсируем вам стоимость сервиса.
Чтобы добиться такой доступности своими силами, нужно потратить много времени и сил. И если не получится и БД все-таки будет долго простаивать — вам это никто не компенсирует.
При аренде БД на ВМ провайдер также гарантирует доступность по SLA. Но, как правило, SLA для ВМ ниже, чем для управляемой БД. Например, наше SLA для ВМ — 99,95%. Когда ВМ простаивает, это означает, что БД недоступна на чтение и на запись. А в управляемой БД эти операции разделены, и если БД недоступна на запись, то вполне вероятно, что она доступна хотя бы на чтение благодаря репликам.
Управляемая БД экономит время и деньги, а также помогает решать задачи бизнеса
Все, что есть в управляемых БД, можно сделать самостоятельно: установить и настроить, поддерживать и обновлять, настроить резервное копирование и отказоустойчивость. Но чтобы делать это самим, придется тратить много времени, сил и денег. Мы покажем, сколько времени уходит на непрофильные задачи.
Компания MongoDB, наш партнер, описала все действия, на которые расходуется время в различных моделях развертывания БД: на своем оборудовании, на облачной ВМ и полностью управляемой БД. На схеме видно, что в управляемых БД практически все время уходит на разработку и инновации, т. е. на решение конкретных задач бизнеса, а не на настройку и обслуживание БД.
Управляемые БД снимают с вас многие задачи обслуживания и управления инфраструктурой. Появляется больше времени на решение ваших бизнес-задач, а не задач технического плана.
Сосредоточиться на задачах бизнеса также помогает интеграция с другими сервисами, например с сервисом визуализации данных Yandex DataLens. Это инструмент для визуализации данных: таблиц, графиков и карт. С его помощью можно быстро проверить гипотезу или собрать полноценный дашборд с показателями компании. DataLens бесплатен для пользователей управляемых БД.
Сколько это стоит
Мы посчитали стоимость владения и управления тремя видами ресурсов: on-premise, ВМ на базе Yandex Compute Cloud и сервисом по управлению базами данных. Мы выбрали эквивалентное по мощности оборудование и сравнили, сколько это стоит в каждом из вариантов.
Расчеты приведем на горизонте трех лет, т. е. амортизацию оборудования в on-premise-решении посчитаем за три года.
Это упрощенный расчет: мы не учли несколько моментов. Например, что в on-premise решении оборудование можно продать после использования, а отсутствие капитальных затрат в управляемой БД можно инвестировать в другие направления бизнеса. Более подробный расчет мы сделаем в отдельной статье.
Сравнение стоимости управления и владения различными вариантами работы с БД:
On-premise требует больше всего времени, денег и усилий, потому что вам придется:
- Заниматься оборудованием: покупать его, следить за ним, поддерживать бесперебойную работу и периодически менять, когда оно устареет или сломается. Если проект развивается, то со временем мощности станет недостаточно и потребуется новое оборудование. Если же сразу взять мощность с запасом — оборудование будет простаивать.
- Пример: сервер HP с 12 ядрами стоимостью ≈ 800 000 ₽. С учетом амортизации за три года получается ≈ 22 000 ₽ в месяц.
- Согласно исследованию некоммерческой организации NRDC, утилизация on-premise оборудования от трех до четырех раз ниже, чем облачного. С учетом данной поправки стоимость владения оборудованием составит как минимум ≈ 22 000 × 3 = ≈ 66 000 ₽ в месяц.
- Искать сотрудников, платить зарплату и социальные взносы. При этом потребуется как минимум два специалиста, чтобы они могли подменять друг друга во время отпуска и болезни. Скорее всего, кроме БД, эти сотрудники будут заниматься и другими задачами, поэтому для примера примем, что на администрирование БД они тратят только 50% времени.
- Зарплата специалиста — ≈ 100 000 ₽, социальные взносы — 30 000 ₽. Потребуется два специалиста, каждый из которых администрирует БД 50% времени. В итоге получаем ≈ 130 000 ₽ в месяц.
- Итого ≈ 196 000 ₽ в месяц.
ВМ на базе Compute Cloud стоит дешевле и требует меньше усилий
- Не нужно заниматься оборудованием: за ним следим мы.
- Стоимость развертывания ВМ в Yandex.Cloud — ≈ 27 500 ₽ в месяц.
- Нужно искать сотрудников, платить зарплату и социальные взносы. При этом потребуется как минимум два специалиста, чтобы они могли подменять друг друга во время отпуска и болезни. Скорее всего, кроме БД, эти сотрудники будут заниматься и другими задачами, поэтому для примера примем, что на администрирование БД они тратят только 50% времени.
- Зарплата специалиста — ≈ 100 000 ₽, социальные взносы — 30 000 ₽. Потребуется два специалиста, каждый из которых администрирует БД 50% времени. В итоге получаем ≈ 130 000 ₽ в месяц.
- Итого ≈ 157 500 ₽ в месяц.
Управляемая БД требует меньше всего усилий и денег, потому что вам не нужно:
- Заниматься оборудованием.
- Искать сотрудников для администрирования БД. Ваши специалисты могут сосредоточиться на развитии продукта. Для вас неважно, сколько человек администрируют базу, когда они уходят в отпуск и кто кого подменяет: мы решаем эти вопросы сами.
Пример: управляемая БД (24 vCPU, 96 RAM, 240 ГБ SSD) стоит ≈ 42 000 ₽ в месяц.
Итог: экономия от управляемыми БД по сравнению с on-premise может доходить 80%, а по сравнению с ВМ на базе Compute Cloud до 70% (в основном за счет персонала).
Краткий вывод
В статье мы рассмотрели преимущества управляемых БД перед самостоятельным развертыванием в on-premise и в ВМ.
Сервис по управлению базами данных на платформе Yandex.Cloud позволяет:
- Упростить установку, настройку и сопровождение системы;
- Подключить дополнительные инструменты, например систему мониторинга или визуализации данных;
- Экономить по сравнению с решениями on-premise и на базе ВМ, в основном за счет персонала и оборудования;
- Быстрее тестировать гипотезы и разрабатывать новые продукты, подключая необходимые ресурсы по клику и снижая время на time-to-market (запуск новых продуктов на рынок).