Зачем компаниям и разработчикам базы данных в облаке: инструкция по применению
Бизнес применяет самые разные способы хранения корпоративных документов и персональных данных. Среди них встречаются нестандартные решения. Так, в одной западной компании, занимающейся разработкой, записи хранили в обычном текстовом файле JSON на диске, пока не перешли на etcd — key-value базу данных (позже компания вернулась к концепции единого файла из-за личных предпочтений фаундера).
В принципе любая компания может развернуть систему управления базами данных самостоятельно, если есть собственный ИТ-отдел и необходимые компетенции. Однако не каждая компания может себе позволить нанять администратора баз данных, чтобы тот занимался поддержкой. Следил за ресурсами, использованием оперативной памяти и хранилища и при необходимости их увеличивал, а также обеспечивал мониторинг, регулярное бэкапирование, настраивал оптимальную конфигурацию сервера СУБД.
Упростить все эти задачи можно, используя облачные базы данных по модели DBaaS (Database-as-a-Service). Что еще могут предложить базы данных в облаке? Как минимум две вещи — масштабируемость и производительность. О них расскажем далее. Материал подан доступно для начинающих.
СУБД уходят в облака
Наиболее распространенными инструментами в сфере хранения и управления данными по-прежнему остаются коммерческие решения, однако открытые платформы вроде MySQL, Redis, SQLite и PostgreSQL также обзавелись обширной аудиторией. Последнюю, например, даже применяют на Международной космической станции, и все они регулярно попадают в топ самых популярных систем управления базами данных в опросах на Stack Overflow.
На то есть несколько причин, и первая из них — это производительность. Они справляются с параллельной обработкой задач, поддерживают десятки типов данных и предлагают вспомогательные инструменты — например, функции GIS для работы с пространственными данными, временными рядами и геометрическими типами.
Вторая причина — надежность и защищенность. Открытое программное обеспечение регулярно проходит независимые аудиты на безопасность, а открытость кода позволяет самостоятельно вносить в него изменения при необходимости.
Каждая открытая СУБД обладает своими сильными сторонами, однако многие из представленных реляционных решений не очень хорошо работают с тысячами серверов. Однако на помощь могут прийти облачные технологии, которые повышают ресурс масштабируемости. И на этом возможности облака для работы с БД не заканчиваются.
Плюсы, минусы и эффекты DBaaS
Для хранения данных нужно железо — закупить его в текущих условиях не так и просто для малого и среднего бизнеса. Когда компания переносит БД в облако, ей больше не нужно самостоятельно приобретать оборудование. В то же время провайдер берет на себя всё обслуживание и отвечает за:
- безопасность данных;
- резервное копирование и восстановление;
- своевременную установку обновлений;
- контроль нагрузки.
Также возрастает стабильность сервиса, поскольку облако позволяет запускать резервные реплики. На них переключается нагрузка, если на основном сервере с базой произошел сбой — пользователи не заметят неполадки.
В портфолио поставщика DBaaS есть инструменты, направленные на повышение информационной безопасности. Например, что делаем мы в #CloudMTS:
- ограничиваем доступ извне по определённым сетевым портам;
- регулярно сканируем кластеры БД на уязвимости;
- предоставляем возможности облачного файервола для ограничения доступа с определённых IP-адресов (клиент может ходить с конкретного постоянного IP-адреса, доступ с остальных будет заблокирован).
Хотя стоит отметить и потенциальные проблемы, возникающие в процессе работы с облачными базами данными. Принципы взаимодействия с БД одинаковы у разных провайдеров, но зачастую они входят в целую экосистему сервисов — виртуальных машин, виртуальных дата-центров и контейнеров. Глубокое погружение в неё может приводить к ситуации vendor lock-in, а миграция инфраструктуры из облака одного поставщика в другое — не самая простая задача.
Другой нюанс — отсутствие доступа к виртуальным машинам, на которых хранятся БД, и системным пользователям СУБД. Провайдер намеренно ограничивает возможность изменений конфигурации сервиса, поскольку сам несет ответственность за его работоспособность и снижает число точек отказа.
Как начать работу с DBaaS
DBaaS в личном кабинете #CloudMTS
Здесь стоит обратить внимание на наличие подходящего пула ресурсов у поставщика услуги, достаточного для решения задач. Также важна функциональность, связанная с резервированием. Необходимо подробно расспросить техподдержку о стратегии работы с бэкапами. Нормальная практика, когда резервные копии размещают отдельно от машин с базами данных.
Другой важный аспект — наличие инструментов для защиты БД, а также уровень компетенций технической поддержки в вопросах кибербезопасности. Например, у нас эти задачи решает выделенная команда специалистов.
Что касается развертывания кластеров баз данных, здесь все зависит от выбранного облачного провайдера. Однако в большинстве случаев этот процесс сводится к указанию требуемых параметров — например, объёма вычислительных ресурсов и конфигурации кластера — в панели управления при создании услуги.
Далее рассмотрим на примере кластера PostgreSQL в облаке #CloudMTS (этот раздел у нас доступен после регистрации).
Создание кластера
Кластер формируется автоматически, пользователю остаётся подключить его к своему приложению и определить структуру хранения данных. Дальнейшая поддержка и решение всевозможных проблем кластера БД ложится на плечи облачного провайдера.
Если необходимо масштабировать объем ресурсов, выделенных под БД, — например, под пиковую нагрузку во время распродажи — достаточно зайти в личный кабинет и изменить конфигурацию.
Работа в формате DBaaS имеет свои ограничения и подойдет не для всех компаний. Сервис позволяет гибко настроить кластеры баз данных, но он не подойдет организациям с особыми требованиями к конфигурации и устанавливаемому ПО. В таких случаях стоит проконсультироваться с провайдером и, возможно, развернуть кластер БД в рамках проектных услуг по развёртыванию и сопровождению. В любом случае специалисты #CloudMTS всегда помогут решить технические моменты и ответят на вопросы по продуктам.