В течение долгого времени Tarantool воспринимался как инструмент, который обладает впечатляющими возможностями, но требует экспертных знаний для настройки.
Однако в последние годы количество внедрений Tarantool в бизнесе заметно выросло. Стали важны не только функциональность и потенциал решения, но и удобство его использования. Поэтому мы изменили концепцию решения и, сохранив лучшие качества, сделали Tarantool версии 3.0.
Как было раньше и почему так важны изменения
В начале своего публичного пути Tarantool 1.5 был in-memory базой данных с простой процедурой запуска. В какой-то момент история этой версии подошла к концу: все было дополнено, доработано, оптимизировано. Но внутри технологии Tarantool оставались моменты, которые не устранить без глобальных переработок.
Переход к версии 1.6 стал сменой парадигмы. Изменились протоколы, модели хранения, алгоритм запуска и некоторые нюансы. Это сломало обратную совместимость.
В итоге Tarantool в версии 1.6 стал не базой данных, а application-сервером. Пользователь получал набор компонентов, из которых мог построить все необходимое — в том числе, СУБД.
С такой концепцией Tarantool стал инструментом «от разработчика для разработчика». Чтобы работать с платформой и оценить все её преимущества, надо было иметь продвинутую экспертность. Это повышало порог входа и снижало темпы популяризации Tarantool, даже несмотря на лучшие показатели производительности среди NoSQL-СУБД.
В период между версиями 1.6-2.11 мы были ориентированы, прежде всего, на улучшение функциональности инструмента и расширение сценариев его использования. Постепенно Tarantool получил:
- поддержку шардирования;
- SQL;
- горизонтальное масштабирование;
- множество вспомогательных библиотек;
- механизмы синхронной репликации;
- failover на базе собственного протокола;
- фичи для повышения ИТ-безопасности, консистентности и отказоустойчивости, а также многое другое.
После версии 2.11 мы решили сделать технологию более доступной для конечных пользователей. Это стало началом пути к версии 3.0 и новой концепции Tarantool.
Подробнее о 3.0
Главная идея обновления — сделать Tarantool удобнее в использовании. При этом нам было важно, чтобы не пострадали функции и возможности, которыми раньше могли полноценно пользоваться только «продвинутые» пользователи. Теперь Tarantool — это, в первую очередь, надежная и высокоскоростная in-memory база данных, что возвращает нас к концепции версии 1.5. Все функции application-сервера для построения приложений на базе Tarantool сохранены, но спрятаны «под капот». При этом доступ к этому «капоту» свободный — эксперты в любой момент могут задействовать весь потенциал Tarantool для решения особо сложных задач в своем проекте. Такое решение помогло сгладить кривую входа в Tarantool, сделав работу с инструментом интуитивнее и прозрачнее для пользователя.
Почему Tarantool 3.0 удобнее использовать
Можно запускать Tarantool как базу данных через простой декларативный файл конфигурации. Для популярных систем автоматизации развертывания различные части конфига можно задавать через переменные окружения. Если нужно просто запустить хранилище для записи и чтения данных, программирование на Lua не требуется. При этом остается старый вариант запуска: можно по-прежнему использовать Tarantool как интерпретатор Lua.
Новая архитектура построения кластерного хранилища. В 3.0. вы можете настраивать кластеры любого типа и сложности через единый отказоустойчивый модуль конфигурации.
Ранее администратору хранилища приходилось вносить изменения в каждый узел кластера по отдельности. Теперь кластер с десятком тысяч инстансов можно настроить через один конфиг в YAML формате. Это снижает время на администрирование хранилища.
В отличие от более ранних версий, единый централизованный файл конфигурации хранится вне узлов. При отказе одного (или нескольких) узлов Tarantool, все еще можно настроить кластер и вносить изменения в его топологию. Это повышает надежность Tarantool. Также присутствует тройное резервирование конфигурационного файла.
Мы продолжаем двигаться в сторону администрирования через единый конфиг. Рассчитываем, что в следующих версиях Tarantool пользователь сможет управлять схемой данных, добавить хранилище, роутер, CRUD-приложение и прочее, не прибегая к программированию.
Tarantool Cluster Manager. Это простой и удобный графический интерфейс для управления кластерами Tarantool. Доступен в Enterprise-версии. Задача Tarantool Clusters Manager — оптимизировать процесс эксплуатации кластерного хранилища. Новая административная панель вынесена в отдельный продукт, который может располагаться на отдельных серверах. Так он эксплуатируется независимо от кластеров, что делает его более отказоустойчивым. Количество запущенных инстансов кластерного хранилища, которыми может управлять TCM, достигает 4000.
Единый модуль шардинга. В ранних версиях Tarantool была поддержка отдельных библиотек шардинга и самописных реализаций пользователей. Это создавало некоторые проблемы и усложняло поддержку. Tarantool 3.0 получил встроенный единый модуль шардинга, который конфигурируется через config и интегрирован с общей системой.
Вместо выводов
Наша задача - сделать продукты, полезные и удобные для пользователей. Последние обновления действительно упростили взаимодействие с Tarantool. Попробуйте и оцените сами, а мы будем рады получить от вас обратную связь.
Остались вопросы?
Расскажите о ваших задачах и узнайте больше
о реализации на платформе Tarantool