1. Архитектура и первичные настройки Платформы

 

Данный раздел содержит общее описание Платформы и рассматривает особенности ее развертывания и настроки в контуре заказчика.

Архитектура системы

Платформа представляет из себя трехслойную структуру(three layer), состоящую из базы данных, веб-сервисов (движки бронирования услуг) и веб-приложений, и может быть предоставлена в одном из вариантов исполнения:

  1. Программное обеспечение, как услуга (SaaS) - размещается на аппаратных средствах, принадлежащих Corteos с предоставлением веб-интерфейса или API;

  2. Размещение на аппаратных средствах заказчика с наличием доступа пользователей из сети Интернет;

  3. Размещение на аппаратных средствах заказчика с доступом только из внутренней сети.

Варианты исполнения

Программное обеспечение, как услуга (SaaS)

Платформа располагается в контуре разработчика и предоставляется в виде себ-сайта и веб-сервисов.

Плюсы:

  • минимальная сложность запуска,

  • минимальная стоимость использования услуги,

  • нет необходимости создавать и поддерживать инфраструктуру для обеспечения работы Платформы,

  • нет необходимости решать задачи, связанные с взаимодействием с поставщиками услуг (сетевые настройки, занесение ip-адресов в белый список, генерация сертификатов и т.п),

  • разработчик может максимально оперативно выявить и устранить возникающие ошибки и произвести необходимые настройки

Минусы:

  • возникает необходимость обеспечения информационной безопасности каналов взаимодействия пользователей с Платформой (например, настройка vpn-тоннеля),

  • управление жизненным циклом данных заказчика ограничено возможностями API

 

Размещение на аппаратных средствах заказчика с наличием доступа пользователей из сети Интернет

Плюсы:

  • полная управляемость инфраструктурой,

  • сотрудники заказчика, использующие систему, находятся во внутренней сети, что упрощает задачу обеспечения информационной безопасности,

  • появляется возможность полностью управлять жизненным циклом хранимых данных

Минусы:

  • повышенная стоимость, по сравнению с SaaS

  • более сложный процесс интеграции,

  • необходимо самостоятельно осуществлять поддержку инфраструктуры,

  • необходимо производить дополнительные настройки для взаимодействия с поставщиками услуг (настройка сертификатов, внесение ip-адресов в белый список и т.п.)

  • возникает необходимость обеспечения информационной безопасности каналов взаимодействия пользователей агента с Платформой (например, настройка vpn-тоннеля),

  • поддержка решения разработчиком требует дополнительных трудозатрат

Размещение на аппаратных средствах заказчика с доступом только из внутренней сети

Плюсы:

  • полная управляемость инфраструктурой и обрабатываемой информацией,

  • появляется возможность полностью управлять жизненным циклом хранимых данных,

  • передача персональных данных в сеть Интернет сведена до минимума и ограничена необходимым взаимодействием с поставщиками услуг

Минусы:

  • повышенная стоимость, по сравнению с SaaS

  • более сложный процесс интеграции,

  • необходимо самостоятельно осуществлять поддержку инфраструктуры,

  • необходимо производить дополнительные настройки для взаимодействия с поставщиками услуг (настройка сертификатов, внесение ip-адресов в белый список и т.п.) и агентом

  • поддержка решения разработчиком требует дополнительных трудозатрат

  • требуется выделение рабочих мест для пользователей агента

  • оказание услуг агентом требует дополнительных трудозатрат

 

Требования к аппаратной части

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

Усредненные рекомендуемые требования для каждого сервера:

Веб-сервер

Процессор

серверная модель процессора, от 12 логических ядер

Процессор

серверная модель процессора, от 12 логических ядер

Оперативная память

от 16 ГБ

Жесткие диски

Минимальные требования:

  • от 300 Гб HDD (система + сайты)

Рекомендуемые требования:

  • от 120 ГБ HDD SAS, рекомендуется RAID-1 для отказоустойчивости (операционная система),

  • от 64 ГБ SSD, рекомендуется RAID-1 для отказоустойчивости (сайты),

  • от 64 ГБ SSD (временные файлы IIS + лог-файлы),

  • от 240 ГБ HDD (долговременное хранилище логов + резервные копии)

Сервер БД

Процессор

серверная модель процессора, от 12 логических ядер

Процессор

серверная модель процессора, от 12 логических ядер

Оперативная память

от 32 ГБ

Жесткие диски

  • от 120 ГБ HDD SAS, рекомендуется RAID-1 для отказоустойчивости (операционная система, [pgsql]WAL),

  • от 120 ГБ SSD, рекомендуется RAID-1 для отказоустойчивости (таблицы),

  • от 64 ГБ SSD ([ms sql]tempdb),

  • от 240 ГБ HDD (резервные копии, логи)

Рекомендации:

Для повышения быстродействия рекомендуется установить NVME-диски для ОС и раздела с данными БД.

Тестовая среда

Для тестовой среды возможно односерверное исполнение стенда и понижение требований к аппаратной части:

Процессор

серверная модель процессора, от 12 логических ядер

Процессор

серверная модель процессора, от 12 логических ядер

Оперативная память

от 16 ГБ

Жесткие диски

  • от 240 ГБ HDD/SSD

 

Требования к программному обеспечению

Конфигурация open-source

Веб-сервер

  • Операционная система Debian последней stable-версии

  • Ngnix последней stable-версии

  • .NET Core 6

Для корректной работы сайтов обязательно наличие SSL-сертификата на доменные имена.

Сервер БД

  • Операционная система Debian последней stable-версии

  • PostgreSQL последней stable-версии

Конфигурация в стеке Microsoft

Веб-сервер

  • Операционная система Microsoft Windows Server 2016 и выше, русская локализация

  • Internet Information Services 10 и выше

  • .NET Framework 4.7.2

Для корректной работы сайтов обязательно наличие SSL-сертификата на доменные имена.

Сервер БД

  • Операционная система Microsoft Windows Server 2016 и выше, русская локализация

  • MS SQL Server 2017 и выше

Настройка веб-сервера

Одним из существенных моментов настройки является локализация системы, она должна быть обязательно русской, RU-ru. Остальные настройки остаются после установки компонента IIS по умолчанию.

Сетевые настройки

Для бронирования услуг компоненты Платформы осуществляют сетевое взаимодействие с сервисами поставщиов услуг. Таким образом, до начала работы заказчика в системе следует определить используемых поставщиков и настроить сетевой доступ к их веб-сервисам.

Для ускорения отображения интерфейсов веб-сайта файлы стилей и изображения вынесены на внешний кэширующий сайт static.corteos.ru. Таким образом, для полнофункцинальной работы в системе необходимо настроить доступ к сайту static.corteos.ru из корпоративной сети заказчика, либо разворачивать этот сайт внутри сети.

Структура сайтов

Платформа объединяет в себе множество сайтов, взаимодейстсующих между собой как сервисы посредством API (движки бронирования услуг), так и через сквозную авторизацию SSO (административные интерфейсы).

В состав Платформы входят следующие сайты, которые необходимо создать на сервере IIS:

  • prd.corteos.ru - рабочая область Платформы, позволяет заказывать услуги и управлять заказами,

  • prd.admin.corteos.ru - административный интерфейс системных настроек Платформы (css, подключенные услуги, настрокйи почтового сервера и т.п.),

  • prd.sso.corteos.ru - сервис для выполнения сквозной авторизации,

  • prd.avia.corteos.ru - сервис (движок) бронирования авиабилетов, взаимодействует с рабочим сайтом посредством API,

  • prd.adm.avia.corteos.ru - административный интерфейс сервиса бронирования авиабилетов, позволяет настраивать доступы к системам поставщиков, редактировать сравочник географических объектов и авиакомпаний, и выполнять прочие настройки процесса авиабронирования,

  • prd.hotels.corteos.ru - сервис (движок), бронирования гостиниц, взаимодействует с рабочим сайтом посредством API,

  • prd.adm.hotels.corteos.ru - административный интерфейс сервиса бронирования гостиниц, позволяет настраивать доступы к системам поставщиков, редактировать сравочник географических объектов, и выполнять прочие настройки, относящиеся к работе сервиса,

  • prd.rail.corteos.ru - сервис (движок) бронирования жд билетов, взаимодействует с рабочим сайтом посредством API.

 

Структура сайтов может быть представлена в виде схемы:

 

Файлы конфигурации сайтов

Основные параметры, настраиваемые в файлах конфигурации - это доступы к БД, url сервисов, с которыми взаимодействует сайт, и физический путь к директории с лог-файлами.

prd.corteos.ru

Название файла конфигурации: appSettings.config

Ключ

Значение

Ключ

Значение

HangFireConnectionString

ConnectionString к базе Hangfire, требуемой для работы таймера

JavelinModel.SQL.ConnectionString

ConnectionString к базе AgencyBase, требуемой для работы с заказами

RailModel.SQL.ConnectionString

ConnectionString к базе RailBase, требуемой для работы услуги покупки ЖД билетов

AviaModel.SQL.ConnectionString

ConnectionString к базе AviaBase, требуемой для работы услуги покупки авиабилетов

HotelModel.SQL.ConnectionString

ConnectionString к базе HEBase, требуемой для работы услуги бронирования гостиниц

JavelinSession.SQL.ConnectionString

ConnectionString к базе ServiceBase, используемой для хранения контекста поиска услуг

API.AviaServiceUrl

URL сервиса авиабронирования (prd.avia.corteos.ru)

API.HotelServiceUrl

URL сервиса бронирования гостиниц (prd.hotels.corteos.ru)

AviaAdminUrl

URL сайта административного интерфейса услуги авиабронирования (prd.adm.avia.corteos.ru)

HotelAdminUrl

URL сайта административного интерфейса услуги бронирования гостиниц (prd.adm.hotels.corteos.ru)

RailAdminUrl

URL сайта административного интерфейса услуги покупки ЖД билетов (prd.adm.rail.corteos.ru)

SsoServiceUrl

URL API сервиса SSO для перехода на внешние ресурсы, например в административные интерфейсы (Outgoing.asmx)

SSO.WebServiceUrl

URL API сервиса SSO для работы мода ModSSOService (DataService.asmx)

RecaptchaSiteKey

Ключ для работы сервиса Google reCAPTCHA, используемого сайтом

RecaptchaSecret

Секретный ключ для работы сервиса Google reCAPTCHA, используемого сайтом

Logging.Enabled

Флаг, позволяющий включать и выключать ведение логов

FilesystemLogRoot

Физический путь к директории с логами, по умолчанию c:\corteos\logs

SQL.Logging.Enabled

Флаг, позволяющий включать и выключать ведение допллнительного лога взаимодействия с БД

prd.admin.corteos.ru

Название файла конфигурации: appSettings.config

Ключ

Значение

Ключ

Значение

AdminLogin

Логин пользователя с правами администратора

AdminPassword

Пароль пользователя с правами администратора

SsoServiceUrl

URL API сервиса SSO для перехода на внешние ресурсы, например в административные интерфейсы (Outgoing.asmx)

HomeSiteUtilsAPIUrl

URL основного сайта для получения списка доступных модов

AviaAdminUrl

URL сайта административного интерфейса услуги авиабронирования (prd.adm.avia.corteos.ru)

HotelAdminUrl

URL сайта административного интерфейса услуги бронирования гостиниц (prd.adm.hotels.corteos.ru)

RailAdminUrl

URL сайта административного интерфейса услуги покупки ЖД билетов (prd.adm.rail.corteos.ru)

JavelinModel.SQL.ConnectionString

ConnectionString к базе AgencyBase, требуемой для работы с заказами

RecaptchaSiteKey

Ключ для работы сервиса Google reCAPTCHA, используемого сайтом

RecaptchaSecret

Секретный ключ для работы сервиса Google reCAPTCHA, используемого сайтом

prd.sso.corteos.ru

Название файла конфигурации: web.config

Ключ

Значение

Ключ

Значение

JavelinModel.SQL.ConnectionString

ConnectionString к базе AgencyBase, требуемой для работы с заказами

prd.avia.corteos.ru

Название файла конфигурации: appSettings.config

Ключ

Значение

Ключ

Значение

AviaModel.SQL.ConnectionString

ConnectionString к базе AviaBase, требуемой для работы услуги покупки авиабилетов

Environment.Test

Флаг для включения режима тестовой среды, при котором блокируются запросы к боевым сервисам и подменяются на тестовые доступы

AviaV3.LogRoot

Физический путь к директории с логами, по умолчанию c:/corteos/logs/aviaengineV3

Zip.TempPath

Физический путь для промежуточного сохранения лог-файлов перед упаковкой их в архив, по умолчанию c:/corteos/zipTemps

RecaptchaSiteKey

Ключ для работы сервиса Google reCAPTCHA, используемого сайтом

RecaptchaSecret

Секретный ключ для работы сервиса Google reCAPTCHA, используемого сайтом

prd.adm.avia.corteos.ru

Название файла конфигурации: web.config

Ключ

Значение

Ключ

Значение

AviaModel.SQL.ConnectionString

ConnectionString к базе AviaBase, требуемой для работы услуги покупки авиабилетов

API.AviaServiceUrl

URL сервиса авиабронирования (prd.avia.corteos.ru) для отправки запроса очистки кэша

SSO.LogoutPage

URL для обратного перехода на страницу, с которой был выполнен SSO-переход на этот сайт (https://prd.sso.corteos.ru/OutgoingRedirection/Back)

RecaptchaSiteKey

Ключ для работы сервиса Google reCAPTCHA, используемого сайтом

RecaptchaSecret

Секретный ключ для работы сервиса Google reCAPTCHA, используемого сайтом


prd.hotels.corteos.ru

Название файла конфигурации: appSettings.config

Ключ

Значение

Ключ

Значение

HotelModel.SQL.ConnectionString

ConnectionString к базе HEBase, требуемой для работы услуги бронирования гостиниц

Environment.Test

Флаг для включения режима тестовой среды, при котором блокируются запросы к боевым сервисам и подменяются на тестовые доступы

HotelV4.LogSearches

Флаг для включения ведения логов поиска гостиниц - по умолчанию false

HotelV4.LogRoot

Физический путь к директории с логами, по умолчанию c:\corteos\logs\engines\hotel

Zip.TempPath

Физический путь для промежуточного сохранения лог-файлов перед упаковкой их в архив, по умолчанию c:/corteos/zipTemps

prd.adm.hotels.corteos.ru

Название файла конфигурации: web.config

Ключ

Значение

Ключ

Значение

HotelModel.SQL.ConnectionString

ConnectionString к базе HEBase, требуемой для работы услуги бронирования гостиниц

API.HotelServiceUrl

URL сервиса бронирования гостиниц (prd.hotels.corteos.ru) для отправки запроса очистки кэша

SSO.LogoutPage

URL для обратного перехода на страницу, с которой был выполнен SSO-переход на этот сайт (https://prd.sso.corteos.ru/OutgoingRedirection/Back)

RecaptchaSiteKey

Ключ для работы сервиса Google reCAPTCHA, используемого сайтом

RecaptchaSecret

Секретный ключ для работы сервиса Google reCAPTCHA, используемого сайтом

prd.adm.rail.corteos.ru

Название файла конфигурации: web.config

Ключ

Значение

Ключ

Значение

RailModel.SQL.ConnectionString

ConnectionString к базе RailBase, требуемой для работы услуги покупки ЖД билетов

SSO.LogoutPage

URL для обратного перехода на страницу, с которой был выполнен SSO-переход на этот сайт (https://prd.sso.corteos.ru/OutgoingRedirection/Back)

RecaptchaSiteKey

Ключ для работы сервиса Google reCAPTCHA, используемого сайтом

RecaptchaSecret

Секретный ключ для работы сервиса Google reCAPTCHA, используемого сайтом

prd.rail.corteos.ru

Название файла конфигурации: web.config

Ключ

Значение

Ключ

Значение

RailModel.SQL.ConnectionString

ConnectionString к базе RailBase, требуемой для работы услуги покупки ЖД билетов

Environment.Test

Флаг для включения режима тестовой среды, при котором блокируются запросы к боевым сервисам и подменяются на тестовые доступы

RailV1.LogRoot

Физический путь к директории с логами, по умолчанию c:\corteos\logs\engines\rail

Zip.TempPath

Физический путь для промежуточного сохранения лог-файлов перед упаковкой их в архив, по умолчанию c:/corteos/zipTemps

Настройка сервера БД (только для MS SQL)

Для работы сервера БД необходимо после установки MS SQL Server произвести следующие настройки:

  1. Включить работу по сетевому протоколу (SQL Server Configuration Manager):

  2. Включить работу с Filestream (SQL Server Configuration Manager):

  3. Отключить генерацию имен файлов 8.3 в файловой системе NTFS при помощи команды
    fsutil 8dot3name set 1
    По умолчанию эта настройка включена, что очень сильно замедляет работу таблиц с FILESTREAM.

Кроме этого для повышения производительности рекомендуется:

  1. Для баз данных установить модель восстановления Simple

     

  2. Размещать базу tempdb на отдельном физическом диске, желательно SSD.