REST API (JSON веб-сервис): обрабатывает все входящие API-запросы (от веб-клиентов, приложений
и интеграций) и обеспечивает форматирование ответов в формате JSON. Выступает в качестве
связующего звена между клиентами (уровень доступа) и бэкэнд-системами. Для обеспечения
высокой доступности этот уровень может быть распределен по нескольким серверам и
балансировать нагрузку, предотвращая сбои в работе сервиса из-за высокой нагрузки или отказа
сервера.
Клиент аутентификации: управляет аутентификацией пользователей, обеспечивая безопасные
сеансы входа в систему. Интегрируется с традиционной аутентификацией на основе имени
пользователя/пароля или корпоративными решениями, такими как единый вход через Active
Directory/LDAP. Высокая доступность поддерживается за счет резервных узлов аутентификации и
механизмов отказоустойчивости, обеспечивая непрерывный доступ даже в случае отказа основной
службы аутентификации.
Провайдер аутентификации: предоставляет подключаемые фреймворки аутентификации для
поддержки служб идентификации. Особенно важен для корпоративных сред с централизованным
управлением идентификацией. Стратегии резервирования и отказоустойчивости обеспечивают
надежность за счет распределения фреймворков аутентификации по нескольким серверам и
предоставления резервных вариантов для бесперебойного управления идентификацией.
Сервис уведомлений: отправляет уведомления через поддерживаемые каналы:
Push-уведомления: уведомления в режиме реального времени на устройства iOS и Android (через
службу Push-уведомлений). Высокая доступность обеспечивается за счет нескольких серверов
уведомлений и механизмов повторной отправки, гарантирующих доставку уведомлений даже в
случае сбоев в работе сервиса.
Уведомления по электронной почте: доставляются пользователям, когда они находятся в
автономном режиме или нуждаются в оповещениях о событиях. Балансировка нагрузки ирезервные конфигурации почтовых серверов помогают обеспечить стабильную и надежную
доставку электронной почты.
Сервис управления данными: отвечает за управление данными сообщений, метаданными,
профилями пользователей и журналами. Обеспечивает целостность данных, передаваемых между
базой данных и сервером. Этот уровень служит операционным ядром платформы, координируя
действия пользователей с возможностями обработки и интеграции данных.
Высокая доступность достигается за счет репликации базы данных, стратегий отказоустойчивости и
распределенных механизмов обработки данных. Эти меры обеспечивают бесперебойный доступ к
данным и защищают от сбоев компонентов или простоев. Служба управления данными служит
операционным ядром платформы, координируя действия пользователей с помощью
масштабируемых и отказоустойчивых возможностей обработки данных.
Бэкенд-инфраструктураБэкенд-инфраструктура обеспечивает возможности хранения и обработки данных, необходимые
для работы [CAPS]chat. Она состоит из следующих компонентов:
Системы баз данных: [CAPS]chat использует PostgreSQL в качестве основной базы данных для
хранения всех постоянных данных, таких как:
- Сообщения
- Учетные записи пользователей и учетные данные
- Настройки конфигурации
- Метаданные команд/каналов
Для обеспечения высокой доступности системы баз данных могут использовать механизмы
кластеризации, репликации и отказоустойчивости. PostgreSQL поддерживает такие функции, как
синхронная и асинхронная репликация для создания реплик для обеспечения избыточности.
Облачные решения обеспечивают автоматическое переключение при сбоях и резервное
копирование, гарантируя непрерывную работу при сбоях системы.
Хранилище файлов: управляет всеми мультимедийными ресурсами (например, загруженными
файлами, изображениями, видео), которыми обмениваются между каналами. Решения для
хранения включают следующие варианты:
Локальное хранилище: файлы хранятся непосредственно в файловой системе сервера. Для
обеспечения высокой доступности избыточность может быть достигнута с помощью конфигураций
RAID или резервного копирования для восстановления после сбоев дисков.
Сетевое хранилище данных (NAS): Распространено среди предприятий, централизующих хранение
файлов в своей сети. Конфигурации NAS могут включать отказоустойчивые решения, такие как
распределенные системы или репликация для бесперебойного доступа.
S3: Предлагает масштабируемое облачное хранилище для крупных сред или организаций с
распределенными развертываниями. База данных и файловое хранилище обеспечивают
масштабируемость, гарантируя эффективную поддержку миллионов сообщений и файлов при
сохранении согласованности данных. S3 изначально поддерживает высокую доступность,
распределяя данные по нескольким зонам доступности, что исключает единую точку отказа.Меры обеспечения высокой доступности гарантируют масштабируемую и отказоустойчивую
поддержку миллионов сообщений и файлов при сохранении согласованности данных.
Расширения системы: [CAPS]chat — это не только инструмент для совместной работы, но и
платформа, разработанная для расширяемости. Ключевые возможности расширения включают:
Самостоятельно размещаемые интеграции: Подключайте [CAPS]chat к другим локальным или
облачным системам, таким как Jitsi, Jira, GitLab, или любым пользовательским интеграциям,
необходимым вашей команде. Используйте встроенные API и веб-хуки для автоматизации рабочих
процессов и запуска межсистемного взаимодействия. Для обеспечения высокой доступности
интеграции могут использовать резервные каналы связи и механизмы повторных попыток для
корректной обработки временных сбоев.
Аутентификация сторонних сервисов: Привязывайте интеграции к сторонним платформам
(например, API для импорта данных из Slack, сервисы OAuth). Сторонние сервисы идентификации
обеспечивают согласованные и безопасные потоки доступа пользователей. Сторонние сервисы
идентификации могут использовать стратегии балансировки нагрузки и отказоустойчивости для
обеспечения согласованных и безопасных потоков доступа пользователей даже при высокой
нагрузке или сбоях.
Функции безопасности и масштабируемости: Безопасность и масштабируемость заложены в
архитектуру, что делает [CAPS]chat идеальным решением для корпоративных задач:
БезопасностьДля управления внешним трафиком используется обратный прокси-сервер, например NGINX или
аппаратный прокси. Он защищает серверы, обеспечивает соблюдение HTTPS и балансировку
нагрузки.
Настраиваемое шифрование SSL/TLS гарантирует безопасность данных во время передачи.
Детальная настройка прав доступа и ролей пользователей обеспечивает безопасность
конфиденциальной информации внутри команд.
Масштабируемость и высокая доступность: Enterprise-сервер поддерживает развертывание
нескольких серверов [CAPS]chat в кластерной среде для балансировки запросов пользователей
между несколькими серверами, обеспечивая надежность и производительность в крупных
организациях. Кластеризация обеспечивает автоматическое переключение при сбоях, так что
трафик пользователей перенаправляется на работающие серверы в случае отключения.
Уведомления и коммуникационные сервисы: [CAPS]chat поддерживает асинхронную связь в
реальном времени, дополненную системами уведомлений, адаптированными для различных
рабочих процессов:
Push-уведомления: Доставляются на мобильные устройства для оповещений о сообщениях или
упоминаниях. Высокая доступность достигается за счет резервных служб уведомлений и
механизмов повторной попытки для надежной доставки.Интеграция с электронной почтой: обеспечивает регулярные уведомления, когда пользователи
находятся в автономном режиме или неактивны. Резервные почтовые серверы и распределенные
конфигурации гарантируют бесперебойную отправку уведомлений по электронной почте.
Эти сервисы обеспечивают непрерывное взаимодействие и коммуникацию.
Протоколы связиСуществуют также протоколы связи (HTTPS и WS), которые определяют тип соединения,
устанавливаемого пользователем с сервером [CAPS]chat. Меры обеспечения высокой доступности
гарантируют надежные и отказоустойчивые соединения между клиентами и сервером [CAPS]chat,
особенно в производственных средах.
Соединение HTTPS (Secure Hypertext Transfer Protocol)
Соединения HTTPS с сервером [CAPS]chat отображают страницы и обеспечивают доступ к основным
функциям платформы, но не включают интерактивность в реальном времени (которая
обеспечивается соединениями WSS).
HTTPS — это безопасный, зашифрованный протокол, настоятельно рекомендуемый для
использования в производственной среде. Незашифрованные соединения HTTP могут
использоваться на этапе первоначального тестирования и настройки, но никогда не должны
использоваться в производственной среде. Для обеспечения высокой доступности трафик HTTPS
должен обрабатываться обратным прокси-сервером (например, NGINX или HAProxy) с настройками
балансировщика нагрузки для распределения соединений между несколькими экземплярами
сервера [CAPS]chat. Резервные прокси-серверы обеспечивают возможности переключения при
сбоях, гарантируя бесперебойную работу.
WSS-соединение (защищенный протокол WebSocket)
Защищенные соединения WebSocket (WSS) с сервером [CAPS]chat обеспечивают обновления и
уведомления в реальном времени между клиентами и сервером.
Если WSS-соединение недоступно и используется HTTPS, система будет казаться работающей, но
обновления и уведомления в реальном времени отображаться не будут. В этом режиме работы
обновления будут появляться только при обновлении страницы. WSS имеет постоянное
соединение с сервером [CAPS]chat, когда клиент подключен, в то время как HTTPS имеет
прерывистое соединение и подключается к серверу только при запросе страницы или файла.
Высокая доступность для WSS-соединений может быть достигнута путем кластеризации серверов
[CAPS]chat и балансировки нагрузки WebSocket-соединений между узлами кластера. Прокси-
серверы и специфические для WebSocket конфигурации (такие как «липкие» сессии или сохранение
соединения) необходимы для поддержания интерактивности в реальном времени во время сбоев
сервера или сети.
Благодаря внедрению стратегий высокой доступности в коммуникационные протоколы, платформа
обеспечивает безопасные, масштабируемые и надежные соединения как для обычного
взаимодействия пользователей (через HTTPS), так и для обновлений в реальном времени (через
WSS). Эти меры имеют решающее значение для критически важных сред и распределенных
развертываний, где необходима непрерывная связь.
Использование VPN[CAPS]chat предназначен для установки в частной сети, которая может обеспечить многофакторную
аутентификацию, включая безопасный доступ к вычислительным устройствам и физическим
местоположениям. Если требуется внешний доступ, рекомендуется использовать клиент
виртуальной частной сети (VPN), например OpenVPN, с дополнительной аутентификацией для
подключения к [CAPS]chat для веб-, настольных и мобильных приложений.
Настройка без VPNЕсли [CAPS]chat доступен из открытого интернета, рекомендуется следующее:
Назначить ИТ-администратора для настройки соответствующей сетевой безопасности, подписки на
бюллетень безопасности [CAPS]chat и применения новых обновлений безопасности.
Если [CAPS]chat доступен из открытого интернета без VPN или MFA, рекомендуется использовать
его только для неконфиденциальных, неважных разговоров, где влияние скомпрометированной
системы не является существенным.
Порты служб [CAPS]chatВ следующей таблице перечислены порты служб [CAPS]chat для сервера [CAPS]chat, прокси-сервера
push-уведомлений и мобильных приложений. Системные администраторы, чьи клиенты должны
взаимодействовать с сервером [CAPS]chat без прокси-сервера, могут открывать необходимые
порты брандмауэра.