Skip to content

Инструкции по развертыванию FlowCraft

В этом документе описаны различные способы развертывания платформы FlowCraft в различных средах, включая локальное развертывание, развертывание в Docker, Kubernetes и облачных провайдерах.

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

Перед установкой FlowCraft убедитесь, что ваша система соответствует следующим минимальным требованиям:

Аппаратные требования

  • CPU: 2+ ядра (рекомендуется 4+ ядер)
  • RAM: Минимум 4 ГБ (рекомендуется 8+ ГБ)
  • Дисковое пространство: Минимум 20 ГБ (рекомендуется SSD)
  • Сеть: Стабильное подключение к интернету

Программные требования

  • Операционная система:
    • Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+)
    • macOS 11+
    • Windows 10/11 с WSL2
  • Python: 3.10+
  • PostgreSQL: 13+
  • Redis: 6+
  • Node.js: 16+

Варианты развертывания

FlowCraft предлагает несколько вариантов развертывания в зависимости от ваших потребностей:

  1. Локальная установка - установка непосредственно на сервер или рабочую станцию
  2. Docker - развертывание с использованием Docker и Docker Compose
  3. Kubernetes - развертывание в кластере Kubernetes
  4. Облачные провайдеры - развертывание в AWS, Azure, GCP
  5. FlowCraft Cloud - полностью управляемый сервис

Локальная установка

Подготовка окружения

  1. Установка зависимостей

    Для Ubuntu/Debian:

    bash
    sudo apt update
    sudo apt install -y python3 python3-pip python3-venv postgresql postgresql-contrib redis-server nodejs npm

    Для CentOS/RHEL:

    bash
    sudo dnf install -y python3 python3-pip postgresql-server postgresql-contrib redis nodejs
    sudo postgresql-setup --initdb
    sudo systemctl start postgresql
    sudo systemctl enable postgresql
    sudo systemctl start redis
    sudo systemctl enable redis

    Для macOS (с использованием Homebrew):

    bash
    brew install python postgresql redis node
    brew services start postgresql
    brew services start redis
  2. Создание базы данных

    bash
    sudo -u postgres psql -c "CREATE USER flowcraft WITH PASSWORD 'your_secure_password';"
    sudo -u postgres psql -c "CREATE DATABASE flowcraft OWNER flowcraft;"
    sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE flowcraft TO flowcraft;"
  3. Настройка Redis

    Убедитесь, что Redis запущен и доступен на порту 6379.

Установка FlowCraft

  1. Клонирование репозитория

    bash
    git clone https://github.com/your-organization/flowcraft.git
    cd flowcraft
  2. Создание виртуального окружения Python

    bash
    python3 -m venv venv
    source venv/bin/activate  # На Windows: venv\Scripts\activate
  3. Установка зависимостей Python

    bash
    pip install -r requirements.txt
  4. Установка зависимостей Node.js

    bash
    cd frontend
    npm install
    npm run build
    cd ..
  5. Настройка переменных окружения

    Создайте файл .env в корневой директории проекта:

    # Основные настройки
    DEBUG=False
    SECRET_KEY=your_secure_secret_key
    ALLOWED_HOSTS=localhost,127.0.0.1
    
    # База данных
    DATABASE_URL=postgresql://flowcraft:your_secure_password@localhost:5432/flowcraft
    
    # Redis
    REDIS_URL=redis://localhost:6379/0
    
    # Настройки электронной почты
    EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
    EMAIL_HOST=smtp.example.com
    EMAIL_PORT=587
    EMAIL_USE_TLS=True
    EMAIL_HOST_USER=your_email@example.com
    EMAIL_HOST_PASSWORD=your_email_password
    DEFAULT_FROM_EMAIL=FlowCraft <noreply@example.com>
    
    # Настройки безопасности
    SECURE_SSL_REDIRECT=False
    SESSION_COOKIE_SECURE=False
    CSRF_COOKIE_SECURE=False
  6. Применение миграций базы данных

    bash
    python manage.py migrate
  7. Создание суперпользователя

    bash
    python manage.py createsuperuser
  8. Сбор статических файлов

    bash
    python manage.py collectstatic --noinput

Запуск FlowCraft

  1. Запуск веб-сервера

    bash
    gunicorn flowcraft.wsgi:application --bind 0.0.0.0:8000 --workers 4
  2. Запуск Celery для фоновых задач

    bash
    celery -A flowcraft worker --loglevel=info
  3. Запуск Celery Beat для периодических задач

    bash
    celery -A flowcraft beat --loglevel=info

Настройка Nginx (опционально)

Для production-окружения рекомендуется использовать Nginx в качестве обратного прокси-сервера.

  1. Установка Nginx

    bash
    sudo apt install -y nginx  # Для Ubuntu/Debian
  2. Настройка Nginx

    Создайте файл конфигурации /etc/nginx/sites-available/flowcraft:

    nginx
    server {
        listen 80;
        server_name your_domain.com;
    
        location /static/ {
            alias /path/to/flowcraft/static/;
        }
    
        location /media/ {
            alias /path/to/flowcraft/media/;
        }
    
        location / {
            proxy_pass http://127.0.0.1:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
  3. Активация конфигурации

    bash
    sudo ln -s /etc/nginx/sites-available/flowcraft /etc/nginx/sites-enabled/
    sudo nginx -t  # Проверка конфигурации
    sudo systemctl restart nginx
  4. Настройка SSL с Let's Encrypt (рекомендуется)

    bash
    sudo apt install -y certbot python3-certbot-nginx
    sudo certbot --nginx -d your_domain.com

Настройка системных служб

Для автоматического запуска FlowCraft при загрузке системы рекомендуется настроить системные службы.

  1. Создание службы для веб-сервера

    Создайте файл /etc/systemd/system/flowcraft-web.service:

    ini
    [Unit]
    Description=FlowCraft Web Server
    After=network.target postgresql.service redis.service
    
    [Service]
    User=your_user
    Group=your_group
    WorkingDirectory=/path/to/flowcraft
    ExecStart=/path/to/flowcraft/venv/bin/gunicorn flowcraft.wsgi:application --bind 0.0.0.0:8000 --workers 4
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
  2. Создание службы для Celery Worker

    Создайте файл /etc/systemd/system/flowcraft-worker.service:

    ini
    [Unit]
    Description=FlowCraft Celery Worker
    After=network.target postgresql.service redis.service
    
    [Service]
    User=your_user
    Group=your_group
    WorkingDirectory=/path/to/flowcraft
    ExecStart=/path/to/flowcraft/venv/bin/celery -A flowcraft worker --loglevel=info
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
  3. Создание службы для Celery Beat

    Создайте файл /etc/systemd/system/flowcraft-beat.service:

    ini
    [Unit]
    Description=FlowCraft Celery Beat
    After=network.target postgresql.service redis.service
    
    [Service]
    User=your_user
    Group=your_group
    WorkingDirectory=/path/to/flowcraft
    ExecStart=/path/to/flowcraft/venv/bin/celery -A flowcraft beat --loglevel=info
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
  4. Активация и запуск служб

    bash
    sudo systemctl daemon-reload
    sudo systemctl enable flowcraft-web flowcraft-worker flowcraft-beat
    sudo systemctl start flowcraft-web flowcraft-worker flowcraft-beat

Развертывание с использованием Docker

Предварительные требования

  • Docker 20.10+
  • Docker Compose 2.0+

Установка Docker и Docker Compose

  1. Установка Docker

    Для Ubuntu/Debian:

    bash
    sudo apt update
    sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    sudo apt update
    sudo apt install -y docker-ce
    sudo usermod -aG docker $USER

    Для macOS и Windows скачайте Docker Desktop с официального сайта.

  2. Установка Docker Compose

    bash
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose

Развертывание FlowCraft

  1. Клонирование репозитория

    bash
    git clone https://github.com/your-organization/flowcraft.git
    cd flowcraft
  2. Настройка переменных окружения

    Создайте файл .env в корневой директории проекта:

    # Основные настройки
    DEBUG=False
    SECRET_KEY=your_secure_secret_key
    ALLOWED_HOSTS=localhost,127.0.0.1
    
    # База данных
    POSTGRES_DB=flowcraft
    POSTGRES_USER=flowcraft
    POSTGRES_PASSWORD=your_secure_password
    DATABASE_URL=postgresql://flowcraft:your_secure_password@db:5432/flowcraft
    
    # Redis
    REDIS_URL=redis://redis:6379/0
    
    # Настройки электронной почты
    EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
    EMAIL_HOST=smtp.example.com
    EMAIL_PORT=587
    EMAIL_USE_TLS=True
    EMAIL_HOST_USER=your_email@example.com
    EMAIL_HOST_PASSWORD=your_email_password
    DEFAULT_FROM_EMAIL=FlowCraft <noreply@example.com>
    
    # Настройки безопасности
    SECURE_SSL_REDIRECT=False
    SESSION_COOKIE_SECURE=False
    CSRF_COOKIE_SECURE=False
  3. Запуск с Docker Compose

    bash
    docker-compose up -d

    Это запустит следующие контейнеры:

    • PostgreSQL
    • Redis
    • FlowCraft Web
    • FlowCraft Worker
    • FlowCraft Beat
    • Nginx
  4. Создание суперпользователя

    bash
    docker-compose exec web python manage.py createsuperuser
  5. Проверка работоспособности

    Откройте в браузере http://localhost или http://your_server_ip.

Обновление FlowCraft

  1. Получение последних изменений

    bash
    git pull
  2. Перезапуск контейнеров

    bash
    docker-compose down
    docker-compose up -d

Резервное копирование

  1. Резервное копирование базы данных

    bash
    docker-compose exec db pg_dump -U flowcraft flowcraft > backup_$(date +%Y%m%d).sql
  2. Резервное копирование файлов

    bash
    docker-compose exec web tar -czf /tmp/media_backup_$(date +%Y%m%d).tar.gz /app/media
    docker cp $(docker-compose ps -q web):/tmp/media_backup_$(date +%Y%m%d).tar.gz .

Развертывание в Kubernetes

Предварительные требования

  • Кластер Kubernetes 1.19+
  • kubectl
  • Helm 3+

Подготовка кластера

  1. Установка Helm

    bash
    curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
  2. Добавление репозитория FlowCraft

    bash
    helm repo add flowcraft https://charts.flowcraft.io
    helm repo update

Установка FlowCraft с помощью Helm

  1. Создание файла values.yaml

    Создайте файл values.yaml с настройками:

    yaml
    global:
      environment: production
      domain: flowcraft.example.com
    
    postgresql:
      enabled: true
      postgresqlUsername: flowcraft
      postgresqlPassword: your_secure_password
      postgresqlDatabase: flowcraft
      persistence:
        enabled: true
        size: 10Gi
    
    redis:
      enabled: true
      password: your_secure_redis_password
      persistence:
        enabled: true
        size: 5Gi
    
    web:
      replicaCount: 2
      resources:
        requests:
          cpu: 500m
          memory: 512Mi
        limits:
          cpu: 1000m
          memory: 1Gi
      env:
        SECRET_KEY: your_secure_secret_key
        EMAIL_HOST: smtp.example.com
        EMAIL_PORT: "587"
        EMAIL_USE_TLS: "True"
        EMAIL_HOST_USER: your_email@example.com
        EMAIL_HOST_PASSWORD: your_email_password
        DEFAULT_FROM_EMAIL: FlowCraft <noreply@example.com>
    
    worker:
      replicaCount: 2
      resources:
        requests:
          cpu: 500m
          memory: 512Mi
        limits:
          cpu: 1000m
          memory: 1Gi
    
    beat:
      resources:
        requests:
          cpu: 100m
          memory: 256Mi
        limits:
          cpu: 200m
          memory: 512Mi
    
    ingress:
      enabled: true
      annotations:
        kubernetes.io/ingress.class: nginx
        cert-manager.io/cluster-issuer: letsencrypt-prod
      hosts:
        - host: flowcraft.example.com
          paths:
            - path: /
              pathType: Prefix
      tls:
        - secretName: flowcraft-tls
          hosts:
            - flowcraft.example.com
    
    persistence:
      enabled: true
      size: 10Gi
    
    backup:
      enabled: true
      schedule: "0 2 * * *"
      retention: 7
  2. Установка FlowCraft

    bash
    helm install flowcraft flowcraft/flowcraft -f values.yaml
  3. Проверка установки

    bash
    kubectl get pods
    kubectl get services
    kubectl get ingress

Обновление FlowCraft

bash
helm repo update
helm upgrade flowcraft flowcraft/flowcraft -f values.yaml

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

bash
# Масштабирование веб-серверов
kubectl scale deployment flowcraft-web --replicas=4

# Масштабирование воркеров
kubectl scale deployment flowcraft-worker --replicas=4

Мониторинг

Для мониторинга FlowCraft в Kubernetes рекомендуется использовать Prometheus и Grafana.

  1. Установка Prometheus и Grafana

    bash
    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update
    helm install prometheus prometheus-community/kube-prometheus-stack
  2. Настройка мониторинга FlowCraft

    Создайте файл servicemonitor.yaml:

    yaml
    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      name: flowcraft
      namespace: default
    spec:
      selector:
        matchLabels:
          app.kubernetes.io/name: flowcraft
      endpoints:
      - port: http
        interval: 30s
        path: /metrics

    Примените конфигурацию:

    bash
    kubectl apply -f servicemonitor.yaml

Развертывание в облачных провайдерах

Amazon Web Services (AWS)

Развертывание с использованием Elastic Beanstalk

  1. Подготовка приложения

    Создайте файл Procfile в корневой директории проекта:

    web: gunicorn flowcraft.wsgi:application --bind 0.0.0.0:8000 --workers 4
    worker: celery -A flowcraft worker --loglevel=info
    beat: celery -A flowcraft beat --loglevel=info

    Создайте файл .ebextensions/01_packages.config:

    yaml
    packages:
      yum:
        postgresql-devel: []
        python3-devel: []
        gcc: []

    Создайте файл .ebextensions/02_python.config:

    yaml
    container_commands:
      01_migrate:
        command: "source /var/app/venv/*/bin/activate && python manage.py migrate --noinput"
        leader_only: true
      02_collectstatic:
        command: "source /var/app/venv/*/bin/activate && python manage.py collectstatic --noinput"
        leader_only: true
  2. Создание окружения Elastic Beanstalk

    bash
    pip install awsebcli
    eb init -p python-3.8 flowcraft
    eb create flowcraft-production
  3. Настройка переменных окружения

    bash
    eb setenv \
      SECRET_KEY=your_secure_secret_key \
      DATABASE_URL=postgresql://user:password@your-rds-instance.amazonaws.com:5432/flowcraft \
      REDIS_URL=redis://your-elasticache-instance.amazonaws.com:6379/0 \
      EMAIL_HOST=smtp.example.com \
      EMAIL_PORT=587 \
      EMAIL_USE_TLS=True \
      EMAIL_HOST_USER=your_email@example.com \
      EMAIL_HOST_PASSWORD=your_email_password \
      DEFAULT_FROM_EMAIL=FlowCraft <noreply@example.com>
  4. Развертывание приложения

    bash
    eb deploy

Развертывание с использованием ECS

  1. Создание ECR репозитория

    bash
    aws ecr create-repository --repository-name flowcraft
  2. Сборка и отправка Docker образа

    bash
    aws ecr get-login-password --region your-region | docker login --username AWS --password-stdin your-account-id.dkr.ecr.your-region.amazonaws.com
    docker build -t your-account-id.dkr.ecr.your-region.amazonaws.com/flowcraft:latest .
    docker push your-account-id.dkr.ecr.your-region.amazonaws.com/flowcraft:latest
  3. Создание кластера ECS

    Используйте AWS Management Console или AWS CLI для создания кластера ECS, определения задач и сервисов.

Google Cloud Platform (GCP)

Развертывание с использованием Google Kubernetes Engine (GKE)

  1. Создание кластера GKE

    bash
    gcloud container clusters create flowcraft-cluster --num-nodes=3 --zone=us-central1-a
  2. Настройка kubectl

    bash
    gcloud container clusters get-credentials flowcraft-cluster --zone=us-central1-a
  3. Развертывание FlowCraft с помощью Helm

    Следуйте инструкциям из раздела "Развертывание в Kubernetes".

Развертывание с использованием Cloud Run

  1. Сборка Docker образа

    bash
    gcloud builds submit --tag gcr.io/your-project-id/flowcraft
  2. Развертывание на Cloud Run

    bash
    gcloud run deploy flowcraft --image gcr.io/your-project-id/flowcraft --platform managed --region us-central1 --allow-unauthenticated

Microsoft Azure

Развертывание с использованием Azure Kubernetes Service (AKS)

  1. Создание кластера AKS

    bash
    az aks create --resource-group your-resource-group --name flowcraft-cluster --node-count 3 --enable-addons monitoring --generate-ssh-keys
  2. Настройка kubectl

    bash
    az aks get-credentials --resource-group your-resource-group --name flowcraft-cluster
  3. Развертывание FlowCraft с помощью Helm

    Следуйте инструкциям из раздела "Развертывание в Kubernetes".

Развертывание с использованием Azure App Service

  1. Создание App Service

    bash
    az webapp up --sku B2 --name flowcraft --resource-group your-resource-group
  2. Настройка переменных окружения

    bash
    az webapp config appsettings set --name flowcraft --resource-group your-resource-group --settings \
      SECRET_KEY=your_secure_secret_key \
      DATABASE_URL=postgresql://user:password@your-azure-db.postgres.database.azure.com:5432/flowcraft \
      REDIS_URL=redis://your-azure-redis.redis.cache.windows.net:6380,password=your_password,ssl=True,abortConnect=False \
      EMAIL_HOST=smtp.example.com \
      EMAIL_PORT=587 \
      EMAIL_USE_TLS=True \
      EMAIL_HOST_USER=your_email@example.com \
      EMAIL_HOST_PASSWORD=your_email_password \
      DEFAULT_FROM_EMAIL=FlowCraft <noreply@example.com>

FlowCraft Cloud

FlowCraft Cloud - это полностью управляемый сервис, который позволяет использовать FlowCraft без необходимости установки и обслуживания инфраструктуры.

Регистрация и создание аккаунта

  1. Перейдите на cloud.flowcraft.io
  2. Нажмите "Зарегистрироваться" и заполните форму регистрации
  3. Подтвердите свой email
  4. Войдите в систему

Создание рабочего пространства

  1. После входа в систему нажмите "Создать рабочее пространство"
  2. Введите название рабочего пространства и выберите тарифный план
  3. Настройте параметры рабочего пространства
  4. Нажмите "Создать"

Приглашение пользователей

  1. В панели управления рабочим пространством перейдите в раздел "Пользователи"
  2. Нажмите "Пригласить пользователя"
  3. Введите email пользователя и выберите роль
  4. Нажмите "Отправить приглашение"

Управление подпиской

  1. В панели управления рабочим пространством перейдите в раздел "Биллинг"
  2. Просмотрите текущий тарифный план и использование ресурсов
  3. При необходимости измените тарифный план или обновите платежную информацию

Обновление FlowCraft

Обновление локальной установки

  1. Резервное копирование

    bash
    pg_dump -U flowcraft flowcraft > backup_$(date +%Y%m%d).sql
    tar -czf media_backup_$(date +%Y%m%d).tar.gz /path/to/flowcraft/media
  2. Получение последних изменений

    bash
    cd /path/to/flowcraft
    git pull
  3. Обновление зависимостей

    bash
    source venv/bin/activate
    pip install -r requirements.txt
    cd frontend
    npm install
    npm run build
    cd ..
  4. Применение миграций

    bash
    python manage.py migrate
  5. Сбор статических файлов

    bash
    python manage.py collectstatic --noinput
  6. Перезапуск служб

    bash
    sudo systemctl restart flowcraft-web flowcraft-worker flowcraft-beat

Обновление Docker-установки

  1. Резервное копирование

    bash
    docker-compose exec db pg_dump -U flowcraft flowcraft > backup_$(date +%Y%m%d).sql
    docker-compose exec web tar -czf /tmp/media_backup_$(date +%Y%m%d).tar.gz /app/media
    docker cp $(docker-compose ps -q web):/tmp/media_backup_$(date +%Y%m%d).tar.gz .
  2. Получение последних изменений

    bash
    cd /path/to/flowcraft
    git pull
  3. Перезапуск контейнеров

    bash
    docker-compose down
    docker-compose up -d

Обновление Kubernetes-установки

  1. Обновление Helm-чарта

    bash
    helm repo update
    helm upgrade flowcraft flowcraft/flowcraft -f values.yaml

Мониторинг и обслуживание

Мониторинг

FlowCraft предоставляет API для мониторинга состояния системы. Вы можете использовать различные инструменты для мониторинга:

  1. Prometheus и Grafana

    FlowCraft экспортирует метрики в формате Prometheus по адресу /metrics. Вы можете настроить Prometheus для сбора этих метрик и визуализировать их в Grafana.

  2. ELK Stack

    Для централизованного сбора и анализа логов рекомендуется использовать ELK Stack (Elasticsearch, Logstash, Kibana).

  3. Встроенный мониторинг

    FlowCraft имеет встроенную панель мониторинга, доступную по адресу /admin/monitoring/.

Резервное копирование и восстановление

Резервное копирование

  1. База данных

    bash
    # Локальная установка
    pg_dump -U flowcraft flowcraft > backup_$(date +%Y%m%d).sql
    
    # Docker
    docker-compose exec db pg_dump -U flowcraft flowcraft > backup_$(date +%Y%m%d).sql
    
    # Kubernetes
    kubectl exec -it $(kubectl get pods -l app=postgresql -o jsonpath="{.items[0].metadata.name}") -- pg_dump -U flowcraft flowcraft > backup_$(date +%Y%m%d).sql
  2. Файлы

    bash
    # Локальная установка
    tar -czf media_backup_$(date +%Y%m%d).tar.gz /path/to/flowcraft/media
    
    # Docker
    docker-compose exec web tar -czf /tmp/media_backup_$(date +%Y%m%d).tar.gz /app/media
    docker cp $(docker-compose ps -q web):/tmp/media_backup_$(date +%Y%m%d).tar.gz .
    
    # Kubernetes
    kubectl exec -it $(kubectl get pods -l app=flowcraft-web -o jsonpath="{.items[0].metadata.name}") -- tar -czf /tmp/media_backup_$(date +%Y%m%d).tar.gz /app/media
    kubectl cp $(kubectl get pods -l app=flowcraft-web -o jsonpath="{.items[0].metadata.name}"):/tmp/media_backup_$(date +%Y%m%d).tar.gz .

Восстановление

  1. База данных

    bash
    # Локальная установка
    psql -U flowcraft flowcraft < backup_20250424.sql
    
    # Docker
    cat backup_20250424.sql | docker-compose exec -T db psql -U flowcraft flowcraft
    
    # Kubernetes
    cat backup_20250424.sql | kubectl exec -i $(kubectl get pods -l app=postgresql -o jsonpath="{.items[0].metadata.name}") -- psql -U flowcraft flowcraft
  2. Файлы

    bash
    # Локальная установка
    tar -xzf media_backup_20250424.tar.gz -C /path/to/flowcraft/
    
    # Docker
    docker cp media_backup_20250424.tar.gz $(docker-compose ps -q web):/tmp/
    docker-compose exec web tar -xzf /tmp/media_backup_20250424.tar.gz -C /app/
    
    # Kubernetes
    kubectl cp media_backup_20250424.tar.gz $(kubectl get pods -l app=flowcraft-web -o jsonpath="{.items[0].metadata.name}"):/tmp/
    kubectl exec -it $(kubectl get pods -l app=flowcraft-web -o jsonpath="{.items[0].metadata.name}") -- tar -xzf /tmp/media_backup_20250424.tar.gz -C /app/

Оптимизация производительности

  1. Оптимизация базы данных

    bash
    # Локальная установка
    psql -U flowcraft flowcraft -c "VACUUM ANALYZE;"
    
    # Docker
    docker-compose exec db psql -U flowcraft flowcraft -c "VACUUM ANALYZE;"
    
    # Kubernetes
    kubectl exec -it $(kubectl get pods -l app=postgresql -o jsonpath="{.items[0].metadata.name}") -- psql -U flowcraft flowcraft -c "VACUUM ANALYZE;"
  2. Настройка кэширования

    Для улучшения производительности рекомендуется настроить кэширование:

    python
    # settings.py
    CACHES = {
        'default': {
            'BACKEND': 'django_redis.cache.RedisCache',
            'LOCATION': os.environ.get('REDIS_URL', 'redis://localhost:6379/1'),
            'OPTIONS': {
                'CLIENT_CLASS': 'django_redis.client.DefaultClient',
            }
        }
    }
  3. Масштабирование

    В зависимости от нагрузки, вы можете масштабировать различные компоненты FlowCraft:

    • Увеличение количества воркеров Gunicorn
    • Увеличение количества воркеров Celery
    • Горизонтальное масштабирование (добавление новых серверов)
    • Вертикальное масштабирование (увеличение ресурсов существующих серверов)

Устранение неполадок

Общие проблемы и их решения

  1. Проблемы с подключением к базе данных

    Симптомы: Ошибки подключения к базе данных, сообщения об ошибках в логах.

    Решение:

    • Проверьте настройки подключения к базе данных
    • Убедитесь, что база данных запущена и доступна
    • Проверьте права доступа пользователя базы данных
  2. Проблемы с Redis

    Симптомы: Ошибки подключения к Redis, проблемы с выполнением фоновых задач.

    Решение:

    • Проверьте настройки подключения к Redis
    • Убедитесь, что Redis запущен и доступен
    • Проверьте использование памяти Redis
  3. Проблемы с выполнением задач Celery

    Симптомы: Задачи не выполняются, зависают или выполняются с ошибками.

    Решение:

    • Проверьте логи Celery
    • Убедитесь, что воркеры Celery запущены
    • Проверьте подключение к брокеру сообщений (Redis)
  4. Проблемы с доступом к веб-интерфейсу

    Симптомы: Веб-интерфейс недоступен или работает некорректно.

    Решение:

    • Проверьте логи веб-сервера
    • Убедитесь, что веб-сервер запущен и доступен
    • Проверьте настройки Nginx или другого прокси-сервера

Логи и их анализ

  1. Логи веб-сервера

    bash
    # Локальная установка
    tail -f /path/to/flowcraft/logs/web.log
    
    # Docker
    docker-compose logs -f web
    
    # Kubernetes
    kubectl logs -f $(kubectl get pods -l app=flowcraft-web -o jsonpath="{.items[0].metadata.name}")
  2. Логи Celery

    bash
    # Локальная установка
    tail -f /path/to/flowcraft/logs/celery.log
    
    # Docker
    docker-compose logs -f worker
    
    # Kubernetes
    kubectl logs -f $(kubectl get pods -l app=flowcraft-worker -o jsonpath="{.items[0].metadata.name}")
  3. Логи базы данных

    bash
    # Локальная установка
    tail -f /var/log/postgresql/postgresql-13-main.log
    
    # Docker
    docker-compose logs -f db
    
    # Kubernetes
    kubectl logs -f $(kubectl get pods -l app=postgresql -o jsonpath="{.items[0].metadata.name}")

Диагностические инструменты

  1. Проверка состояния системы

    bash
    # Локальная установка
    curl http://localhost:8000/api/v1/system/status
    
    # Docker
    curl http://localhost/api/v1/system/status
    
    # Kubernetes
    kubectl port-forward svc/flowcraft-web 8000:80
    curl http://localhost:8000/api/v1/system/status
  2. Проверка подключения к базе данных

    bash
    # Локальная установка
    psql -U flowcraft -h localhost -d flowcraft -c "SELECT 1;"
    
    # Docker
    docker-compose exec db psql -U flowcraft -d flowcraft -c "SELECT 1;"
    
    # Kubernetes
    kubectl exec -it $(kubectl get pods -l app=postgresql -o jsonpath="{.items[0].metadata.name}") -- psql -U flowcraft -d flowcraft -c "SELECT 1;"
  3. Проверка подключения к Redis

    bash
    # Локальная установка
    redis-cli ping
    
    # Docker
    docker-compose exec redis redis-cli ping
    
    # Kubernetes
    kubectl exec -it $(kubectl get pods -l app=redis -o jsonpath="{.items[0].metadata.name}") -- redis-cli ping

Заключение

В этом документе были описаны различные способы развертывания платформы FlowCraft в различных средах. Выбор конкретного способа зависит от ваших потребностей, имеющихся ресурсов и опыта.

Для небольших команд и тестирования рекомендуется использовать локальную установку или Docker. Для production-окружений с высокой нагрузкой рекомендуется использовать Kubernetes или облачные провайдеры.

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

Выпущено под лицензией MIT.