Как стать автором
Обновить
VK
Технологии, которые объединяют

От Cache до Middleware: эволюция Tarantool

Время на прочтение5 мин
Количество просмотров1.9K


Рассказываем, что такое Middleware, как мы прокачали Tarantool от Cache до Middleware и когда будет полезен Tarantool с новыми возможностями.

Что такое Middleware


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



Работа Middleware основана на принципе клиент-серверной архитектуры. Клиентские приложения отправляют запросы на серверы через Middleware-слой, который обрабатывает эти запросы и возвращает результаты обратно клиентам. Middleware может использовать разные протоколы и технологии для обмена данными — например, HTTP, SOAP, REST.
Middleware подходит для задач разного спектра.

  • Управление подключением к внутренним ресурсам. Middleware может создать пул одновременных соединений с базами данных, очередями сообщений, облачными ресурсами и другими Core-системами. Как результат, скорость обработки запросов и стабильность подключений увеличиваются.
  • Реализация бизнес-логики. Middleware может реализовывать логику на основе клиентских запросов. Например, может определить геолокацию отправителя запроса по IP и отдать приоритет результатам поиска, которые ближе географически. Или распознавать язык, установленный в клиентском браузере, и выдавать ответы только на этом языке.
  • Балансировка нагрузки. Middleware помогает распределять запросы по серверам, виртуальным машинам или зонам доступности в облаке. Также программный слой позволяет решить проблемы при параллельной обработке запросов — например, исключает конфликты, когда несколько клиентов одновременно обращаются к одному ресурсу.
  • Обеспечение безопасного доступа. Middleware-решения можно задействовать для аутентификации пользователей, управления доступом, шифрования данных, мониторинга безопасности и других кейсов, оставляя всю механику в промежуточном слое, то есть изолируя риски от Core-систем.

Исходя из кейсов использования, Middleware делят на несколько типов. К часто используемым относят программный слой для: 

  • обмена сообщениями (Messaging Middleware) — упрощает обмен данными между распределенными приложениями и сервисами;
  • удаленного вызова процедур (Remote Procedure Call Middleware) — предоставляет протокол, который позволяет запрашивать сервис другого приложения программы, расположенного на другом компьютере или в другой сети;
  • транзакций (Transaction Middleware) — обеспечивает переход транзакций из одной фазы в следующую посредством мониторинга процесса транзакций;
  • интеграций (Embedded Middleware) — облегчает взаимодействие и интеграцию между встроенными приложениями и Real-time-системами;
  • данных (Middleware for data) — обеспечивает прямой доступ к базам данных и взаимодействие с ними.

Движение Tarantool от Cache


Tarantool появился в 2008 году как инструмент для проекта «МойМир@Mail.ru». Технология In-memory позволила снять часть нагрузки с железа, снизить стоимость хранения данных. 
Tarantool прошел долгий путь эволюции:

  • Сначала это был In-memory кэш, который мало отличался от memCached.
  • Для нивелирования недостатков, характерных для холодного кэша, мы сделали Tarantool персистентным.
  • Далее мы реализовали поддержку репликации, добавили индексы и Lua-функции. 

Сегодня Tarantool — решение класса Middleware for data, с помощью которого можно создать промежуточной слой для управления движением данных, ускорения цифровых сервисов и снижения нагрузки на Core-cистемы. Tarantool сочетает в себе сервер приложений, гибридное хранилище с гибкой схемой данных и мощные средства масштабирования.

Фактически Tarantool встраивается между Core-системой (например, Legacy-решением) и третьими сервисами. Это позволяет без изменения архитектуры Core-систем ускорять обработку данных и получать горячий кэш в необходимых решениях, будь то золотая запись, процессинг или витрины данных. 

Почему мы позиционируем Tarantool в качестве решения класса Middleware for data: 

  • Модульность. Tarantool Enterprise поддерживает большое количество модулей, что позволяет легко настраивать его по принципу конструктора под разные сценарии использования. 
  • Расширенные возможности. Tarantool сочетает функции СУБД и сервера приложений. Он предлагает средства для хранения и обработки данных, позволяя разработчикам эффективно работать с большими объемами информации. В то же время решение дает возможность разрабатывать и развертывать приложения непосредственно внутри БД.
  • Поддержка разных форматов. Инструмент поддерживает разные модели данных, такие как ключ-значение, графы и документы, независимо от структурированности самих данных. Как результат, Tarantool может быть использован в разных сценариях работы с данными — от простых операций поиска и обновления до сложных аналитических запросов и манипуляций с графовыми структурами данных.
  • Совместимость и интегрируемость. Tarantool имеет поддержку MySQL, PostgreSQL и других БД, что позволяет разработчикам использовать его для создания высокопроизводительных приложений. Более того, Tarantool легко интегрируется с другими системами, в том числе с инструментами для управления проектами и мониторинга, что позволяет создавать комплексные решения для обработки данных.
  • Масштабируемость. Tarantool использует распределенную архитектуру и может горизонтально масштабироваться. Это позволяет ему обрабатывать большие объемы данных быстрее, чем традиционные базы данных.

Кейсы применения Tarantool Middleware for data в деле


Tarantool позволяет закрыть 99% потребностей в хранении и обработке данных и одновременно с этим решает разные бизнес-задачи, в том числе помогает с ускорением Core-систем, преодолением ограничений Legacy и построением микросервисов. Этими и другими сценариями применения Tarantool Middleware for data уже пользуются компании из разных сфер.

  • Построение микросервисной архитектуры. Переход от архитектуры монолита к микросервисам позволяет компаниям создавать системы, способные обрабатывать миллионы транзакций и поддерживать растущую нагрузку без снижения скорости сервисов. Например, применив Tarantool Middleware for data в собственной биллинговой системе, «Мегафон» смог обеспечить быструю и надежную работу 25 сервисов для 80 миллионов абонентов в режиме реального времени. При этом проект был реализован на небольшой технической базе: один из сервисов работает на 6 серверах в трех ЦОДах, обеспечивая производительность обработки на уровне 3000 записей в секунду.
  • Повышение отказоустойчивости. Tarantool как решение класса Middleware for data позволяет строить надежные системы на базе разнородной ИТ-инфраструктуры. Например, банк «Открытие» применил Tarantool при построении объединенной архитектуры после слияния с другими банками. Решение позволило на 85% снизить нагрузку на Core-системы, в 20 раз повысить скорость обработки транзакций и сократить обновление информации о балансе на клиентском счете с нескольких десятков до 2 секунд. Решить подобную задачу с помощью монолитного ПО было бы затруднительно.
  • Ускорение сервисов. Раньше для интернет-магазина «Ситилинк» использовал монолитную реляционную базу данных, но она не позволяла справляться с расширением ассортимента товаров и повышением активности покупателей. Миграция на микросервисную архитектуру и БД на основе Middleware for data Tarantool помогли компании ускорить сервисы. Например, обновление каталога после добавления новых позиций стало занимать не 30 минут, а 3 секунды. Одновременно с этим в 10 раз повысилась и доступность сервисов. 

Важно при этом, что, если надо оптимизировать сервисы, интеграция Tarantool Middleware for data в проект позволяет командам избежать значительных трудностей и больших инвестиций в краткосрочной перспективе. Так, встраивание Tarantool между не самым быстрым, надежным Legacy-сервисом и фронтендом может решить проблему быстродействия всей архитектуры и даже поддержания гарантированной надежности на нужном уровне.
Теги:
Хабы:
Всего голосов 14: ↑13 и ↓1+21
Комментарии0

Публикации

Информация

Сайт
team.vk.company
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель
Руслан Дзасохов