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:
Enterprise-версия, ориентированная на крупных клиентов. Основа для построения «умного» кэша и единого профиля клиента. Хранение комплексных типов данных с индексами и отношениями. Реализация поддерживает самые распространенные алгоритмы шифрования AES и RSA, ГОСТ 34.12-2018, обеспечивает доступность и сохранность данных, позволяет сжимать часть данных и сокращать расходы на TCO.
Tarantool Change Data Capture (CDC)
Репликатор от Tarantool. Позволяет сократить затраты на обслуживание Real-time-репликаций из реляционных СУБД во внешние системы.
Инструмент для быстрого создания и работы с хранилищем данных с поддержкой интерфейса доступа по протоколу Redis.
Объектное S3-хранилище на базе Tarantool. Cloud Storage от VK позволяет хранить любые объемы структурированных и неструктурированных данных и легко масштабируется.
Облачная инсталляция Tarantool в облаке VK Cloud, которую можно развернуть в пару кликов. Для пользователей доступны синхронная репликация и сервер приложений.
Отдельный Docker-контейнер, который запускается внутри кластера Kubernetes и автоматизирует управление кластерами Tarantool внутри K8s. Решение позволяет менять настройки кластера на лету, без даунтаймов.
Инструмент для создания катастрофоустойчивой инфраструктуры. Дает возможность переключать независимые кластеры Tarantool в текущей архитектуре без даунтайма.
Позволяет собирать данные из разных систем, преобразовывать их и приводить к единому виду. Может служить витриной, то есть отдавать данные напрямую в приложения.
Позволяет создавать очереди с подпиской и получать сообщения в рамках своих бизнес-процессов в условиях высокой нагрузки.
Кроме этого, мы ведем разработку еще двух продуктов в нишах графовых баз данных и колоночного хранения и хотим стать значимым игроком в этих технологических сегментах.
Сам Tarantool в 2023 году был обновлен до LTS-версии 2.11.
Детали эволюции версий
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.
Что дает работа с Tarantool
Сегодня Tarantool представляет собой полнофункциональное ПО для работы с данными, которое ускоряет цифровые сервисы и снижает нагрузку на core-cистемы. Фактически сейчас Tarantool — платформа, на которой каждый может создать что-то свое.
Как правило, Tarantool используется как middleware — промежуточный слой между приложением и core-системой в парадигме трехскоростного IT.
Пользователям Tarantool доступны:
- СУБД;
- витрина;
- очередь;
- распределенный кэш рядом cache-aside;
- распределенный сквозной кэш write-through;
- репликатор данных.
Кроме сервисов на базе Tarantool, непосредственно в самом инструменте реализованы:
- кластеризация;
- шардинг и авто ребалансировка;
- автоматизация раскатки кластеров;
- гибкая схема данных;
- модули, расширяющие функциональность.
Такое сочетание параметров и возможностей позволяет при реализации проектов заменить целый стек инструментов одним Tarantool.
Мы успешно пользуемся такой универсальностью и многозадачностью Tarantool во внутренних проектах VK, например VK Process Mining. Оценили ее и внешние клиенты, которые применяют решение в абсолютно разных сценариях и кейсах. Среди таких «Открытие», Yota, Газпромбанк, «Магнит», Wildberries, «Ситилинк», МегаФон, «Альфа-Банк» и другие. Tarantool удовлетворяет запросы каждого из них по масштабируемости, персистентности, перформансу, надежности, отказоустойчивости, а также качеству и оперативности технической поддержки.
То есть, если вы видели рекламу, бесшовно логинились в приложениях, заказывали продукты, просматривали баланс своей карты в онлайн-банкинге и пользуетесь десятками других сервисов — с большой долей вероятности вы сталкивались с проектами, реализованными на Tarantool.
Остались вопросы?
Расскажите о ваших задачах и узнайте больше
о реализации на платформе Tarantool