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

Замещение сервисов из состава AW

Замещение сервисов с awctl, общие сведения

Для того чтобы awctl корректно генерировала конфигурационный файлы при использовании внешних сервисом можно использовать следующий способ:

  1. В конфигурационный файл профиля добавляем мнимый (dummy) сервер, на который выносим все сервисы которые хотим заменить внешними, на других хостах эти сервисы, соответственно, удаляем.

    Пример, заменим db и clickhouse-server, тогда конфигурационный файл профиля, на первом этапе, будет выглядеть следующим образом:

        aw:
          aw_home: /opt/aw/app
          aw_rel_type: inet
          aw_version: '1.35'
          log:
            file: awctl.log
            level: INFO
          with_extra_hosts: true
          with_traefik: false
        hosts:
          aw:
            services:
            - frontend
            - backend
            - widget-export
            - clear-storage
            - model-changes
            - model-sync
            - create-cache-dir
            - websocket
            - puppeteer
            - pgbouncer
            - rabbitmq
            - memcached
            - etl-broker
            - etl-airflow-db
            - etl-airflow
            - etl-spark
            - etl-api
            - etl-data-preview
            - etl-tasks
            - java-puller
            - file-puller
            - odata-puller
            - etl-pusher
            - etl-stats
            - etl-mlflow
            - etl-mlflow-db
            - auth-bridge
            - data-master
            - minio
            - minio-init
            - diag
            - clickhouse-parser
            - sender
            - file-builder
            - cron
            - swagger
            - traefik
          fakehost:
            services:
            - db
            - clickhouse-server
    
  2. Чтобы команда /opt/awctl/awctl gen <имя_профиля> корректно отработала, нужно для мнимого сервера указать значение переменных: aw_host и aw_user, при этом не обязательно указывать реально существующий в сети IP-адрес (или имя сервера):

        aw:
          aw_home: /opt/aw/app
          aw_rel_type: inet
          aw_version: '1.35'
          log:
            file: awctl.log
            level: INFO
          with_extra_hosts: true
          with_traefik: false
        hosts:
          aw:
            aw_host: 192.168.0.15
            aw_user: awbi
            services:
            - frontend
            - backend
            - widget-export
            - clear-storage
            - model-changes
            - model-sync
            - create-cache-dir
            - websocket
            - puppeteer
            - pgbouncer
            - rabbitmq
            - memcached
            - etl-broker
            - etl-airflow-db
            - etl-airflow
            - etl-spark
            - etl-api
            - etl-data-preview
            - etl-tasks
            - java-puller
            - file-puller
            - odata-puller
            - etl-pusher
            - etl-stats
            - etl-mlflow
            - etl-mlflow-db
            - auth-bridge
            - data-master
            - minio
            - minio-init
            - diag
            - clickhouse-parser
            - sender
            - file-builder
            - cron
            - swagger
            - traefik
          fakehost:
            aw_host: 10.10.0.10
            aw_user: awbi
            services:
            - db
            - clickhouse-server
    
  3. Для настоящих серверов в секции env добавляем необходимые переменные, указывающие на замещенные сервисы:

        aw:
          aw_home: /opt/aw/app
          aw_rel_type: inet
          aw_version: '1.35'
          log:
            file: awctl.log
            level: INFO
          with_extra_hosts: true
          with_traefik: false
        hosts:
          env:
            DB_USERNAME: awbipg
            DB_PASSWORD: awbipgPass
            DB_NAME: workspace
            PGB_POSTGRESQL_HOST: 192.168.0.120 
            PGB_POSTGRESQL_PORT: 5432
            CLICK_HOST: 192.169.0.100
            CLICK_PORT: 8123
            CLICK_DB: awbidb
            CLICK_MYSQL_PORT: 9004
            CLICK_POSTGRESQL_PORT: 9005
            CLICK_TIMEOUT: 36000
            CLICK_TCP_PORT: 9000
            CLICK_USER: awbiclk
            CLICK_PASS: awbiClickPass
            CLICK_SSL: false
            CLICK_ISCLUSTER: false
            CLICK_CLUSTER: ''
          aw:
            aw_host: 192.168.0.15
            aw_user: awbi
            services:
            - frontend
            - backend
            - widget-export
            - clear-storage
            - model-changes
            - model-sync
            - create-cache-dir
            - websocket
            - puppeteer
            - pgbouncer
            - rabbitmq
            - memcached
            - etl-broker
            - etl-airflow-db
            - etl-airflow
            - etl-spark
            - etl-api
            - etl-data-preview
            - etl-tasks
            - java-puller
            - file-puller
            - odata-puller
            - etl-pusher
            - etl-stats
            - etl-mlflow
            - etl-mlflow-db
            - auth-bridge
            - data-master
            - minio
            - minio-init
            - diag
            - clickhouse-parser
            - sender
            - file-builder
            - cron
            - swagger
            - traefik
          fakehost:
            aw_host: 10.10.0.10
            aw_user: awbi
            services:
            - db
            - clickhouse-server
    
    После того как заместили необходимые сервисы продолжаем установку согласно инструкции по Распределенной установка AW.

Список сервисов допустимых к замещению

  1. db ( PostgreSQL, версия 13.15) - основная БД для хранения данных о пользователях, моделях, источниках и т.п. Переменные, значение которых, необходимо изменить при замещении сервиса:

    • DB_USERNAME
    • DB_PASSWORD
    • DB_NAME
    • PGB_POSTGRESQL_HOST
    • PGB_POSTGRESQL_PORT
  2. clickhouse-server - основное хранилище данных моделей. Переменные, значение которых, необходимо изменить при замещении сервиса:

    • CLICK_HOST
    • CLICK_PORT
    • CLICK_DB
    • CLICK_MYSQL_PORT
    • CLICK_POSTGRESQL_PORT
    • CLICK_TIMEOUT
    • CLICK_TCP_PORT
    • CLICK_USER
    • CLICK_PASS
    • CLICK_SSL
    • CLICK_ISCLUSTER
    • CLICK_CLUSTER
  3. rabbitmq - обмен сообщениями между сервисами, межсервисное взаимодействие. Переменные, значение которых, необходимо изменить при замещении сервиса:

    • RABBIT_HOST
    • RABBIT_PORT
    • RABBIT_USER
    • RABBIT_PASS
  4. memcached - кэширование данных. Переменные, значение которых, необходимо изменить при замещении сервиса:

    • MEMCACHED_HOST
    • MEMCACHED_PORT
  5. redis - межсервисное взаимодействие. Переменные, значение которых, необходимо изменить при замещении сервиса:

    • ETL_MONITOR_BROKER_URL
    • ETL_BROKER_URL
    • ETL_STATS_TASKS_BROKER_URL
  6. etl-airflow-db (PostgreSQL) - БД для airflow. Переменные, значение которых, необходимо изменить при замещении сервиса:

    • ETL_AIRFLOW_DB_CONNECTION
    • ETL_AIRFLOW_CELERY_RESULT_BACKEND
  7. minio - переменные, значение которых, необходимо изменить при замещении сервиса:

    • MINIO_USERNAME
    • MINIO_PASSWORD
    • MINIO_BUCKET
    • MINIO_CONTAINER
    • ML_FLOW_S3_ENDPOINT_URL
    • ML_FLOW_S3_USERNAME
    • ML_FLOW_S3_PASSWORD
    • ETL_MODEL_STORAGE_S3_URL
    • ETL_STATS_S3_URL
    • ETL_S3_URL
    • AW_S3_URL
    • ODATA_PULLER_S3_URL