Инфраструктура

На данной странице сейчас описана инфраструктура в которой разрабатывается платформа.

При развороте платформы под конкретное внедрение страница должна быть актуализирована под новые вводные.

Общая схема

Окружение, в котором разрабатывается ensi состоит из следующих частей:

  • Кластер k8s

  • Сервер администрирования и воркер ci/cd

  • Кластер Ceph

  • Сервер с СУБД Postgres

В общих чертах схема развёртывания выглядит как показано на рис. 1.

Рис. 1 - Схема развёртывания ensi

Кластер k8s

Кластер состоит из 6 машин. На них развёрнуты микросервисы ensi и различные инфраструктурные сервисы, необходимые как для непосредственно работы ensi, так и для мониториринга её работы.

Машина

IP

CPU

RAM

DISK

Машина

IP

CPU

RAM

DISK

master1

10.1.0.21

4

4

20

master2

10.1.0.22

4

4

20

master3

10.1.0.23

4

4

20

worker1

10.1.0.24

16

32

64

worker2

10.1.0.25

16

32

64

worker3

10.1.0.26

16

32

64

Сервер администрирования / Jenkins agent

Сервер используется в основном как агент Jenkins, на котором выполняется сборка docke образов. Кроме того на машине установлены kubectl и helm, и настроен доступ в кластер k8s.

Машина

IP

CPU

RAM

DISK

Машина

IP

CPU

RAM

DISK

kube-adm

10.1.0.2

4

16

20

Кластер ceph

Кластер состоит из трёх машин. Используются как отказоусточивое сетевое файловое хранилище, доступное с любой из машин кластера k8s. В нём хранятся файлы всех приложений, развёрнутых в k8s, как микросервисов ensi, так и инфраструктурных сервисов.

Машина

IP

CPU

RAM

DISK

Машина

IP

CPU

RAM

DISK

ceph1

10.1.0.31

4

8

120

ceph2

10.1.0.32

4

8

120

ceph3

10.1.0.33

4

8

120

Сервер postgres

Используется как основная БД самим ensi.

Машина

IP

CPU

RAM

DISK

Машина

IP

CPU

RAM

DISK

database

10.1.0.10

20

24

120

Системы управления

K8s dashboard

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

https://dash.infra.ensi.tech/

Ceph dashboard

Веб-интерфейс для управления кластером ceph.

https://ceph.infra.ensi.tech/

Системы CI/CD

Jenkins

Система автоматизации задач. Используется для сборки и отгрузки микросервисов ensi.

https://jenkins.infra.ensi.tech/

Nexus

Хранилище артефактов, таких как docker образы и composer пакеты.

https://nexus.infra.ensi.tech/

Системы мониторинга

Prometheus

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

https://grafana.infra.ensi.tech/

ELK

Связка из Elasticsearch, Logstash и Kibana используется для сбора логов с микросервисов ensi и с некоторых компонентов платформы, таких как, например, ingress controller.

https://logs.infra.ensi.tech/

Инфраструктурные сервисы ensi, развёрнутые в кластере

Elasticsearch

NoSql хранилище и поисковой движок, использующийся в ensi для быстрой фильтрации больших массивов данных, например товаров. Для его настройки и отладки поисковых запросов используется Kibana.

https://kibana.infra.ensi.tech/

Kafka

Система обмена сообщениями между микросервисами ensi.