Pattern

Tarantool: 15 лет истории и эволюции версий

TimeIcon

5 мин.

scroll iconScroll

Tarantool применяют в разных сценариях крупного корпоративного бизнеса — от мобильного банкинга до онлайн-доставки. Чтобы достичь этого и уйти от рисков потери данных, характерных для In-memory технологий прошлых поколений, специалисты Tarantool на протяжении всей 15-летней истории развития инструмента повышали его надежность и добавляли новые функции. Команда Tarantool рассказывает, как зарождалось решение, как оно эволюционировало и чем сейчас привлекает пользователей, в том числе Enterprise-клиентов с повышенными требованиями к безопасности и отказоустойчивости.

От cache до middleware

Инструмент появился в 2008 году для сети МойМир@Mail.ru. Это было исключительно внутреннее решение для хранения сессий и экономии «железа» на хранение. Вариант с задействованием оперативной памяти был выбран в качестве компромиссного — он позволял одновременно не занимать большой объем выделенной памяти и получать высокую скорость обработки данных.

В 2009 году Tarantool был интегрирован в Почту и MyTarget, стал постепенно внедряться в ИТ-ландшафт Mail.ru. Уже тогда мы на практике убедились в универсальности инструмента.

В 2010 году мы решили сделать open source версию Tarantool публичной. В момент размещения на GitHub, Tarantool стал одним из немногих публично доступных проектов в сегменте in-memory СУБД. Он быстро начал обретать свое комьюнити и успешно продолжил свое развитие как опенсорсный проект.

К 2012 году Tarantool применялся в Облаке Mail.ru и множестве других проектов Mail.ru. Всего за четыре года он стал фактически неотъемлемой частью всего ИТ-ландшафта Mail.ru.

В 2014 году Tarantool был впервые включен в независимый тест на производительность NoSQL-СУБД. По результатам исследования он показал лучшие результаты в 4 из 5 тестов на обработку 600 тысяч записей под нагрузкой.

В 2016 году мы презентовали Tarantool в качестве коммерческого продукта. К тому моменту инструмент позволял оптимизировать инфраструктуру хранилищ и снижать расходы на ИТ. В отдельных кейсах с его помощью можно было заменить до 30 серверов с классической СУБД. Например, Tarantool мог заменить сложную гетерогенную систему из SQL СУБД, кэша и NoSQL СУБД.

К 2017 году Tarantool стал полноценной Enterprise-платформой для Telecom, FSI, Retail. В целом, он позволял строить хранилища на основе оперативной памяти для компаний из любых отраслей.

Наряду с этим, мы разрабатывали производные продукты. К 2022 у нас была сформирована группа продуктов Tarantool:

Tarantool Enterprise Edition

Enterprise-версия, ориентированная на крупных клиентов. Основа для построения «умного» кэша и единого профиля клиента. Хранение комплексных типов данных с индексами и отношениями. Реализация поддерживает самые распространенные алгоритмы шифрования AES и RSA, ГОСТ 34.12-2018, обеспечивает доступность и сохранность данных, позволяет сжимать часть данных и сокращать расходы на TCO.

Tarantool Change Data Capture (CDC)

Репликатор от Tarantool. Позволяет сократить затраты на обслуживание Real-time-репликаций из реляционных СУБД во внешние системы.

Tarantool DB

Инструмент для быстрого создания и работы с хранилищем данных с поддержкой интерфейса доступа по протоколу Redis.

Cloud Storage

Объектное S3-хранилище на базе Tarantool. Cloud Storage от VK позволяет хранить любые объемы структурированных и неструктурированных данных и легко масштабируется.

Tarantool Cloud Edition

Облачная инсталляция Tarantool в облаке VK Cloud, которую можно развернуть в пару кликов. Для пользователей доступны синхронная репликация и сервер приложений.

Tarantool Kubernetes Operator

Отдельный Docker-контейнер, который запускается внутри кластера Kubernetes и автоматизирует управление кластерами Tarantool внутри K8s. Решение позволяет менять настройки кластера на лету, без даунтаймов.

Tarantool Clusters Federation

Инструмент для создания катастрофоустойчивой инфраструктуры. Дает возможность переключать независимые кластеры Tarantool в текущей архитектуре без даунтайма.

Tarantool Data Grid

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

Tarantool Queue Enterprise

Позволяет создавать очереди с подпиской и получать сообщения в рамках своих бизнес-процессов в условиях высокой нагрузки.

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

Сам Tarantool в 2023 году был обновлен до LTS-версии 2.11.

image3.jpg

Детали эволюции версий

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

В одной из первых версий Tarantool 1.5, которую можно считать Extra Old, был реализован минимальный набор функций. Но даже он полностью покрывал запросы проектов, которые тогда реализовывали на Tarantool. В 2012 году продукт предоставлял возможность создания реплицированных наборов данных, поддерживал мастер-мастер репликации, давал возможность использовать LuaJIT вместо стандартного интерпретатора Lua.

В 2015 году появился Tarantool 1.6, в котором была реализована возможность динамического управления схемой данных. Это существенно повысило удобство работы с инструментом.

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

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

В последующих релизах от 2.0 до 2.10, которые мы выпускали в период с 2019 по 2022 год, Tarantool получил: SQL, автоматизированный фейловер на базе Raft, синхронную репликацию и поддержку запуска в Kubernetes с помощью Operator.

В 2023 году мы выпустили Tarantool 2.11. Это Long Term Support версия, в которой существенно улучшена стабильность, а также расширен набор доступных инструментов. Были добавлены профайлеры памяти, процессора, прерывания длинных запросов, которые могут подвешивать системы с кооперативной обработкой, а также другие технологии и решения. Также Tarantool 2.11 получил улучшенный современный command line interface, который позволяет не писать команды администратора на Lua.

image1.jpg

Что дает работа с Tarantool

Сегодня Tarantool представляет собой полнофункциональное ПО для работы с данными, которое ускоряет цифровые сервисы и снижает нагрузку на core-cистемы. Фактически сейчас Tarantool — платформа, на которой каждый может создать что-то свое.

Как правило, Tarantool используется как middleware — промежуточный слой между приложением и core-системой в парадигме трехскоростного IT.

Пользователям Tarantool доступны:

  • СУБД;
  • витрина;
  • очередь;
  • распределенный кэш рядом cache-aside;
  • распределенный сквозной кэш write-through;
  • репликатор данных.

Кроме сервисов на базе Tarantool, непосредственно в самом инструменте реализованы:

  • кластеризация;
  • шардинг и авто ребалансировка;
  • автоматизация раскатки кластеров;
  • гибкая схема данных;
  • модули, расширяющие функциональность.

Такое сочетание параметров и возможностей позволяет при реализации проектов заменить целый стек инструментов одним Tarantool.

image2.jpg

Мы успешно пользуемся такой универсальностью и многозадачностью Tarantool во внутренних проектах VK, например VK Process Mining. Оценили ее и внешние клиенты, которые применяют решение в абсолютно разных сценариях и кейсах. Среди таких «Открытие», Yota, Газпромбанк, «Магнит», Wildberries, «Ситилинк», МегаФон, «Альфа-Банк» и другие. Tarantool удовлетворяет запросы каждого из них по масштабируемости, персистентности, перформансу, надежности, отказоустойчивости, а также качеству и оперативности технической поддержки.

То есть, если вы видели рекламу, бесшовно логинились в приложениях, заказывали продукты, просматривали баланс своей карты в онлайн-банкинге и пользуетесь десятками других сервисов — с большой долей вероятности вы сталкивались с проектами, реализованными на Tarantool.

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

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

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

Как решения класса middleware ускоряют цифровое развитие бизнеса

От производительности ИТ-инфраструктуры зависит скорость развития бизнеса. Часто цифровые потребности компаний растут быстрее, чем возможность наращивать мощности или модернизировать системное ПО. Рассмотрим, как программные решения класса промежуточного ПО (middleware) помогают устранить эту проблему.
ArrayIcon

Масштабирование без потери производительности

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