Pattern

Блог Tarantool

BackIcon

Обзор продуктов Tarantool

Обзор продуктов Tarantool

CalendarIcon

20.12.2024

scroll iconScroll

Tarantool — важный компонент экосистемы разработок VK Tech. Он был создан для решения внутренних задач в 2008 году, спустя некоторое время вышел на открытый рынок и за 16 лет стал мощным инструментом для удовлетворения запросов бизнеса. Сегодня над его развитием трудится команда из 200+ специалистов. Эти ресурсы направлены на непрерывное улучшение технологии, что привело к впечатляющим результатам: у крупных клиентов развернуто более 100 кластеров и свыше 10 тысяч экземпляров Tarantool. Хранилища данных, построенные на Tarantool, обеспечивают работу с данными объемом свыше 100 терабайт оперативной памяти, что гарантирует высокую производительность и надежность цифровых сервисов.

В этой статье мы познакомимся с экосистемой продуктов Tarantool и разберем их особенности применения и внедрения.

Что представляет собой Tarantool

Tarantool — это промежуточное ПО для работы с данными, «под капотом» которого находится резидентная (in-memory) NoSQL база данных. Она хранит данные в оперативной памяти для быстрого доступа, но также поддерживает их сохранение на диск.

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

Благодаря кластеризации и шардированию, система поддерживает горизонтальное масштабирование. Это позволяет распределять данные между несколькими серверами, что решает проблему хранения огромных объемов информации. Например, хранить 4 терабайта данных на одном сервере возможно, но дорого и сложно. Tarantool же позволяет распределить эту нагрузку на несколько серверов, делая управление данными более гибким и эффективным.

Tarantool Community Edition — платформа с открытым исходным кодом, доступным на GitHub.

При этом разработана Tarantool Enterprise Edition - платная, корпоративная версия платформы. Именно на ее базе создана целая экосистема «коробочных» Enterprise-продуктов, доступных только в платном формате. Они закрывают ключевые потребности бизнеса, связанные с:

  • хранением данных — Tarantool DB, Tarantool Column Store, Tarantool Graph DB
  • интеграцией данных — Tarantool CDC (Change Data Capture)
  • катастрофоустойчивостью - Tarantool Clusters Federation
  • контейнеризацией и развертыванием данных — Tarantool Kubernetes Operator и Ansible Tarantool Enterprise
  • потоковой обработкой данных - Tarantool Queue Enterprise

scheme_6.png

Tarantool Enterprise Edition

Tarantool Enterprise Edition – платформа, на основе которой созданы «коробочные» решения Tarantool. Платформа представляет собой SDK (набор инструментов для разработки), предназначенный для создания распределенных приложений с использованием встроенного хранилища данных. По сравнению с коробочными решениями, платформа Tarantool Enterprise Edition предоставляет больше гибкости в настройке для заказчика и позволяет разрабатывать собственные модули и роли для конкретных бизнес-задач. Обратная сторона такой гибкости - необходимость самостоятельной разработки бизнес-логики на Lua и других языках программирования, появление дополнительных задач при развертывании и администрировании.

Когда стоит выбрать Tarantool Enterprise Edition

Этот продукт идеально подходит для проектов с высокими нагрузками, когда количество запросов превышает 20 тысяч в секунду, и требуется взаимодействие с языками программирования через коннекторы, такими как Go, Python, Java, реже C. В основе взаимодействия лежит бинарный протокол Iproto, однако из коробки нет поддержки HTTP, GraphQL или REST API — их можно реализовать, но для этого потребуется дополнительная настройка.

Tarantool Enterprise Edition рекомендуется, если проект требует сложной и нестандартной бизнес-логики с возможностью создания собственных ролей и модулей. Этот фреймворк обеспечивает максимальную гибкость для таких задач. Кроме того, если нужно минимизировать простои и быстро обновиться до версии Tarantool 3.0, использование Enterprise Edition станет оптимальным решением для новых проектов.

Процесс развертывания Tarantool Enterprise Edition

Этапы развертывания Tarantool Enterprise Edition:

  1. Создание топологии и заказ серверов.
  2. Подготовка установочного пакета, который собирается с использованием SDK Tarantool Enterprise Edition. Этот пакет включает модули, схему данных и код бизнес-логики, разработанный пользователями.
  3. Разворачивание на серверах. Это может потребовать определенных навыков и вызвать сложности у тех, кто впервые сталкивается с Tarantool. Именно поэтому команда Tarantool предоставляет поддержку на всех этапах развертывания, помогая настроить и оптимизировать приложение.

Технологические особенности и протоколы

Tarantool использует бинарный протокол Iproto, что обеспечивает высокую производительность, однако, такие протоколы, как HTTP, GraphQL или REST API, в базовой версии отсутствуют. Их можно настроить дополнительно, если этого требует проект, но «из коробки» они не поддерживаются. При необходимости обновления происходит новая сборка пакета с обновленной версией Tarantool или измененным кодом. Обновленный пакет накладывается на уже существующую систему, минимизируя простои. Хотя есть ограничения по изменению схемы данных, общий процесс установки остается интуитивно понятным.

Развертывание и использование Tarantool DB

Tarantool DB – это готовое решение для хранения данных, которое отличается от Tarantool Enterprise Edition упрощенным процессом внедрения и работы. Это тоже резидентная (in-memory) СУБД, но «из коробки».

image4.png

В отличие от Enterprise Edition, где разработчики должны подготовить код на Lua и собирать приложения вручную, в Tarantool DB этот процесс сведен к минимуму. СУБД сразу готова к развертыванию. Основной задачей будет задание схему данных и, при необходимости, хранимых процедур. Это можно сделать с помощью шаблонов, без необходимости прибегать к сложному программированию. Обновление процедур и клиентского кода не требует повторного развертывания СУБД.

Преимущества Tarantool DB

  1. Готовый продукт. Tarantool DB уже представляет собой готовое приложение. Вам не нужно разрабатывать и собирать его с нуля, как это требуется в Tarantool Enterprise Edition. Это особенно удобно для тех, кто не хочет тратить время на программирование и сборку приложений.
  2. Легкость развертывания. Основной процесс заключается в разворачивании системы, а затем добавлении схемы данных. Использование Ansible Tarantool Enterprise для автоматизации делает этот процесс еще проще.
  3. Поддержка команд Redis. Tarantool DB может работать с командами Redis, что позволяет легко заменить Redis на Tarantool в проектах. Это становится полезным промежуточным шагом на пути к полной миграции на отечественное ПО.
  4. Безопасность и администрирование. Как и другие продукты Tarantool, DB поддерживает интеграцию с LDAP, а также предлагает удобные инструменты для ведения аудита и эксплуатации.
  5. Обновления и развитие. Хотя сейчас возможности Tarantool DB во многом совпадают с Tarantool Enterprise Edition, в будущем в DB планируется интеграция дополнительных модулей.

Когда выбирать Tarantool DB

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

Tarantool DB – это отличное решение для тех, кто ищет готовое, легко настраиваемое решение для работы с данными с минимальными усилиями по программированию и развертыванию.

Tarantool Clusters Federation: катастрофоустойчивость и синхронизация данных

Для создания катастрофоустойчивых решений существует Tarantool Clusters Federation — инструмент, который позволяет синхронизировать данные между несколькими независимыми кластерами. Это гарантирует надежность системы и защиту от сбоев.

Система Tarantool поддерживает создание растянутых кластеров, которые могут быть распределены между несколькими центрами обработки данных (ЦОДами). В каждом ЦОДе располагаются по одному и двум узлам Tarantool на каждый репликасет (сегмент). Синхронизация данных между ними обеспечивает надёжность и устойчивость к сбоям. Обновление системы проводится по плечам: сначала в одном ЦОДе, затем в другом, что снижает вероятность полной потери данных или простоя системы.

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

image1.png

Преимущества синхронной и асинхронной репликации

Синхронная репликация в пределах одного кластера гарантирует согласованность (consistency) данных внутри кластера. Но в случае разрыва связи между двумя ЦОДами это может вызвать проблемы: кворум узлов не будет собран, и это остановит запись данных. Решением становится использование синхронной репликации внутри одного ЦОДа с асинхронной передачей данных во второй ЦОД. Это позволяет избежать остановки работы кластера при проблемах с сетью.

В чем различия между конфигурациями

Конфигурации Tarantool Clusters Federation различаются по степени защиты данных. Верхняя конфигурация защищает от проблем с самим кластером – в случае сбоя кластер может продолжить работу, незаметно для пользователей перенаправляя запросы на резервный кластер в том же ЦОДе. В нижней конфигурации система защищена от потери всего ЦОДа. Если ЦОД выходит из строя, работа переключается на второй кластер.

Tarantool Column Store

Продукт Tarantool Column Store позволяет проводить транзакционно-аналитическую обработку данных в реальном времени.

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

За счет гибридной архитектуры хранения данных, Tarantool Column Store может в режиме реального времени проводить обработку транзакций (OLTP) и обработку аналитических запросов (OLAP) в одной системе. Это называется гибридной или HTAP-обработкой. Она позволяет быстро анализировать самые новые данные, а также уменьшать затраты на перенос и копирование информации.

Подробнее — на записи вебинара «Анализируем транзакции в реальном времени».

image2.png

Заключение

Продукты Tarantool представляют собой мощные инструменты для управления данными, обеспечивая гибкость, высокую производительность и возможность масштабирования.

Платформа Tarantool Enterprise Edition, хотя и требует значительных усилий по программированию и сборке приложений, дает пользователям полный контроль над созданием кастомизированных решений. Это делает его идеальным выбором для компаний с нестандартной бизнес-логикой и высокими требованиями к нагрузке. Поддержка множества языков программирования, а также возможность создания сложных архитектур с использованием кластеров, делают этот инструмент особенно привлекательным для компаний, ориентированных на разработку.

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

Выбор между Tarantool Enterprise Edition и Tarantool DB зависит от конкретных потребностей бизнеса. Оба продукта располагают множеством функций, которые помогут компаниям справляться с растущими объемами данных и обеспечивать надежность своих сервисов. Tarantool Clusters Federation логичным образом дополняет инструменты хранения данных: он позволяет синхронизировать данные между несколькими независимыми кластерами, обеспечивая катастрофоустойчивую конфигурацию.

«Коробочный» продукт Tarantool Column Store создан для выполнения аналитических операций с транзакционными данными. Это позволяет выполнять аналитику мгновенно на самых свежих данных, не тратя время на перенос информации в OLAP-хранилище.

Читайте также

Middleware для IoT и цифровых двойников

Цифровые двойники позволяют создавать точные копии физических объектов или процессов в цифровом пространстве. Этот термин известен еще с 2002 года и подразумевает создание цифровых двойников реальных объектов в виртуальном мире для оптимизации производственных процессов — например, определения оптимального расположения оборудования на заводе или оптимизации логистики.
ArrayIcon

Выбор хранилища S3 On-Premises: анализ вариантов в РФ

ArrayIcon

Графовые базы данных: определение, принципы, применение

Графовые базы данных — один из эффективных способов масштабирования доступа к данным и управления ими. По оценке MarketsandMarkets, объем рынка ПО для графовых БД к 2026 году достигнет 5,1 млрд долларов. В 2021 году рынок составлял 1,9 млрд, то есть рынок за 5 лет вырастет на 268%. Эксперты Emergen Research считают, что к 2030 году объем рынка превысит 11,25 млрд долларов, то есть суммарно за 9 лет рынок увеличится на 590%.
ArrayIcon