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

Выделим несколько важных аспектов при подготовке инфраструктуры для разворачивания Ensi Platform:
  • 1
    Рекомендуем использовать одновременно две версии инфраструктуры: для production-среды и для приёмки разрабатываемой функциональности. Вычислительные характеристики приёмки обычно не уступают боевой, поскольку низкая нагрузка на API компенсируется количеством реплик сервисов для разных задач.
  • 2
    Конфигурацию компонентов тестовой среды лучше настраивать так же, как и для будущей боевой. Например, если в проекте планируются БД из трёх машин с разделением на read и write адреса, то и на тесте должно быть так же. Однако, для экономии ресурсов часто возможно не масштабировать тестовую среду — в ней ниже нагрузка RPS.
  • 3
    Объём постоянной памяти сильно варьируется от специфики проекта и требует индивидуальной оценки.
  • 4
    В приведенных ниже вариантах конфигураций не учтены вспомогательные компоненты, например IPsec или Dnsmasq, поскольку необходимость их использования зависит от среды, в которой разворачивается система. В облачном хостинге эти функции могут быть автоматизированы, а в существующей корпоративной среде — уже настроены.
Примеры конфигураций рассчитаны оценочно для одного экземпляра Ensi Platform. Производительность системы может снижаться при изменении кода и интеграции с другими сервисами.

Минимальная конфигурация

Предназначена для разворота демо или небольшого количества реплик сервисов приёмки разрабатываемых фич. На проектах с очень низкой нагрузкой до 50 RPS может быть использована на бою.
Пример
Кластер k8s
3 worker node с параметрами 8 cpu, 24Gb RAM, 32Gb HDD
1−3 master node с параметрами 4 cpu, 4Gb RAM, 24Gb HDD
Ceph
3 машины с параметрами 4 cpu, 8Gb RAM, 16Gb HDD + 64GB HDD
Postgres
1 машина с параметрами 4 cpu, 8Gb RAM, 64Gb HDD
Redis
1 машина с параметрами 2 cpu, 4Gb RAM, 16Gb HDD
Kafka
1 машина с параметрами 2 cpu, 4Gb RAM, 16Gb HDD
ElasticSearch Data
1 машина с параметрами 2 cpu, 4Gb RAM, 64Gb HDD
ElasticSearch Logs
1 машина с параметрами 4 cpu, 8Gb RAM, 128Gb HDD
CI/CD Runner
1 машина с параметрами 4 cpu, 16Gb RAM, 128Gb HDD

Рекомендованная конфигурация

Конфигурация подходит для проектов с нагрузкой 300+ RPS.
Пример
Кластер k8s
16 worker node с параметрами 8 cpu, 24Gb RAM, 64Gb HDD
3 master node с параметрами 4 cpu, 8Gb RAM, 24Gb HDD
Ceph
3 машины с параметрами 4 cpu, 8Gb RAM, 16Gb HDD + 512GB HDD
Postgres
3 машины postgres с параметрами 36 cpu, 142Gb RAM, 1Tb HDD
3 машины keepalived+haproxy с параметрами 6 cpu, 12Gb RAM, 32Gb HDD
Redis
3 машины с параметрами 4 cpu, 4Gb RAM, 16Gb HDD
Kafka
3 машины с параметрами 4 cpu, 8Gb RAM, 512Gb HDD
ElasticSearch Data
3 машины master с параметрами 8 cpu, 16Gb RAM, 32Gb HDD
3 машины data с параметрами 12 cpu, 24Gb RAM, 1Tb HDD
ElasticSearch Logs
3 машины master с параметрами 4 cpu, 8Gb RAM, 1Tb HDD
CI/CD Runner
1 машина с параметрами 8 cpu, 16Gb RAM, 128Gb HDD