В соответствии с требованиями был подготовлен проверочный экземпляр программного обеспечения edna Platform, который эксперт сможет использовать у себя в тестовой среде в качестве удаленного доступа к инфраструктуре. Проверочный экземпляр поставляется в виде предустановленного, уже развернутого экземпляра edna Platform. Дополнительная установка экземпляра или его компонентов не требуется.
Обратите внимание, что взаимодействие с какими-либо другими внешними системами и продуктами не настроено.
Для тестирования вам необходимо:
- Произвести вход по предоставленным данным через VPN
- Подключиться к серверу по SSH-протоколу
- Провести на сервере необходимый аудит
Технические характеристики
- Операционная система: Debian GNU/Linux
- Кластер Kubernetes v1.24
- Доступ к тестовой инфраструктуре: удаленный по VPN и SSH
Вход через VPN
Подключение к VPN происходит с помощью сертификата пользователя, поставляемого в архиве.
Чтобы подключиться к нашим сервисам через VPN, сделайте следующее:
- Скачайте клиент OpenVPN для Windows отсюда.
- Установите клиент, выбирая настройки по умолчанию. После того как OpenVPN установится, в системном трее отобразится его иконка:
- Откройте пароли, необходимые для распаковки архива и подключения непосредственно к VPN Для этого перейдите по сгенерированной для вас ссылке в любом браузере, кроме Microsoft Edge и Internet Explorer.
Страница с паролем будет выглядеть примерно как на следующем изображении:
- Сохраните архив с сертификатом на свой компьютер и распакуйте его, используя Archive_pass.
- Вернитесь к значку OpenVPN в трее и, кликнув по нему правой кнопкой мыши, выберите пункт Импорт конфигурации.
- Выберите сертификат mfm-office (или mfm-prod), который вы распаковали ранее.
- Кликните ОК в сообщении об успешном завершении импорта файла.
- Откройте трей, правой кнопкой щелкните по иконке OpenVPN
и выберите Подключиться. Программа начнет подключение. В процессе подключения откроется окно с запросом пароля. Введите пароль, указанный в Access_pass (шаг 3), и нажмите OK. Не забудьте поставить галочку напротив Запомнить, чтобы не вводить пароль каждый раз.
- Проверьте иконку OpenVPN в трее. Если подключение установилось верно, она станет зеленой:
Подключение к серверу по SSH-протоколу
Для подключения к серверам по SSH-протоколу для проведения экспертной проверки был передан приватный SSH ключ. С использованием его можно подключиться ко всем четырём серверам.
Описание окружения
Наши сервисы работают в Kubernetes-кластере на 4 нодах: master и 3 worker.
Роль | IP адрес |
master | 10.162.157.11 |
worker-01 | 10.162.157.12 |
worker-02 | 10.162.157.13 |
worker-03 | 10.162.157.14 |
Сервисы ПО edna Platform (то есть скомпилированный код) запускаются в контейнерах, в которых приложение располагается в корневых директориях /app
. Все содержимое директорий имеет распакованный формат.
После того как вы произвели вход на сервер, на ноде master вам будет доступна утилита kubectl
. Эта команда возвращает список всех наших сервисов во всем кластере, с ее помощью можно попасть внутрь какого-либо контейнера тестового экземпляра ПО. На worker-нодах доступна утилита crictl
для управления запущенными контейнерами на ноде.
Таким образом, вы можете попасть внутрь каждого контейнера и просмотреть его содержимое и процессы.
Неймспейсы
Продукт edna Platform занимает 4 неймспейса:
platform
: здесь содержатся сервисы ПО edna Platform, основной неймспейс.kit
: здесь расположен сервисredis
, используемый в качестве in-memory кэша.smq
: здесь расположен open-source проектpulsar
, который отвечает за очередь сообщений. ПО edna Platform использует этот проект для взаимодействия между своими сервисами.com
: здесь расположены базы данных для трёх частей ПО edna Platform:billing
,operator
,platform
.
Как получить полный список контейнеров, используемых в edna Platform
- Подключитесь к VPN, как описано выше.
- Зайдите по SSH на master ноду 10.162.157.11.
- Используйте команду
kubectl -n platform get pod -owide
. Система выдаст список всех сервисов (контейнеров) ПО edna Platform, запущенных на разных нодах. - Чтобы попасть в контейнер, используйте команду:
kubectl -n platform exec -it <название пода> -- bash
Описание контейнеров
Название | Описание |
adapter-implatform | Сервис для взаимодействия с продуктом IM-платформа |
adapter-pushplatform | Сервис для взаимодействия с продуктом PUSH-платформа |
adapter-smsplatform | Сервис для взаимодействия с продуктом SMS-платформа |
billing-core | Сервис для обработки трансакционных событий биллинга |
billing-scheduler | Сервис-планировщик для задач биллинга, включающихся по расписанию |
billing-sms | Сервис для биллинга SMS-сообщений, выставления счетов за услуги SMS |
billing-viber | Сервис для биллинга Viber-сообщений, вставления счетов за услуги Viber |
billing-whatsapp | Сервис для биллинга WhatsApp-сообщений, вставления счетов за услуги WhatsApp |
component-broadcast-executor | Сервис для массовой генерации исходящих сообщений (рассылок) |
component-broadcast-manager | Сервис для управления жизненным циклом рассылок |
component-broadcast-statistic | Сервис для сбора аналитической информации по запущенным рассылкам |
component-callback-inmessage | Сервис для отправки клиентам информации о поступлении входящих сообщений в виде http callback |
component-callback-status | Сервис для отправки клиентам информации об изменении статуса исходящих сообщений в виде http callback |
component-core | Сервис для управления жизненным циклом каскадов сообщений (out super message) и генерации исходящих сообщений (out message) |
component-flow-processor | Сервис для обработки автоматических цепочек диалога (чат-боты) |
component-message-matcher | Сервис для проверки соответствия текста исходящего сообщения операторскому шаблону |
component-persist-in-message | Сервис для обогащения и сохранения в БД входящих сообщений |
component-persist-status | Сервис для обогащения и сохранения в БД статусов исходящих сообщений |
component-router | Сервис для маршрутизации сообщений внутри edna Platform |
component-stage-prepare | Сервис для обработки жизненного цикла каскадов сообщений (out super message) |
facade-internalapi | Сервис для отправки исходящих сообщений, используемый внутренними службами edna Platform |
facade-jivo | Публичный сервис для взаимодействия с edna Platform по протоколу клиента JivoSite |
facade-public-json | Публичный сервис для взаимодействия с edna Platform по протоколу JSON |
server-auth | Сервис для аутентификации и авторизации в личном кабинете edna Platform |
server-broadcast | Сервис для управления рассылками, персональными шаблонами и операторскими шаблонами из личного кабинета edna Platform |
server-channelprofile | Сервис для управления каналами связи (анкетами) из личного кабинета edna Platform |
server-file | Сервис для управления файлами из личного кабинета edna Platform, а также для взаимодействия с хранилищем файлов Minio S3 |
server-keycloak | Open-source-сервис аутентификации от компании Red Hat |
server-notify | Сервис для управления оповещением клиентов и сотрудников компании по email, Rocket Messenger и web-push |
server-operator-importer | Сервис для получения из SMS-платформы информации об операторах сотовой связи, MNP-переходах между операторами и принадлежности номеров телефонов тому или иному оператору |
server-phone-resolver | Сервис для получения информации об операторе, стране и регионе по номеру телефона |
server-registration | Сервис для регистрации в личном кабинете edna Platform |
server-report | Сервис для получения отчетов о пользовании услугами edna Platform в личном кабинете edna Platform |
server-subscriber | Сервис для управления аудиторией клиента в личном кабинете edna Platform |
server-tenantmanagement | Сервис для управления регистрационными данными клиента в личном кабинете edna Platform |