# Серверная часть

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

**1. Вариант на одном сервере**&#x20;

Самый простой и быстрый способ запустить платформу - это установка всех микросервисов платформы на один сервер, где каждый микросервис будет поднят как хост nginx, сервер баз данных и все остальные сервисы также подняты на этом же физическом (или виртуальном) сервере. Хранение файлов (изображения товаров, генерируемые документы и тп) можно хранить прямо в хранилище микросервиса File-MS, но мы настоятельно рекомендуем использование облачного s3-совместимого хранилища

<figure><img src="/files/LGecdNtMujXQBklzIodx" alt=""><figcaption></figcaption></figure>

Испытания показали, что при базовых настройках, сервер с характеристиками:&#x20;

* Оперативная память: 16 Гб;&#x20;
* Количество ядер процессора: 4;&#x20;
* Операционная система Ubuntu Server 20.04 LTS
* SSD от 60 ГБ

-может выдерживать нагрузку до 1500 RPS. (Отчет нагрузочного тестирования - [ссылка](https://docs.google.com/document/d/1cnr39COlDdAApOC7Hoj7U_0-QNxClBQnwSXPh4R-BhQ/edit#heading=h.2s74ivyqr8uk)  )

**Необходимое время на развертывание платформы по этому варианту - 5 рабочих дней.**&#x20;

**2. Масштабирование сервера**

При ожидаемом большем трафике следует реплицировать сервер описанный выше, с установкой перед ними прокси-балансировщика, БД следует вынести на отдельный сервер (или кластер серверов) для возможности общего доступа к ним с серверов с микросервисами.&#x20;

Характеристики сервера БД следует рассчитать индивидуально под прогнозируемый объем ассортимента. Рекомендуем на старте взять кластер из трех серверов с характеристиками:

* 16Гб оперативной памяти&#x20;
* 8 ядер процессора&#x20;
* 500Гб места на жестком диске

<figure><img src="/files/E4JhTybPeRMInCckP5tv" alt=""><figcaption></figcaption></figure>

Масштабирование реплик сервера с установленными на нем всех микросервисов на определенном этапе может оказаться избыточным, поскольку только несколько микросервисов потребляют основное количество ресурсов процессора и оперативной памяти.

**Необходимое время на развертывание платформы по этому варианту - 5 рабочих дней для каждого сервера.**&#x20;

**3.Вариант с размещением каждого микросервиса на отдельном сервере**&#x20;

Более продвинутым решением развертывания платформы будет развертывание каждого микросервиса на отдельном сервере (или виртуальной машине) с последующей репликацией и установкой прокси-балансировщика для каждого такого сервера. Технические характеристики для каждой такой машины на начальном этапе рекомендуем брать:

* 8ГБ оперативной памяти,&#x20;
* 8 ядер процессора&#x20;
* 20 ГБ места на жестком диске для каждой реплики каждого микросервиса,&#x20;
* Операционная система Ubuntu 22.0&#x34;**.**&#x20;

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

<figure><img src="/files/1qBL2AMbZxWWPK8mD1Gp" alt=""><figcaption></figcaption></figure>

**Необходимое время на развертывание платформы по этому варианту - 15 рабочих дней, (будут развернуты каждый микросервис на отдельный сервер (или ВМ) в единственном экземпляре.**

## Доступ к серверу по SSH

* Домен должен указывать на сервер через A-запись&#x20;
* Поддомены должны указывать на главный домен через CNAME&#x20;
* В противном случае, дать доступ к панели регистратора домена для редактирования DNS

Список поддоменов: www, admin, api-ms, auth-ms, catalog-import-ms, cm-ms, cms-ms, file-ms, logistics-ms, marketing-ms, mas, merchant-api-ms, merchant-management-ms, message-ms, oms-ms, pim-ms, report-ms

## Доступы к сервисам

* Доступы к хранилищу S3
* DaData&#x20;
* Aplaut (ex Shoppilot)&#x20;
* APISHIP или CDEK&#x20;
* ЮKassa&#x20;
* SMS Center &#x20;
* Логотипы для витрины - для шапки и подвала&#x20;
* Логотипы для админки и маса (панели мерчанта)&#x20;
* Google Tag Manager Id
* Логин/пароль Email для отправки писем с сайта

Необходимые данные по Email:

* MAIL\_USERNAME
* MAIL\_PASSWORD
* MAIL\_HOST
* MAIL\_PORT
* MAIL\_FROM\_NAME
* MAIL\_FROM\_ADDRESS
* MAIL\_ENCRYPTION (ssl или tls)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lennuftechwiki.gitbook.io/lennuftechwiki/servernaya-chast.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
