Продолжая разговор про интеграцию информационных систем с помощью стриминговой платформы, сегодня мы рассмотрим преимущества event streaming архитектуры на примере Apache Kafka. Также читайте в нашей статье про 5 ключевых сценариев использования Кафка в потоковой обработке событий: от IoT/IIoT до микросервисного разделения в системах аналитики больших данных (Big Data) и машинного обучения (Machine Learning).
7 главных достоинств event streaming архитектура для интеграции информационных систем
Напомним, SOA-подход к интеграции информационных систем отличается некоторыми характерными недостатками, среди которых слабой взаимозависимость и высокая связность компонентов [1]. Поэтому сегодня все большую популярность приобретают методы интеграции приложений на базе стриминговых платформ, обеспечивающих обработку данных в режиме реального времени. В области Big Data наиболее ярким примером такого фреймворка является Apache Kafka. Перечислим основные плюсы, которые ожидаются от интеграции информационных систем с помощью стриминговой платформы [2]:
- настраиваемая масштабируемость количества узлов в кластере, объема ресурсов и пропускной способности сети – все можно развернуть на типовом локальном оборудовании или в любых общедоступных облачных средах;
- гибкость архитектуры – от микросервисов до монолитных приложений;
- событийные микросервисы с асинхронным подключением позволяют обрабатывать сложную бизнес-логику потоков данных, оперативно перемещая их в нужное место;
- открытость технологии без привязки к конкретному стандарту, формату, источнику или приемнику данных;
- независимость и управляемость отдельных бизнес-сервисов как продуктов с собственным жизненным циклом разработки, тестирования, развертывания и мониторинга. Это обеспечивает независимую скорость обработки между различными производителями и потребителями, режимы включения, отключения и взаимодействия.
- многопользовательский режим с гарантией, что только один уполномоченный пользователь может создавать, записывать и читать данные из разных потоков в одном кластере.
- простота развертывания в production с использованием контейнеров и прочих DevOps-технологий на локальном оборудовании, в общедоступном облаке или гибридной среде.
5 сценариев использования Apache Kafka в качестве стриминговой платформы
Примечательно, что Apache Kafka как распределенная стриминговая платформа позволяет не только организовать эффективную интеграцию различных информационных систем. Отметим еще несколько распространенных примеров использования этой Big Data системы:
- управляемая событиями обработка больших наборов данных, таких как журналы логов приложений или датчиков IoT/IIoT, события пользовательского поведения в социальных сетях и пр.;
- критические приложения реального времени, такие как транзакционные платежи, обнаружение мошенничества, взаимодействие с клиентами;
- раздельная интеграция между различными давно используемыми приложениями на базе устаревших технологий и современными системами;
- микросервисная архитектура;
- аналитика больших данных с помощью машинного обучения и других методов Data Science.
Все эти и другие подобные кейсы обеспечиваются принципом работы Apache Kafka по модели «издатель-подписчик», когда производитель (producer) отправляет сообщения в топик (topic), а потребитель (consumer) его считывает. Благодаря этому реализуется независимость разных приложений друг от друга, в т.ч. от их скорости и других параметров. По мере необходимости можно добавлять новые приложения как на стороне производителя, так и на стороне потребителя. Часто одно событие используется многими независимыми приложениями в рамках одного бизнес-процесса. Например, бронирование номеров в гостиницах требует немедленного обнаружения мошенничества с платежами в реальном времени и обработки бронирований через все бэкэнд-системы в near real-time режиме, а также пакетной аналитики за одну ночь для улучшения качества клиентского сервиса, послепродажного обслуживания, гостиничной логистики и прочих процессов. Более того, масштабируемая event streaming платформа обеспечивает работу с будущими или только что произошедшими событиями, например, в следующих случаях [2]:
- удержание клиента, который хочет покинуть магазин за счет прогнозирования его потребительского поведения и оперативной реакции на его действия или намерения;
- отмена мошеннической или подозрительной транзакции;
- замена части оборудования до его поломки;
- информирование клиентов об опоздании рейса с отправкой обновлений, перебронированием или выдачей ваучера на новую поездку.
Некоторые из описанных кейсов используются в молодых Big Data компаниях типа Netflix, LinkedIn и Zalando, которые построили всю свою инфраструктуру на Kafka. Впрочем, эта стриминговая платформа актуальна и в крупных проектах с длительной историей. В частности, Сбербанк построил свою платформу аналитики больших данных на основе Apache Kafka [3].
Больше подробностей про применение Apache Kafka в реальных проектах потоковой обработки больших данных, вы узнаете на практических курсах по Кафка в нашем лицензированном учебном центре повышения квалификации и обучения руководителей и ИТ-специалистов (разработчиков, архитекторов, инженеров и аналитиков Big Data) в Москве:
Источники
- https://habr.com/ru/company/mailru/blog/342526/
- https://www.confluent.io/blog/apache-kafka-vs-enterprise-service-bus-esb-friends-enemies-or-frenemies/
- https://kafka-summit.org/sessions/distributing-computing-key-player-corebanking-platforms/