Перейти к содержанию

Требования к установке

Операционная система

Установка on-premise версии возможна на GNU/Linux дистрибутивы (включая отечественные: AstraLinux, AltLinux, RedOS и иные).

Ресурсы сервера

Базовые требования для рабочей среды

  • Минимально допустимые требования для серверов приложения: 32Gb RAM, 16 ядер CPU.

Рекомендация по ресурсам

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

Требования к сервисам данных

  • PostgreSQL: от 32Gb RAM;
  • Redis: от 2Gb RAM;
  • Размер shm для PostgreSQL: не менее 4Gb;
  • При использовании внешней базы данных для PostgreSQL рекомендуется от 64Gb RAM.

Требования к хранилищу

  • Для модуля CodeScoring.SCA при использовании VCS-проектов объем тома analysis-root рассчитывается из размера анализируемых репозиториев, умноженного на три;
  • Для модуля CodeScoring.SCA при использовании CLI-проектов и для модуля CodeScoring.OSA отдельные требования по формуле ×3 не предъявляются;
  • При оффлайн-установке для базы данных CodeScoring Index необходимо выделять от 300Gb с запасом под последующие обновления;

Пример высоконагруженной инсталляции

  • Сервер базы данных: 96Gb RAM, 24 ядер CPU;
  • Сервер приложений: 192Gb RAM, 48 ядер CPU.

Поддерживаемые версии внешних сервисов

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

Redis

  • Минимальная версия: 7.0.0;
  • Протестированная версия: 7.4.6.

PostgreSQL

  • Минимальная версия: 15.x (любая минорная);
  • Протестированная версия: 15.15.

Использование других мажорных веток не гарантирует корректный результат и может приводить к ошибкам или снижению производительности.

Внешние запросы

Для установки системы должен быть доступен Docker Registry с образами CodeScoring, адрес которого предоставляется вместе с ключом активации.

Для корректной работы с сервера также должен быть доступен адрес index.codescoring.ru с постоянно актуализируемой базой известных пакетов, их атрибутов и уязвимостей.

Из Index API платформа получает обогащенную информацию по найденным зависимостям, их лицензиям и уязвимостями.

Общая архитектура работы представлена на изображении ниже.

CodeScoring on-premise architecture

Из платформы в облако CodeScoring не отправляется исходный код, но для получения информации по зависимостям и лицензионного контроля отправляются:

  1. анонимизированные данные по найденным манифестам пакетных менеджеров и их содержимому;
  2. хэши файлов исходного кода для поиска прямых включений Open Source библиотек в код проектов;
  3. количество активных авторов за последний год;
  4. количество проектов в системе;
  5. версия платформе.

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

Пример содержимого запроса от платформе к Index API с данными по манифестам пакетных менеджеров:

[
  {
    "path": "114bc73d-a9ba-433d-9a3e-f2b29d822204",
    "type": "file",
    "extension": ".txt",
    "result": {
      "platform": "pypi",
      "dependencies": [
        {
          "name": "django",
          "requirement": "==3.0.0",
          "resolved_requirement": "3.0.0",
          "env": "dev"
        }
      ],
      "kind": "manifest",
      "success": true,
      "extra": {}
    }
  },
  {
    "path": "efde2364-dc0c-45a9-905a-a487b3361ac7",
    "type": "file",
    "extension": ".xml",
    "result": {
      "platform": "maven",
      "dependencies": [
        {
          "name": "org.liquibase:liquibase-core",
          "requirement": "3.6.2",
          "resolved_requirement": "3.6.2",
          "env": "compile"
        },
        {
          "name": "xpp3:xpp3",
          "requirement": "1.1.4c",
          "resolved_requirement": "1.1.4c",
          "env": "compile"
        }
      ],
      "kind": "manifest",
      "success": true,
      "extra": {}
    }
  },
  {
    "path": "49dd4c09-b5de-474a-998a-3ce0a94a5221",
    "type": "file",
    "extension": ".txt",
    "result": {
      "platform": "pypi",
      "dependencies": [
        {
          "name": "apt-wrapper",
          "requirement": "==1.18",
          "resolved_requirement": "1.18",
          "env": "runtime"
        },
        {
          "name": "django",
          "requirement": "==2.0.0",
          "resolved_requirement": "2.0.0",
          "env": "runtime"
        },
        {
          "name": "text-unidecode",
          "requirement": "==1.3",
          "resolved_requirement": "1.3",
          "env": "runtime"
        }
      ],
      "kind": "manifest",
      "success": true,
      "extra": {}
    }
  }
]

Пример содержимого запроса от платформы к Index API с данными по хэшам файлов исходного кода:

[
  {
    "id": "ca028ad9-0676-4c85-a5b0-9bf81fba6fcc",
    "ext": ".xml",
    "sha256": "e01c736a351633932e8b3ed041e553f67968e07d35d2c153b02b60e910a8c433"
  }
]