В динамичном мире мобильных и веб-приложений, где скорость и своевременность коммуникации играют ключевую роль, российский сервис MULTIPUSHED выступает в роли надежного связующего звена. Компания позиционирует свою разработку как универсальную "единую кнопку" для доставки push-сообщений на самые разнообразные платформы: от привычных iOS и Android до набирающих популярность веб-браузеров и альтернативных экосистем Huawei (HPK) и RuStore. За кажущейся простотой лаконичного REST API и удобных SDK скрывается мощная отказоустойчивая и распределенная система, использующая преимущества микросервисной архитектуры, брокеров сообщений и развитой системы мониторинга. Давайте погрузимся в детали и посмотрим, как это работает изнутри.
Сайт MULTIPUSHED акцентирует внимание на трех столпах, определяющих ценность сервиса:
Отдельно стоит отметить встроенную в SDK систему дедупликации. Благодаря ей, даже если одно и то же сообщение отправляется по нескольким каналам, на устройство пользователя придет только одно уведомление, что предотвращает раздражающие повторы.
Платформа MULTIPUSHED логически разделена на три основных "фасада":
После того как POST-запрос на /v2/publish поступает в систему, сообщение попадает в надежный брокер сообщений rabbitmq, являющийся частью NATS. Это гарантирует как минимум однократную доставку сообщения (at-least-once). Далее за дело берется интеллектуальный сервис Router, который анализирует получателя и отправляет во все возможные для получателя транспорты: будь то APNs для устройств Apple, FCM для Android, HPK для Huawei, RuStore или прямой WebSocket SUB, если клиент в данный момент онлайн.
Для обеспечения высочайшей отказоустойчивости брокеры развернуты как StatefulSet в кластере Kubernetes. Узлы RabbitMQ, в свою очередь, работают в режиме кластеризации для отработки отказов с распределения нагрузки.
Одной из ключевых особенностей MULTIPUSHED является собственное SUB-ядро, взаимодействие с которым построено на базе протокола WebSocket Secure (wss://) поверх RFC 6455. Это элегантное решение позволяет избежать избыточных HTTP-рукопожатий и устанавливает постоянный двусторонний канал связи с каждым подключенным устройством. Для поддержания соединения используется PING-механизм HTTP/2 keep-alive с интервалом в 2 минуты. Такая оптимизация позволяет минимизировать расход заряда батареи на мобильных устройствах, что является важным аспектом пользовательского опыта.
Система MULTIPUSHED отправляет пуш-сообщение по всем доступным пользователю каналам, а отображает только первый дошедший, чтобы избежать дублирования. Такой подход позволяет увеличить конверсию доставки пуш-сообщения, сократить время ожидания и гарантировать, что пользователь получит уведомление лишь однажды.
Разработчикам нет необходимости реализовывать и поддерживать интеграции со сторонними сервисами, такими как APNs (Apple Push Notification Service), RuStore, FCM (Firebase Cloud Messaging) и HPK (HUAWEI Push Kit). Необходимо только один раз настроить необходимые транспорты в личном кабинете, а интеграция с ними происходит на стороне MULTIPUSHED. Платформа MULTIPUSHED успешно скрывает различия интеграций, позволяя разработчикам публиковать push-уведомления через тот же универсальный POST-запрос.
Безопасность передачи данных обеспечивается шифрованием TLS 1.2, 1.3 на всех этапах. Публичные точки входа платформы надежно защищены провайдером облачной защиты Ngenix, который эффективно справляется с DDoS-атаками. Инфраструктура MULTIPUSHED размещена в двух географически разнесенных дата-центрах (DataLine и Selectel) в Москве, соединенных высокоскоростными каналами связи 40 Гбит/с. Публичная страница статуса оперативно информируют о любых инцидентах.
Каждый микросервис платформы предоставляет подробные метрики. Интуитивно понятные дашборды отображают подробное состояние системы и ключевые показатели производительности, такие как время ответа, кол-во запросов в секунду, процент успешно доставленных push-уведомлений и загрузка брокеров сообщений. На потенциальные проблемы настроены правила алертинга с высоким порогом срабатывания для оперативного реагирования и устранение инцидентов.
После создания проекта в личном кабинете MULTIPUSHED вы получаете уникальный accessToken, который необходимо передавать в заголовке Authorization: Bearer для всех последующих запросов к API.
Команда MULTIPUSHED позаботилась о разработчиках, предоставив официальные SDK для самых востребованных платформ:
Прайс-лист на услуги MULTIPUSHED предоставляется по запросу. Формирование счета зависит от количества активных пользователей (устройство, на которое дошел хотя бы один пуш за месяц).
MULTIPUSHED представляет собой современную и надежную платформу для доставки push-уведомлений, которая позволяет с помощью одной интеграции охватить множество различных экосистем. Микросервисная архитектура и использование WebSocket в качестве основного канала связи обеспечивают высокую скорость и масштабируемость.
Если для вашего продукта критически важны минимальное время доставки, юридическая чистота и отсутствие необходимости интегрировать множество разрозненных SDK, то MULTIPUSHED заслуживает пристального внимания. Благодаря Swagger-консоли и примерам SDK вы сможете запустить демонстрационный проект всего за несколько минут и убедиться в удобстве и эффективности платформы на практике. Дальнейшее масштабирование вашего сервиса с MULTIPUSHED пройдет гладко и безболезненно.
Подробнее можно узнать на вебинаре 29 мая в 11:00 (МСК). Подключайтесь чтобы узнать, как обеспечить надёжную отправку веб- и мобильных уведомлений в популярные браузеры и любые ОС (iOS, Android, Huawei, ОС Аврора) через единый API и SDK.