что означает термин database as a service
Data as a Service: что это такое, технические сложности и как их обойти с помощью резидентных прокси
Data as a Service (DaaS) – относительно новая модель дистрибуции данных, которая подразумевает, что информация сбором, управлением и хранением нужной информации компании и пользователи занимаются не самостоятельно, а делегируют эту задачу специализированным провайдерам.
Сегодня мы поговорим о плюсах этой модели, существующих технических трудностях и способах их решения.
Зачем это нужно
Проще всего важность данных и, соответственно, услуг сервисов, которые их дают компаниям, можно понять с помощью цифр. Так по статистике, число поисковых запросов с добавлением фразы «рядом со мной» (near me) выросло на 900%. Это говорит о растущем запросе на персонализацию среди пользователей. А для предоставления персонализированного сервиса необходимо где-то взять данные о пользователей, его предпочтениях, предыдущем опыте, иначе он так и останется частью «серой массы». Но сделать это не так просто.
Согласно различным исследованиям, список распространенных проблем при использовании Big Data состоит из:
Звучит заманчиво – компании, которые умеют работать с данными и обладают соответствующей инфраструктурой, помогают тем, кому нужна информация, и зарабатывают на этом. Но не все так просто, и главная проблема для DaaS-сервисов здесь – недостаточно просто иметь инфраструктуру для сбора данных, нужно еще и уметь собирать корректные данные. Поговорим об этой проблеме подробнее.
Главная проблема DaaS
Как вообще происходит сбор данных DaaS-компаниями? По большому счету, у них просто есть мощная инфраструктура и скрипты для сбора данных в интернете – будь то сайты или поисковые системы. Такие скрипты называют краулерами (от англ. crawl) или скрейперами (англ. scrape).
Например, если компании-заказчику нужна информация для работ по поисковой оптимизации своего сайта, то ей может быть нужна информация о сайтах-конкурентах (какие целевые слова они используют, как выглядит выдача поисковых систем по этим словам и т.п.). Для сбора этих данных бот-скрейпер заходит на нужные сайты из списка и проходит по ним, скачивая нужную информацию.
На этом этапе может оказаться, что владельцы сайта, как и поисковая система, совсем не рады тому факту, что кто-то пытается выкачать данные. Активность такого бота наверняка попытаются заблокировать. Обычно для работы таких скрейперов используют серверные IP-адреса без их регулярной. Вычислить и заблокировать бота в такой ситуации нетрудно – и для этого есть большое количест антибот систем.
И это еще самый лучший вариант, потому что нередки случаи, когда владельцы бизнеса стремятся ввести конкурентов в заблуждение и «подсовывают» их ботам-скрейперам искаженные данные. В итоге собранный таким образом датасет может содержать заведомо некорректные данные. Нетрудно представить себе последствия того, что на основе ошибочной информации будут приняты важные бизнес-решения – в лучшем случае они окажутся бесполезны, в худшем компания может понести огромные убытки.
Решение: резидентные прокси
Решить главную проблему DaaS-сервисов можно с помощью использования резидентных прокси для скрейпинга данных. В отличие от серверных IP, которые предоставляются хостинг-провайдеров, что можно легко автоматически проследить с помощью специального ASN-номера, с резидентными прокси все не так просто.
Резидентные IP выдаются владельцам жилья интернет-провайдерами. Соответствующие отметки ставятся во всех связанных базах данных. Существуют специальные сервисы резидентных прокси, которые позволяют пользоваться резидентными адресами. Infatica – как раз такой сервис.
Запросы, которые краулеры сайтов-агрегаторов отправляют с резидентных IP, выглядят так, будто бы они идут от обычных пользователей из определенного региона. А обычных посетителей никто не блокирует – в случае интернет-магазинов это потенциальные клиенты.
В итоге использование ротируемых прокси от Infatica позволяет гарантировать качество собираемых данных – ведь запросы скрейперов с резидентных адресов никто не будет блокировать.
PaaS, DBaaS, SaaS… Что все это значит?
За последние несколько лет в английском языке появилось множество новых терминов, имеющих отношение к телекоммуникационной сфере. Как это часто случается, постепенно эти термины перекочевывают и в русский язык. По роду деятельности мы часто сталкиваемся с терминами из «облачной» сферы. И если для нас они понятны, то для большинства пользователей все это — ни о чем не говорящие аббревиатуры.
Мы в своей работе эти термины часто употребляем, и сейчас предлагаем раз и навсегда разобраться с теми из них, что заканчиваются на *aaS. Кстати, на днях заметили, что некоторые наши партнеры и клиенты просто пропускают эти аббревиатуры в тексте, не зная, что это такое. Сокращения такого рода зачастую проходят мимо внимания людей. И совершенно напрасно. Для того, чтобы получить оптимальный сервис, подходящий для своих нужд, стоит разбираться в соответствующей терминологии.
DBaaS (Database as a Service, база данных как услуга
Начнем, пожалуй, с этого термина. Назвать его новым язык не поворачивается, поскольку ему уже несколько лет. Но сильно распространенным он не стал. С другой стороны, такого рода услуги часто предлагаются провайдерами облачных услуг, и знать, что такое DBaaS, необходимо.
Так вот, DBaaS — это разновидность PaaS (об это термине ниже). Используя DBaaS, пользователь может получить доступ к базе данных любого типа по запросу. Пользователь может быстро развернуть БД на любом классе оборудования в среде выбранной им программной платформы (операционной системы).
Пользователь может выбрать базу данных, указав ее версию, общую конфигурацию, ряд прочих особенностей (например, размещение). БД по запросу можно разместить в ОС на виртуалке или подключить в рамках контейнера.
За последние пару лет поставщики облачных услуг значительно увеличили количество предложений DBaaS. Компания IBM, например, предоставляет доступ к масштабируемой и полностью управляемой базе данных через стандартные объектно-ориентированные API.
MWaaS (Middleware as a Service, промежуточное ПО как услуга)
Это тоже одна из разновидностей PaaS. MWaaS представляет собой специализированное облачное решение для компаний. В рамках этой услуги клиентам предоставляется доступ к комплексной платформе с соответствующей инфраструктурой для обслуживания корпоративных приложений и инструментов безопасности. Используя MWaaS, пользователь может быстро подготовить определенную программную среду.
Один из элементов MWaaS — это сервер приложений. Он здесь играет роль контейнера и балансировка нагрузки в облачной инфраструктуре.
В состав MWaaS входят интегрированные функции безопасности, что позволяет обеспечить быстрый приватный доступ к необходимым облачным приложениям и базам данных. Используя промежуточное ПО как сервис, пользователи могут работать с устойчивыми и масштабируемыми средами. Плюс ко всему, компании могут передавать собственные приложения из одного публичного облака в другое, при необходимости.
PaaS (платформа как услуга)
Если кратко, то PaaS — это один из способов предоставления клиенту готовой программной среды. Одновременно предоставляются инструменты для тонкой настройки такой среды. Элементами PaaS является аппаратное обеспечение, операционная система, СУБД, промежуточное ПО, инструменты тестирования и разработки. Сейчас PaaS рассматривается в качестве одного из стандартов для электронной коммерции.
При необходимости пользователь может быстро развернуть типовую среду для разработки и тестирования своих продуктов. Также в типовой среде можно размещать резервные площадки, переносить часть рабочих нагрузок из приватного облака в общее и обратно.
Зачастую, PaaS используется программистами, которые сообща работают над различными проектами. В этом случае все или часть разработчиков получают доступ к единой среде разработки удаленно. Соответственно, все они нуждаются в достаточном количестве системных ресурсов, а также в инструментах совместной работы.
И PaaS без проблем позволяет распределять задания, контролировать и исправлять ошибки, работать с различными версиями проекта. Соответственно, в таких средах есть инструменты обмена сообщениями и комментирования. Единая среда разработки, зачастую — это уже половина дела. Проект может просто не дойти до стадии запуска без PaaS.
Как уже говорилось выше, и DBaaS и MWaaS являются частью PaaS — это обычно составные части общей системы.
SaaS (программное обеспечение как сервис)
Интересная услуга, которая получила особенно активное развитие в последнее время. SaaS используется разработчиками программных платформ с предоставлением к ним удаленного доступа. Отличным примером SaaS может служить Microsoft Office 365. Корпорация Microsoft предоставляет по модели SaaS доступ клиентам к MS Office Suite (Office Web Apps) наряду с SharePoint Server, Exchange Server и другими сервисами и приложениями.
SaaS обычно означает отсутствие необходимости установки пакета программ (как в случае с обычным Microsoft Office). Соответственно, нет необходимости тратиться на установку, обновление и обслуживание оборудования и программ, которые работают на этом оборудовании. При этом с SaaS может работать сразу несколько пользователей. Плата обычно снимается в виде абонентской платы (в случае Microsoft Office 365), или же на основе объема операций. Техническая поддержка ложится на плечи разработчика SaaS-платформы, от пользователя не требуется никакого участия.
Достоинствами SaaS перед стандартной моделью работы с лицензионным ПО являются отсутствие необходимости разовой оплаты лицензии. Затраты в этом случае могут быть весьма солидными. Пользователь может спокойно работать в среде выбранной программной платформы, не беспокоясь ни о чем другом.
Сейчас та же корпорация Microsoft, по слухам, подумывает о введении новой модели — операционной системы как сервиса (для Windows 10). Но эта информация пока не подтверждена.
IaaS (инфраструктура как услуга)
В этом случае поставщик услуги предоставляет в аренду вычислительные ресурсы. Это может быть совокупность виртуальных машин, хранилищ данных, сетевых элементов различных типов. При помощи IaaS пользователь получает возможность быстро развертывать копии ОС, запуская виртуальные копии ряда программных пакетов. В этом случае нет необходимости развертывать собственную сетевую инфраструктуру. Все необходимое предоставляется поставщиком IaaS. При этом такая среда практически всегда является гибкой и масштабируемой.
Ресурсы, которые не используются, могут высвобождаться в автоматическом режиме, а при дополнительной нагрузке быстро вводятся в строй новые ресурсы.
IaaS зачастую используется ИТ-специалистами различных сфер (банковская, телекоммуникационная и т.п.). В то же время, среди разработчиков более популярна модель PaaS. Все они позволяют экономить средства и не особо вникать в подробности технической инфраструктуры провайдера услуг. На провайдере же лежат обязанности по технической поддержке своего продукта. Это обновление аппаратной платформы, программной платформы, добавление новых мощностей.
Нет сомнений, что в ближайшее время мы увидим, как все упомянутые облачные сервисы будут активно развиваться. Также сомневаться не приходится в том, что уже в ближайшее время мы услышим о новых *aaS. Кстати, может быть, мы перечислили не все и вы можете дополнить приведенную информацию?
Разница между IaaS, PaaS и SaaS: самая понятная статья об облаках в интернете
В описании облачных решений и сервисов часто встречаются аббревиатуры: IaaS, PaaS и SaaS. Расскажем, чем отличаются все эти aaS, как работают и какие возможности дают пользователям облаков.
Что такое IaaS: облачная инфраструктура как услуга
Практически ни одна компания не обходится без IT-инфраструктуры — даже небольшой фирме нужны серверы для хранения баз данных или инструменты, объединяющие компьютеры сотрудников в общую сеть. Компания может закупить серверы и настроить эту инфраструктуру у себя, но это достаточно долго и дорого. А может ничего не покупать, если взять в аренду облачные сервисы IaaS.
IaaS — это Infrastructure as a Service, то есть инфраструктура как услуга. К инфраструктуре относят вычислительные ресурсы: виртуальные серверы, хранилища, сети. Это что-то вроде виртуальных «компьютеров», на которые можно установить что угодно: операционную систему, программное обеспечение, приложения.
Поставщик IaaS (инфраструктуры как сервиса), или облачный провайдер, уже все купил и собрал, обеспечил серверы электричеством и интернетом. Вам остается только подключиться к этим вычислительным мощностям через интернет и использовать их для своих целей.
IaaS включает в себя:
Когда вы арендуете инфраструктуру IaaS, то получаете виртуальные серверы, сетевые настройки и облачные хранилища, за которые отвечает провайдер. При этом у вас есть доступ к операционной системе виртуальных серверов и большая свобода в настройке и установке приложений.
Примеры IaaS — как можно использовать облачную инфраструктуру:
Для построения в облаке сложной инфраструктуры IaaS для крупных проектов может потребоваться помощь провайдера в миграции и администрировании. Но для большинства проектов управление облачной инфраструктурой не требует непосредственного участия провайдера. А если возникнут сложности, всегда можно обратиться в техподдержку.
Что такое PaaS: облачная платформа как услуга
Провайдеры облачных услуг могут предоставлять уже настроенные инструменты (платформы) под разные задачи. Такие инструменты называют PaaS — это Platform as a Service, платформа как услуга.
Ключевое отличие PaaS от IaaS в том, что здесь у вас есть определенные инструменты, например: система управления базами данных, среда машинного обучения или обработки big data, промышленный IoT. Их нужно настроить под потребности компании, но не надо строить с нуля. Это позволяет экономить время разработчиков — например, им не нужно возиться с разработкой базы данных, можно просто загрузить в нее информацию и работать.
При этом у вас нет доступа к операционной системе, настройкам виртуальных серверов, которые лежат в основе PaaS, а также к низкоуровневым настройкам самой платформы. Провайдер берет на себя их оптимальную конфигурацию и снимает с вас необходимость следить за настройками, обновлениями, масштабированием и безопасностью. Вы получаете доступ только к интерфейсам самой платформы.
Вот несколько примеров PaaS:
PaaS-сервисы экономят время на конфигурацию инфраструктуры, нужной компании. Вы можете подключить нужный набор сервисов, главное, убедиться, что у облачного провайдера есть нужные сейчас и в перспективе решения.
База данных как сервис: когда, зачем и как использовать DBaaS в облаке

Database by Julian-Faylona
Многие облачные платформы предлагают базы данных как сервис (Database as a Service, DBaaS). Базу можно создать в облаке в несколько кликов, не тратя время на настройку и поддержку. Но не всем приложениям облачные базы данных подходят.
Мы расскажем, как на старте проекта не ошибиться с выбором облачной СУБД. Эта статья — вольная переработка нашего вебинара (видео тут).
Мы разберем, когда стоит и не стоит использовать DBaaS, какие особенности нужно учесть при работе с ними и как выбрать подходящую базу данных с учетом особенностей ИТ-инфраструктуры, объема и специфики задач. В конце посмотрим, как устроено создание базы данных в облаке и какие операции с ней доступны, на примере DBaaS Mail.ru Cloud Solutions.
Кому подходит и не подходит DBaaS
Как показывает опыт, наиболее часто к DBaaS обращаются в следующих случаях:
Требуются мощности для Dev- и Test-сред с оплатой по принципу Pay-as-you-go. Нередко бывает, что Production-среда в компании развернута на On-premise-серверах, но инженерам и разработчикам для тестирования приложений требуются дополнительные мощности под регулярно создаваемые и удаляемые БД. Это удобно делать в облаке, где ресурсы предоставляются по запросу и можно гибко управлять их потреблением, настраивая лимиты для каждого проекта или разработчика.
Оплачиваются при этом только используемые вычислительные мощности с посекундной тарификацией. В любой момент можно остановить неиспользуемую БД, после чего оплачиваться будет только место на диске, а не CPU и RAM.
Нужно быстро развернуть решение, аттестованное по 152-ФЗ. Если компания работает с персональными данными и необходимо соответствовать требованиям 152-ФЗ, использование DBaaS в аттестованном облаке может оказаться наиболее быстрым и простым решением, так как в этом случае не приходится тратить время и ресурсы на самостоятельное развертывание и аттестацию защищенного контура.
При этом зачастую компании переносят в облако только часть данных, оставляя наиболее «чувствительные» на своей стороне. Это позволяет значительно сэкономить на используемых мощностях, особенно при обработке больших объемов данных.
Требуется недорогое хранилище для резервных копий. В облаке MCS для хранения бэкапов баз данных можно использовать отказоустойчивое объектное хранилище S3. Хранение массивных бэкапов с редким доступом в таком хранилище обойдется намного дешевле, чем на локальных серверах. S3 позволяет хранить неограниченный объем данных без каких-либо специальных действий со стороны пользователя для увеличения объема хранения, а оплачивается только фактически использованный объем хранения.
Кроме этого, сами бэкапы автоматизированы и расписание их создания легко настраивается. При необходимости бэкапы из S3 всегда можно выгрузить в On-premise-хранилище.
В команде не хватает опыта самостоятельной настройки и администрирования СУБД. Установка и настройка любой СУБД требует времени, а создание отказоустойчивой системы — высокого уровня квалификации команды. Используя DBaaS, можно запустить любую БД всего за несколько минут с помощью API или UI, а также получить «из коробки» весь необходимый функционал: автомасштабирование БД по мере роста нагрузок, резервное копирование и геораспределенные реплики для большей надежности. Кроме этого, провайдеры предоставляют определенный SLA на работу своих сервисов, часто с финансовыми гарантиями.
Однако далеко не всегда DBaaS является лучшим решением. Важно учитывать, что облачные провайдеры не предоставляют Root-доступ к настройкам серверов БД: это своеобразная плата за то, что провайдер гарантирует SLA, минимизируя ошибки и гарантируя доступность сервисов. Поэтому в тех случаях, когда требуется полный контроль над системой, включая ее администрирование, On-premise-вариант выглядит предпочтительнее — разумеется, при достаточном уровне экспертности в самостоятельной установке и развертывании БД. Аналогично и в случаях, когда требуется тонкая настройка СУБД, то есть опять же нужен доступ к ее «внутренностям».
Особенности инфраструктуры в облаке, которые следует учитывать при использовании DBaaS
При развертывании баз данных в облаке необходимо знать о некоторых инфраструктурных особенностях. Перечислим их ниже.
Для разных задач предназначены различные типы дисков. Например, в облаке MCS при создании БД доступны диски SSD, High-IOPS SSD и Low Latency NVMe. SSD отличает отказоустойчивость «из коробки», надежность и геораспределенность. Для систем с более высокими требованиями по IOPS (Input/Output Operations Per Second) рекомендуются быстрые диски High-IOPS SSD. А для высоконагруженных приложений, где критически важна скорость отклика, лучше всего подойдут сверхбыстрые диски Low Latency NVMe, которые, в отличие от других типов дисков, размещаются локально, непосредственно на гипервизорах, а также обеспечивают гарантированное время отклика — в нашем облаке не более 0,5 мс.
Краткая сводка по дискам приведена ниже. Более подробно о типах дисков Mail.ru Cloud Solutions и их SLA можно прочитать здесь.
| Параметр | SSD | High IOPS SSD | Low Latency NVMe |
|---|---|---|---|
| SLA на IOPS (количество операций в секунду на 2 ТБ пространства) | Для чтения — 16 000. |
Для записи — 8000.
Для записи — 30 000.
Для записи — 50 000.
Для записи — 900 МБ/с.
Производительность дисков в облаке напрямую зависит от их объема. Для облачных дисков лимит на операции ввода-вывода всегда определяется на определенный шаг дискового пространства. Если нужно увеличить скорость обработки данных, то иногда достаточно просто увеличить размер требуемого диска.
Например, был выбран диск High-IOPS SSD, на нем развернули базу данных на 50 GB, но при тестировании стало понятно, что IOPS не хватает, хотя диск высокоскоростной. Это происходит потому, что в любом облаке есть QoS (Quality of Service): чтобы клиент, арендовавший 50 GB, не утилизировал полностью диск объемом 2 TB, ресурсы распределяются, в том числе в зависимости от запрошенного объема. И чтобы получить большую производительность, необходимо увеличить размер диска.
Изменение типа и размера диска доступны на лету. Эти операции выполняются без даунтайма через API или UI. Следует учитывать, что изменение размера диска возможно только в большую сторону — во избежание потерь данных.
Производительность ВМ зависит от типа флейвора. Перед созданием БД важно правильно подобрать не только тип и размер дисков, но также тип процессора, количество ядер и объем ОЗУ. Комбинация этих параметров называется флейвором.
В облаке MCS по умолчанию доступны следующие группы флейворов:
Кроме этого, по запросу возможно создание индивидуальных конфигураций, например с использованием высокочастотных процессоров. Стандартные процессоры Intel® Xeon® Gold 6238R CPU @ 2.20GHz подойдут для 90% задач. High-Freq процессоры Intel® Xeon® Gold 6238R CPU с частотой от 3.00GHz, подключаемые по запросу, предназначены для высокопроизводительных вычислений и могут использоваться в таких областях, как машинное обучение, распределенная аналитика, кодирование мультимедиа, игровые задачи, распространение рекламы и так далее. Максимальное число виртуальных ядер для инстанса ВМ на стандартных процессорах — 80 vCPU, для High Frequency — 40 vCPU.
Вертикальное масштабирование ВМ, то есть изменение выделенных им ресурсов уже после создания, возможно, но требует незначительного даунтайма — ориентировочно в пределах минуты.
Доступны несколько конфигураций БД. В облаке MCS базу данных, в зависимости от типа СУБД, можно развернуть в одной или нескольких конфигурациях из следующего списка:
Single-Instance — единичный инстанс СУБД. Рекомендуется использовать исключительно в целях разработки и тестирования.
Master-Slave — два и более инстанса СУБД с репликацией в режиме Master/Slave (Active/Passive). В этом подходе выделяется основной сервер базы данных, Master, на который отправляются все изменения данных (INSERT/UPDATE/DELETE). Другой сервер, Slave, в синхронном режиме копирует все изменения с Master и обрабатывает запросы на чтение данных (SELECT). Таким образом, Master отвечает за изменение данных, а Slave — за чтение. При выходе из строя любого из них другой временно берет на себя функции и чтения, и записи. Обычно следует использовать не более 20 Slave-серверов при работе с одним Master. Конфигурация рекомендуется для промышленной эксплуатации.
Кластер (Cluster) — кластер с репликацией данных. В этом случае также есть Master и есть сервер, куда направляются реплики данных в синхронном режиме. Если с Master-сервером что-то происходит, система автоматически переключается на другой сервер. При необходимости замена Master доступна и в ручном режиме. Можно добавлять асинхронные реплики, изменять их число и распределять их по различным дата-центрам. Точкой входа в кластер служит отказоустойчивый балансировщик. В случае сбоя на балансировщике происходит бесшовное переключение на другой, активный. Конфигурация рекомендуется, если есть высокие требования к надежности и отказоустойчивости системы.
Следует учитывать сетевые задержки между дата-центрами при настройке синхронных реплик БД. Сетевые задержки между нашими дата-центрами обычно составляют 1–2 миллисекунды, но в зависимости от нагрузки эта величина может меняться. Поэтому при разнесении синхронных реплик по разным дата-центрам можно получить замедление работы базы данных, так как транзакции на Master-сервере будут ожидать подтверждения от реплики в другом дата-центре. Для предотвращения подобных проблем мы советуем Master и синхронные реплики размещать в одном дата-центре, а асинхронные реплики — в другом.
Базы данных, доступные в облаке MCS
Чтобы пояснить, на основании каких критериев выбрать правильный тип СУБД, приведем краткое описание доступных в нашем облаке баз и основные сценарии их использования.
1. PostgreSQL
Это классическая Open Source OLTP-СУБД, поддерживающая стандарт SQL и принципы ACID (Atomicity, Consistency, Isolation, Durability). Чаще всего используется для обработки транзакций в реальном времени.
В нашем облаке доступна в версиях 9.6, 10, 11, 12 и конфигурациях Single-Instance, Master-Slave и «Кластер». Кластер при этом строится на основе Patroni.
Также у нас поддерживается множество расширений PostgreSQL: Prometheus Node Exporter для мониторинга ВМ, Prometheus PostgreSQL Server Exporter для мониторинга состояния самого PostgreSQL, PostGIS для обработки геоданных, PGcrypto для криптографии, Holistic для извлечения и анализа данных, uuid-ossp для генерации UUID и другие. Если потребуется расширение, которого еще нет среди доступных, клиент всегда может обратиться в поддержку — и мы постараемся его добавить.
Рекомендации по использованию:
2. Postgres Pro Standard
Это объектно-реляционная СУБД (Object-Relational Database Management System, ORDBMS), созданная на основе PostgreSQL. Postgres Pro предоставляет наиболее актуальную версию PostgreSQL c дополнительными расширениями и изменениями. Эта СУБД включает все новые возможности, реализованные компанией Postgres Professional, а также сторонние доработки, которые уже приняты сообществом PostgreSQL и в будущем попадут в новые версии PostgreSQL.
В нашем облаке доступна в версии 11 в конфигурации Single-Instance.
Рекомендации по использованию. Стоит выбирать для транзакционных систем, где есть необходимость в дополнительном функционале, отсутствующем в PostgreSQL. В качестве примеров можно привести усовершенствования полнотекстового поиска, доступ к внутреннему представлению данных, сохранение планов выполнения, покрывающие индексы (INCLUDING) и многое другое. С полным перечнем отличий Postgres PRO Standard от PostgreSQL можно ознакомиться на сайте разработчика.
3. MySQL
Это еще одна популярная Open Source OLTP-система. Однако по сравнению с PostgreSQL она обеспечивает меньшее соответствие стандарту SQL. Отличается высокой производительностью при операциях на чтение.
В нашем облаке доступна в версиях 5.6 и 5.7 в конфигурациях Single-Instance и Master-Slave.
Для осуществления мониторинга у нас поддерживаются расширения Prometheus Node Exporter и Prometheus Exporter For MySQL Server Metrics.
Рекомендации по использованию. Стоит выбрать, если нужна СУБД под транзакционную нагрузку без комплексной внутренней логики и сложных аналитических запросов. При прочих равных PostgreSQL больше подходит для аналитики, а MySQL — в качестве базы данных для Web-приложений.
4. MongoDB
Это одна из самых популярных NoSQL-систем. Она документоориентированная: каждая строка представляет собой JSON или Binary JSON (BSON), что предоставляет значительную гибкость, так как не нужно жестко задавать схему таблиц заранее. Также горизонтально масштабируется, благодаря чему выдерживает очень высокие нагрузки.
В нашем облаке доступна в версии 4.0 в конфигурации Single-Instance.
Рекомендации по использованию:
5. Redis
NoSQL-система для хранения структур данных вида «ключ-значение» (Key-Value) в памяти (In-Memory). За счет этого является крайне быстрой.
По умолчанию она однопоточная (Single-threaded), в связи с чем требуется производительный CPU — в нашем облаке можно использовать High-Freq. Также рекомендуем использовать минимум 4 GB оперативной памяти (RAM), так как это In-Memory-система. А под Persistent Storage — выбирать объем диска, равный значению RAM, умноженному на 3.
В нашем облаке СУБД доступна в версии 5 в конфигурации Single-Instance.
Для осуществления мониторинга поддерживаются расширения Prometheus Node Exporter и Redis Exporter.
Рекомендации по использованию:
6. ClickHouse
Это колоночная OLAP-СУБД, заточенная под аналитические нагрузки. Она горизонтально масштабируется с использованием шардирования.
В нашем облаке доступна в версиях 19, 20.8 в конфигурациях Single-Instance и «Кластер».
Рекомендации по использованию:
7. Arenadata DB Cloud (ADB)
Это аналитическая СУБД, построенная на MPP-системе с открытым исходным кодом Greenplum. Основана на PostgreSQL — поэтому при наличии экспертизы в PostgreSQL переход на ADB может быть довольно простым. Горизонтально масштабируется, благодаря чему выдерживает высокие нагрузки.
В нашем облаке доступна в версиях 6.5 и 6.11 в конфигурации «Кластер». СУБД изначально является кластерной, позволяя равномерно распределять нагрузку и данные между множеством узлов кластера.
Рекомендации по использованию:
Пример создания проекта с DBaaS на платформе MCS
Напоминаю, что эти же действия можно посмотреть на видео. Ну а если расписать по шагам, то выполняем следующие действия.
1. Выбор типа БД и ее создание по шагам
Чтобы начать работу с DBaaS на платформе MCS, необходимо в панели управления облаком выбрать пункт меню «Базы данных» — «Инстансы баз данных» или, если требуется Arenadata DB, то «Аналитические БД» — «Инстансы баз данных».
На экране отобразится список ранее созданных баз данных. Для создания новой необходимо нажать кнопку «Добавить».

Добавление новой базы данных
На первом шаге потребуется выбрать тип СУБД и ее конфигурацию. Для примера выберем PostgreSQL в конфигурации Single-Instance.

Выбор типа СУБД и конфигурации на первом шаге создания инстанса БД
На втором шаге необходимо указать имя инстанса БД и определить конфигурацию ВМ, которая будет лежать в его основе. Выбор типа ВМ осуществляется из предопределенного списка флейворов. Например, флейвор Standard-4-8 — это 4 CPU и 8 ГБ RAM. Наличие префикса 152-FZ для некоторых флейворов означает, что при их выборе база данных будет создана в защищенном контуре (аттестованном согласно федеральному закону номер 152-ФЗ).

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

Выбор зоны доступности, типа и размера диска, включение/отключение автомасштабирования на втором шаге создания инстанса БД
Далее на этом же шаге выбирается сеть из списка доступных. При необходимости можно установить доступ к инстансу БД по внешнему IP. При назначении внешнего IP рекомендуется использовать Firewall — в нашем примере указана преднастроенная группа безопасности only_my_ip, которая отвечает за доступ к базе данных только с разрешенных IP.
Здесь же при необходимости можно установить необходимость создания Read-only-реплики и периодичность резервного копирования.

Выбор сети, назначение внешнего IP, настройка Firewall и установка периодичности резервного копирования на втором шаге создания инстанса БД
На следующем шаге указывается имя базы данных, оно по умолчанию совпадает с именем инстанса, и имя пользователя — по умолчанию user. Далее необходимо сгенерировать пароль для пользователя, нажав на кнопку «Сгенерировать». И здесь же при необходимости можно восстановить базу данных из бэкапа, если он есть, установив переключатель «Восстановить из резервной копии» и указав путь к бэкапу. При отсутствии бэкапа будет создана новая база.

Генерация пароля пользователя и выбор бэкапа для восстановления (при необходимости) на третьем шаге создания инстанса БД
После заполнения всех данных необходимо нажать кнопку «Создать базу данных» — запустится создание инстанса БД, которое займет некоторое время.
2. Настройка параметров созданной БД
После завершения инициализации инстанса БД откроется страница с несколькими вкладками. На первой вкладке «Информация» будут доступны основные данные об инстансе БД, включая сниппеты для подключения к нему из различных приложений.

На вкладке «Информация» отображаются данные о созданном инстансе БД. В нижней части формы доступны сниппеты для подключения из различных приложений
На вкладке «Список баз данных» можно просмотреть список созданных на вашем сервере баз и создать новую, нажав на кнопку «Добавить». При добавлении новой БД необходимо указать только ее имя.

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

Установка кастомных значений для параметров сервера БД на вкладке «Параметры баз данных»
На вкладке «Пользователи» можно просматривать и удалять существующих пользователей и создавать новых. Для добавления пользователя требуется нажать на кнопку «Добавить».

Просмотр пользователей на вкладке «Пользователи». Для добавления нового пользователя следует нажать на кнопку «Добавить»
При добавлении пользователя указывается имя, генерируется пароль и устанавливается доступ к базам данных.

Добавление нового пользователя
На последней вкладке «Расширения» доступен просмотр расширений, подключенных к вашей БД. Это могут быть расширения для отправки метрик в Prometheus, для работы с криптографией, геоданными и так далее. Для добавления нового расширения необходимо нажать на кнопку «Добавить».

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

Выбор расширения из списка доступных
И заполнить необходимые параметры, например номер порта и так далее.

Заполнение параметров выбранного расширения
3. Операции, доступные над созданной БД
Для того чтобы выполнять какие-либо операции над созданными базами данных, необходимо вернуться в пункт меню «Базы данных» — «Инстансы баз данных». Здесь отобразится наш инстанс в Single-варианте.
Если отметить сервер БД флажком, в верхней части формы станут активными действия, доступные над ним. В любой момент времени его можно временно остановить для экономии средств, о которой шла речь выше, а затем запустить. Также доступны перезапуск и полное удаление.

Действия, доступные над выбранной БД: перезапуск, остановка/запуск, удаление
Другие операции, доступные над выбранной БД, можно посмотреть в ее выпадающем меню. Из него можно создать незапланированный бэкап, реплику, переведя таким образом Single-вариант в Master-Slave, изменить указанные на этапе создания размеры дисков и их автомасштабирование, изменить/сбросить пароли и удалить БД.

Операции, доступные над БД из выпадающего меню
Аналогичное выпадающее меню доступно на уровне конкретной ВМ, на которой развернута БД — в нашем случае она пока одна, с типом Master. В этом меню по сравнению с описанным выше добавляется возможность остановки, перезапуска и удаления конкретного инстанса, назначения ему внешнего IP, а также вертикального масштабирования ресурсов.
При вертикальном масштабировании можно изменить конфигурацию виртуальной машины, указанную при создании БД, изменив число ядер и объем оперативной памяти. Как мы говорили выше, эта операция потребует незначительного даунтайма.

Операции, доступные над выбранным инстансом (ВМ) из выпадающего меню
4. Перевод созданной БД в режим Master-Slave
Single-конфигурацию БД всегда можно перевести в Master-Slave. Для этого достаточно в выпадающем меню БД выбрать пункт «Создать реплику» и в открывшейся форме выбрать конфигурацию ВМ, зону доступности, тип и размер диска, назначить внешний IP при необходимости.

Форма для добавления реплики. Открывается после выбора пункта выпадающего меню «Создать реплику»
Когда реплика будет добавлена, на странице просмотра базы данных на вкладке «Информация» можно будет увидеть количество Slave-узлов, равное 1. Таким образом, Single-конфигурация будет преобразована в Master-Slave.

На вкладке «Информация» после добавления реплики отображается количество Slave-узлов
На странице с инстансами БД для созданной реплики станет доступно выпадающее меню, в котором наряду с прочими появится пункт «Преобразовать в мастер». При его выборе Master- и Slave-узлы поменяются ролями.

Выпадающее меню, доступное для созданной реплики
5. Краткий обзор конфигурации «Кластер»
Конфигурация «Кластер», в отличие от Master-Slave, может быть выбрана только на начальном этапе создания БД. В этом случае доступны Master-узел, синхронная реплика и асинхронные реплики. Последние можно добавлять по мере необходимости уже после создания кластера. Для этого в выпадающем меню необходимо выбрать пункт «Расширить кластер» и в открывшейся форме выбрать зону доступности и тип дисков для новой асинхронной реплики. Прочие параметры будут определяться конфигурацией ВМ, указанной при создании кластера.

Выпадающее меню, доступное для БД в конфигурации «Кластер». Для добавления асинхронной реплики необходимо выбрать пункт «Расширить кластер»

Добавление асинхронной реплики при расширении кластера. Необходимо выбрать зону доступности и тип диска
6. Работа с бэкапами: просмотр, настройка расписания, ручное добавление
Для работы с бэкапами необходимо перейти в раздел «Бэкапы». Здесь отобразятся текущие настройки резервного копирования (РК) для нашей БД, выбранные при ее создании. С помощью выпадающего меню можно выполнить остановку РК, просмотр ранее созданных бэкапов и настройку расписания бэкапов.

Раздел «Бэкапы»
Для обновления расписания РК необходимо выбрать пункт выпадающего меню «Настроить параметры резервного копирования». В открывшейся форме можно просмотреть, изменить и удалить текущее расписание, а также добавить дополнительное расписание, нажав на кнопку «Добавить новое расписание». При выборе периодичности РК раз в сутки можно выбрать конкретные дни недели и время начала создания бэкапов.

Форма настройки параметров РК, доступная после выбора пункта выпадающего меню «Настроить параметры резервного копирования»
Параметры РК обновляются в соответствии с введенным расписанием.

Обновление параметров можно увидеть в разделе «Бэкапы»
Наряду с созданием бэкапов по расписанию можно в любой момент добавить бэкап вручную. Для этого необходимо вернуться в раздел «Базы данных» — «Инстансы баз данных» и в выпадающем меню выбрать пункт «Создать бэкап».

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

Ручное добавление бэкапа
Все бэкапы хранятся в объектном хранилище S3. Чтобы их посмотреть, можно выбрать раздел «Бакеты» и найти в нем бакет, название которого начинается на «databasebackups-». Отсюда можно загрузить бэкапы к себе. Также мы предоставляем инструкцию, описывающую, как на основе этих бэкапов развернуть базу данных On-premise.

Просмотр бэкапов в объектном хранилище S3





