uploader-bot/docs/CONSOLIDATED_MIGRATION_STRA...

46 KiB
Raw Blame History

Консолидированная стратегия миграции Sanic → FastAPI

MY Network v3.0 + web2-client совместимость

Дата создания: 2025-01-27
Версия: 1.0
Статус: ГОТОВ К ИСПОЛНЕНИЮ


🎯 Исполнительное резюме

Стратегический приоритет

Миграция с Sanic на FastAPI является КРИТИЧЕСКИ ВАЖНОЙ для:

  1. Стабильности MY Network v3.0 - предотвращение split сети
  2. Совместимости с web2-client - сохранение пользовательского опыта
  3. Производительности системы - улучшение на 30-40%
  4. Масштабируемости - подготовка к росту нагрузки

Текущее состояние

  • Гибридная архитектура уже работает
  • 85% готовности к полной миграции
  • ⚠️ Критические риски для децентрализованной сети
  • Отсутствие конфликтов зависимостей

Целевой результат

Полностью функциональная FastAPI система с:

  • 🌐 Полной поддержкой MY Network v3.0 децентрализации
  • 📱 100% совместимостью с web2-client
  • 🔒 Сохранением всех security компонентов
  • 📈 Улучшенной производительностью

📊 Синтез всех проведенных анализов

1. Критические зависимости между компонентами

graph TB
    subgraph "LAYER 1: Криптографический фундамент"
        ED25519[Ed25519 подписи]
        HASH[Детерминированные хэши]
        CRYPTO[CryptographicMiddleware]
    end
    
    subgraph "LAYER 2: Сетевые протоколы"
        HANDSHAKE[Межузловой handshake]
        SYNC[Content sync БЕЗ консенсуса]
        DISCOVERY[Node discovery]
    end
    
    subgraph "LAYER 3: API endpoints"
        AUTH[Аутентификация /auth.twa]
        CONTENT[Контент /content.view]
        BLOCKCHAIN[Блокчейн /blockchain.*]
        UPLOAD[File upload chunked]
    end
    
    subgraph "LAYER 4: Client compatibility"
        WEB2[web2-client React]
        TON[TON Connect UI]
        TWA[Telegram WebApp]
    end
    
    ED25519 --> HANDSHAKE
    HASH --> SYNC
    CRYPTO --> AUTH
    HANDSHAKE --> CONTENT
    SYNC --> BLOCKCHAIN
    AUTH --> WEB2
    CONTENT --> TON
    BLOCKCHAIN --> TWA

2. Интеграция требований из всех анализов

Компонент SANIC Plan Decentralization web2-client Приоритет
Ed25519 подписи Адаптация middleware КРИТИЧНО для сети Не требуется 🔥 TIER 1
Auth система 2 дня миграции Средний приоритет КРИТИЧНО 🔥 TIER 1
Content API 3 дня миграции Высокий приоритет КРИТИЧНО 🔥 TIER 1
File uploads Chunked uploads Децентр. storage КРИТИЧНО 🔥 TIER 1
Blockchain API 2 дня миграции Средний приоритет КРИТИЧНО 🔥 TIER 1
MY Network API 3 дня миграции КРИТИЧНО для сети Не используется ⚠️ TIER 2
Monitoring HTML templates Диагностика сети Не используется 📊 TIER 3
Health checks K8s ready/live Мониторинг нод Не используется 📊 TIER 3

3. Выявленные критические точки отказа

🚨 RED ALERT зоны:

  1. Ed25519 middleware compatibility - может сломать всю сеть
  2. Детерминированные хэши - risk of network split
  3. TON proof validation - может сломать аутентификацию
  4. Chunked upload headers - может сломать загрузку файлов

⚠️ HIGH RISK зоны:

  1. Rate limiting конфигурация
  2. CORS headers для межузлового общения
  3. JWT token handling для web2-client
  4. WebSocket connections (если используются)

🎯 Приоритизация эндпоинтов по критичности

TIER 1: Критически важные для web2-client (Немедленная миграция)

Аутентификация и безопасность:

POST /auth.twa                    # TON Connect + Telegram auth
POST /auth.selectWallet          # Выбор кошелька  
GET  /auth/me                     # Текущий пользователь
POST /auth/refresh               # Обновление токенов

Контент и загрузка:

POST /content.view/{id}          # Просмотр контента
POST /blockchain.sendNewContentMessage      # Создание контента
POST /blockchain.sendPurchaseContentMessage # Покупка контента
POST {STORAGE_URL}/upload        # Chunked file upload

Критерии успеха: 100% совместимость с существующим web2-client без изменений

TIER 2: Критически важные для MY Network v3.0 (Следующий приоритет)

Межузловое общение:

POST /api/node/handshake         # Ed25519 подписи
POST /api/node/content/sync      # Синхронизация БЕЗ консенсуса
POST /api/node/network/ping      # Проверка доступности
POST /api/node/network/discover  # Обнаружение нод
GET  /api/node/network/status    # Статус ноды

API v3.0 децентрализации:

POST /api/v3/sync/announce       # Анонс контента в сеть
GET  /api/v3/sync/pending        # Ожидающие синхронизации
POST /api/v3/sync/accept/{hash}  # Принять контент
GET  /api/v3/node/status         # Статус ноды v3.0
GET  /api/v3/network/stats       # Статистика сети

Критерии успеха: Отсутствие network split, корректная работа децентрализации

TIER 3: Важные системные функции (Последний этап)

Системные эндпоинты:

GET  /health                     # Kubernetes health
GET  /health/detailed            # Детальная диагностика
GET  /metrics                    # Prometheus метрики
GET  /api/my/monitor             # MY Network мониторинг

Блокчейн операции:

GET  /api/v1/blockchain/wallet/balance    # Баланс кошелька
GET  /api/v1/blockchain/wallet/transactions # История транзакций
POST /api/v1/blockchain/transaction/send   # Отправка транзакций

Критерии успеха: Полная функциональность мониторинга и диагностики

TIER 4: Вспомогательные функции (При наличии времени)

Дополнительная функциональность:

GET  /api/v1/storage/quota       # Квоты хранилища
GET  /api/v1/storage/stats       # Статистика хранилища
POST /api/v1/storage/cleanup     # Очистка (админ)
GET  /debug/info                 # Debug информация

📅 Детальный timeline миграции с контрольными точками

🚀 Фаза 0: Подготовка (1 день)

Ответственные: architect + debug modes

День 1: Валидация совместимости

  • 09:00-12:00 Тестирование Ed25519 совместимости Sanic ↔ FastAPI
  • 12:00-15:00 Проверка детерминированных хэшей
  • 15:00-18:00 Валидация TON proof между системами

Checkpoint 0.1: Криптографическая совместимость подтверждена

Критерии перехода к Фазе 1:

  • Ed25519 подписи идентичны в Sanic и FastAPI
  • SHA-256 хэши контента одинаковые
  • TON proof validation работает корректно

Rollback план: Остановка миграции, углубленный анализ несовместимости


🔥 Фаза 1: TIER 1 - Критически важные для web2-client (3 дня)

Ответственные: code + debug modes

День 2: Аутентификация

  • 09:00-12:00 Миграция /auth.twa с TON proof поддержкой
  • 12:00-15:00 Миграция /auth.selectWallet
  • 15:00-18:00 Тестирование с реальным web2-client

Checkpoint 1.1: Аутентификация работает с web2-client

День 3: Контент и блокчейн

  • 09:00-12:00 Миграция /content.view/{id}
  • 12:00-15:00 Миграция /blockchain.sendNewContentMessage
  • 15:00-18:00 Миграция /blockchain.sendPurchaseContentMessage

Checkpoint 1.2: Основные функции создания/покупки контента работают

День 4: File uploads

  • 09:00-12:00 Миграция chunked upload системы
  • 12:00-15:00 Тестирование специальных заголовков
  • 15:00-18:00 Integration testing с web2-client

Checkpoint 1.3: Загрузка файлов работает полностью

Критерии перехода к Фазе 2:

  • 100% функциональность web2-client сохранена
  • Все TIER 1 эндпоинты отвечают корректно
  • Нет регрессий в производительности

Rollback план: Переключение main.py обратно на Sanic режим


🌐 Фаза 2: TIER 2 - Критически важные для MY Network (3 дня)

Ответственные: code + debug + devops modes

День 5: Межузловое общение

  • 09:00-12:00 Миграция /api/node/handshake с Ed25519
  • 12:00-15:00 Миграция /api/node/content/sync
  • 15:00-18:00 Тестирование между реальными нодами

Checkpoint 2.1: Handshake между нодами работает

День 6: Network discovery и синхронизация

  • 09:00-12:00 Миграция /api/node/network/discover
  • 12:00-15:00 Миграция /api/node/network/ping
  • 15:00-18:00 Миграция /api/node/network/status

Checkpoint 2.2: Обнаружение и мониторинг нод работает

День 7: API v3.0 децентрализации

  • 09:00-12:00 Миграция /api/v3/sync/* endpoints
  • 12:00-15:00 Миграция /api/v3/node/status
  • 15:00-18:00 Полное тестирование децентрализованной сети

Checkpoint 2.3: MY Network v3.0 функционирует без split

Критерии перехода к Фазе 3:

  • Отсутствие network split
  • Корректная синхронизация контента между нодами
  • Stable межузловое общение

Rollback план: Экстренное переключение на Sanic + изоляция проблемных нод


📊 Фаза 3: TIER 3 - Системные функции (2 дня)

Ответственные: devops + debug modes

День 8: Health checks и мониторинг

  • 09:00-12:00 Миграция health endpoints для Kubernetes
  • 12:00-15:00 Миграция Prometheus метрик
  • 15:00-18:00 Настройка мониторинга в production

Checkpoint 3.1: Мониторинг и health checks работают

День 9: MY Network мониторинг

  • 09:00-12:00 Миграция /api/my/monitor dashboard
  • 12:00-15:00 Адаптация HTML templates для FastAPI
  • 15:00-18:00 Тестирование ASCII monitoring

Checkpoint 3.2: MY Network dashboard функционирует

Критерии перехода к Фазе 4:

  • Kubernetes probes работают корректно
  • Prometheus метрики собираются
  • MY Network dashboard доступен

🧹 Фаза 4: Очистка и оптимизация (2 дня)

Ответственные: code + architect modes

День 10: Удаление Sanic кода

  • 09:00-12:00 Удаление Sanic blueprints и routes
  • 12:00-15:00 Удаление Sanic middleware
  • 15:00-18:00 Очистка imports и зависимостей

Checkpoint 4.1: Sanic код полностью удален

День 11: Финальная оптимизация

  • 09:00-12:00 Обновление main.py (только FastAPI)
  • 12:00-15:00 Обновление Docker конфигурации
  • 15:00-18:00 Финальное тестирование всей системы

Checkpoint 4.2: Система работает только на FastAPI

Критерии завершения:

  • Полное удаление Sanic зависимостей
  • Обновленная документация
  • Производительность соответствует ожиданиям

⚠️ Risk Assessment и Mitigation стратегии

🚨 КРИТИЧЕСКИЕ РИСКИ (Уровень: BLOCKER)

Risk 1: Network Split в MY Network v3.0

Вероятность: 25% | Воздействие: КАТАСТРОФИЧЕСКОЕ

Описание: Несовместимость Ed25519 подписей или детерминированных хэшей может привести к разделению сети на изолированные группы нод.

Mitigation:

  • Превентивные меры: Обязательное тестирование совместимости в Фазе 0
  • 🔧 Monitoring: Непрерывный мониторинг network topology в реальном времени
  • 🚨 Detection: Автоматические алерты при обнаружении split
  • 🔄 Rollback: Немедленное переключение на Sanic при обнаружении проблем

Критерии обнаружения:

# Алерт при падении inter-node connections < 80%
inter_node_connections_success_rate < 0.8

# Алерт при росте signature verification failures > 5%
signature_verification_failure_rate > 0.05

# Алерт при обнаружении изолированных node groups
isolated_node_groups_detected == true

Risk 2: web2-client API Breaking Changes

Вероятность: 20% | Воздействие: ВЫСОКОЕ

Описание: Изменения в API response format или behavior могут сломать существующий web2-client.

Mitigation:

  • Contract testing: Автоматические тесты для всех используемых API
  • 🧪 Schema validation: Проверка response schemas соответствуют ожиданиям
  • 📱 Client testing: Запуск web2-client против migrated endpoints
  • 🔄 Gradual rollout: Поэтапное переключение endpoints

Test scenarios:

// Критические тесты для web2-client compatibility
describe('web2-client API compatibility', () => {
  test('auth.twa returns correct token format', async () => {
    const response = await api.post('/auth.twa', payload)
    expect(response.data).toHaveProperty('auth_v1_token')
    expect(response.data).toHaveProperty('connected_wallet')
  })
  
  test('chunked upload headers processed correctly', async () => {
    const response = await api.post('/', chunk, {
      headers: {
        'X-File-Name': btoa(fileName),
        'X-Chunk-Start': '0',
        'X-Last-Chunk': '1'
      }
    })
    expect(response.data).toHaveProperty('content_id_v1')
  })
})

Risk 3: Ed25519 Cryptographic Incompatibility

Вероятность: 15% | Воздействие: КРИТИЧЕСКОЕ

Описание: Различия в cryptographic operations между Sanic и FastAPI могут нарушить межузловое общение.

Mitigation:

  • 🔬 Cross-validation: Тестирование подписей созданных в Sanic против FastAPI
  • 📋 Deterministic testing: Проверка одинаковых результатов на одинаковых входных данных
  • 🔄 Fallback mechanism: Возможность временной работы в legacy режиме
  • 📊 Monitoring: Непрерывный мониторинг signature verification rates

Validation script:

async def test_cross_framework_crypto_compatibility():
    """Тест совместимости криптографии между Sanic и FastAPI"""
    test_message = {"content": "test", "timestamp": 1640995200}
    
    # Создаем подпись в Sanic
    sanic_signature = sanic_ed25519_manager.sign_message(test_message)
    
    # Проверяем в FastAPI
    fastapi_valid = fastapi_ed25519_manager.verify_signature(
        test_message, sanic_signature, public_key
    )
    
    # Создаем подпись в FastAPI  
    fastapi_signature = fastapi_ed25519_manager.sign_message(test_message)
    
    # Проверяем в Sanic
    sanic_valid = sanic_ed25519_manager.verify_signature(
        test_message, fastapi_signature, public_key
    )
    
    assert fastapi_valid and sanic_valid, "Cross-framework crypto incompatibility!"

⚠️ ВЫСОКИЕ РИСКИ (Уровень: HIGH)

Risk 4: Performance Degradation

Вероятность: 30% | Воздействие: СРЕДНЕЕ

Описание: Неоптимальная конфигурация FastAPI может привести к снижению производительности.

Mitigation:

  • 📈 Baseline measurement: Замеры производительности до миграции
  • 🧪 Load testing: Stress testing каждого migrated component
  • Optimization: Тюнинг FastAPI settings (workers, connection pools)
  • 📊 Continuous monitoring: Real-time performance metrics

Performance benchmarks:

# Target performance metrics (должны быть ≥ Sanic baseline)
avg_response_time_ms ≤ sanic_baseline * 1.1
requests_per_second ≥ sanic_baseline * 0.9  
memory_usage_mb ≤ sanic_baseline * 1.2
cpu_usage_percent ≤ sanic_baseline * 1.1

Risk 5: Middleware Configuration Conflicts

Вероятность: 25% | Воздействие: СРЕДНЕЕ

Описание: Неправильный порядок или конфигурация middleware может нарушить security или functionality.

Mitigation:

  • 📋 Middleware mapping: Детальный анализ Sanic → FastAPI middleware
  • 🧪 Unit testing: Изолированное тестирование каждого middleware
  • 🔄 Staged rollout: Поэтапная активация middleware stack
  • 🔍 Monitoring: Отслеживание middleware execution time и errors

📊 СРЕДНИЕ РИСКИ (Уровень: MEDIUM)

Risk 6: Rate Limiting Configuration Issues

Вероятность: 40% | Воздействие: НИЗКОЕ

Описание: Неправильная конфигурация rate limiting может привести к false positives или недостаточной защите.

Mitigation:

  • 🔄 Gradual tuning: Постепенная настройка rate limits
  • 📊 Monitoring: Отслеживание rate limit hits и false positives
  • 🧪 Testing: Load testing для определения оптимальных лимитов
  • 📋 Documentation: Четкая документация по rate limiting rules

Risk 7: CORS and Headers Issues

Вероятность: 35% | Воздействие: НИЗКОЕ

Описание: Неправильная конфигурация CORS может нарушить web2-client или межузловое общение.

Mitigation:

  • 🔍 Header inspection: Анализ всех необходимых headers
  • 🧪 Browser testing: Тестирование в различных browsers
  • 📋 Documentation: Четкая документация CORS policy
  • 🔄 Iterative fixing: Поэтапное решение CORS issues

🧪 Тестовая стратегия для каждого этапа

🔬 Фаза 0: Валидационное тестирование

Криптографические тесты:

# tests/test_crypto_compatibility.py
class TestCryptoCompatibility:
    def test_ed25519_cross_framework(self):
        """Ed25519 подписи должны быть совместимы между Sanic и FastAPI"""
        
    def test_deterministic_hashes(self):
        """SHA-256 хэши должны быть идентичными"""
        
    def test_node_id_generation(self):
        """NODE_ID должен генерироваться одинаково"""

TON proof валидация:

# tests/test_ton_proof.py  
class TestTonProofCompatibility:
    def test_ton_proof_validation_sanic_vs_fastapi(self):
        """TON proof должен валидироваться одинаково"""
        
    def test_ton_connect_integration(self):
        """Интеграция с TON Connect UI должна работать"""

🔥 Фаза 1: web2-client Compatibility тесты

API Contract тесты:

# tests/test_web2_client_api.py
class TestWeb2ClientAPI:
    def test_auth_twa_endpoint(self):
        """POST /auth.twa должен возвращать корректный формат"""
        
    def test_content_view_endpoint(self):
        """GET /content.view/{id} должен работать с web2-client"""
        
    def test_blockchain_endpoints(self):
        """Blockchain API должен быть совместим"""
        
    def test_chunked_upload_headers(self):
        """Chunked upload должен обрабатывать специальные заголовки"""

End-to-End тесты:

// e2e/web2-client-integration.spec.ts
describe('web2-client Integration', () => {
  test('full user authentication flow', async () => {
    // Тест полного flow аутентификации
  })
  
  test('content creation and purchase flow', async () => {
    // Тест создания и покупки контента
  })
  
  test('file upload and processing', async () => {
    // Тест загрузки файлов
  })
})

🌐 Фаза 2: MY Network Decentralization тесты

Межузловые тесты:

# tests/test_internode_communication.py
class TestInternodeCommunication:
    def test_handshake_between_nodes(self):
        """Handshake между нодами должен работать"""
        
    def test_content_sync_without_consensus(self):
        """Синхронизация контента БЕЗ консенсуса"""
        
    def test_network_discovery(self):
        """Обнаружение нод в сети"""
        
    def test_signature_verification_rates(self):
        """Проверка процента успешных верификаций подписей"""

Network Stability тесты:

# tests/test_network_stability.py
class TestNetworkStability:
    def test_no_network_split(self):
        """Отсутствие split сети"""
        
    def test_individual_node_decisions(self):
        """Индивидуальные решения нод работают"""
        
    def test_fallback_mechanisms(self):
        """Fallback механизмы при недоступности нод"""

📊 Фаза 3: System функциональность тесты

Health и мониторинг:

# tests/test_system_health.py
class TestSystemHealth:
    def test_kubernetes_health_endpoints(self):
        """Health endpoints для K8s"""
        
    def test_prometheus_metrics(self):
        """Prometheus метрики собираются"""
        
    def test_my_network_dashboard(self):
        """MY Network dashboard работает"""

🧹 Фаза 4: Финальные тесты

Performance тесты:

# tests/test_performance.py
class TestPerformance:
    def test_response_times_vs_sanic(self):
        """Response times не хуже чем у Sanic"""
        
    def test_throughput_under_load(self):
        """Throughput под нагрузкой"""
        
    def test_memory_and_cpu_usage(self):
        """Потребление ресурсов"""

Load testing стратегия:

# Нагрузочное тестирование с постепенным увеличением
artillery run load-test-auth.yml      # Аутентификация
artillery run load-test-content.yml   # Контент API  
artillery run load-test-internode.yml # Межузловое общение
artillery run load-test-full.yml      # Полная нагрузка

🚨 Continuous Testing во время миграции

Smoke тесты (каждые 15 минут):

#!/bin/bash
# smoke_test.sh - быстрые тесты критической функциональности

# Проверка аутентификации
curl -X POST /auth.twa -d "$test_payload" | jq '.auth_v1_token'

# Проверка межузлового общения
curl -X POST /api/node/handshake -H "X-Node-Signature: $signature"

# Проверка создания контента
curl -X POST /blockchain.sendNewContentMessage -H "Authorization: $token"

Regression тесты (каждый час):

# Автоматические regression тесты
pytest tests/critical/ -v --tb=short --maxfail=1

👥 Координация команд и делегирование задач

🏗️ Architect Mode - Планирование и надзор (Весь проект)

Ответственности:

  • 📋 Стратегическое планирование и контроль timeline
  • 🔍 Code review критически важных изменений
  • 📊 Risk assessment и митigation стратегии
  • 📖 Документация архитектурных решений

Задачи по фазам:

  • Фаза 0: Валидация архитектурной совместимости
  • Фаза 1-2: Review критических изменений API
  • Фаза 3-4: Финальная архитектурная валидация

Критерии handoff к другим modes:

  • Архитектурное решение утверждено
  • Risk assessment completed
  • Техническое задание для code mode готово

💻 Code Mode - Реализация миграции (Фаза 1-4)

Ответственности:

  • 🔧 Миграция endpoints с Sanic на FastAPI
  • 🛠️ Адаптация middleware для FastAPI
  • 🧪 Unit тестирование каждого компонента
  • 📝 Code documentation и комментарии

Детальное делегирование:

Фаза 1 (Дни 2-4): TIER 1 эндпоинты

# День 2: Аутентификация
@code_mode_task
def migrate_auth_endpoints():
    """
    Migrate:
    - POST /auth.twa (TON proof validation)
    - POST /auth.selectWallet  
    - GET /auth/me
    - POST /auth/refresh
    """
    
# День 3: Контент и блокчейн  
@code_mode_task
def migrate_content_blockchain():
    """
    Migrate:
    - GET /content.view/{id}
    - POST /blockchain.sendNewContentMessage
    - POST /blockchain.sendPurchaseContentMessage
    """
    
# День 4: File uploads
@code_mode_task  
def migrate_file_uploads():
    """
    Migrate chunked upload system:
    - Handle X-File-Name, X-Chunk-Start headers
    - Support X-Last-Chunk detection
    - Maintain upload_id logic
    """

Фаза 2 (Дни 5-7): TIER 2 эндпоинты

# День 5: Межузловое общение
@code_mode_task
def migrate_internode_communication():
    """
    Migrate node communication with Ed25519:
    - POST /api/node/handshake
    - POST /api/node/content/sync  
    - Verify Ed25519 signatures compatibility
    """
    
# День 6-7: Network discovery и v3.0 API
@code_mode_task
def migrate_network_protocols():
    """
    Migrate MY Network v3.0 protocols:
    - /api/node/network/* endpoints
    - /api/v3/sync/* endpoints  
    - Ensure NO consensus logic
    """

Критерии handoff к debug mode:

  • Код реализован согласно спецификации
  • Unit тесты проходят
  • Code review пройден
  • Integration тесты показывают ошибки

🪲 Debug Mode - Диагностика и исправление (Фаза 0-4)

Ответственности:

  • 🔍 Диагностика проблем совместимости
  • 🧪 Integration testing между компонентами
  • 📊 Performance profiling и оптимизация
  • 🚨 Мониторинг в реальном времени

Специализированные задачи:

Фаза 0: Validation и совместимость

@debug_mode_task
def validate_crypto_compatibility():
    """
    Critical validation:
    - Ed25519 signatures Sanic ↔ FastAPI
    - SHA-256 hash determinism
    - TON proof validation consistency
    """
    
@debug_mode_task  
def setup_monitoring_and_alerting():
    """
    Setup comprehensive monitoring:
    - Network split detection
    - Signature verification rates
    - API response time tracking
    """

Фаза 1-2: Integration debugging

@debug_mode_task
def debug_web2_client_integration():
    """
    Diagnose web2-client issues:
    - API response format validation
    - CORS and headers troubleshooting
    - TON Connect UI integration
    """
    
@debug_mode_task
def debug_internode_communication():
    """
    Diagnose MY Network issues:
    - Ed25519 signature failures
    - Network discovery problems
    - Content sync debugging
    """

Критерии handoff к devops mode:

  • Локальная функциональность работает
  • Integration тесты проходят
  • Performance в пределах нормы
  • Production deployment issues

🚀 DevOps Mode - Deployment и инфраструктура (Фаза 2-4)

Ответственности:

  • 🐳 Docker и Kubernetes конфигурация
  • 📊 Monitoring и alerting setup
  • 🔄 CI/CD pipeline для миграции
  • 🛡️ Production deployment strategy

Специализированные задачи:

Фаза 2: Production готовность

# devops_mode_tasks.yml
production_readiness:
  - task: "Setup Kubernetes health checks"
    endpoints: ["/health", "/health/ready", "/health/live"]
    
  - task: "Configure Prometheus metrics"
    metrics: ["inter_node_connections", "signature_verification_rate"]
    
  - task: "Setup alerting rules"  
    alerts: ["network_split", "crypto_failures", "performance_degradation"]

Фаза 3-4: Infrastructure optimization

#!/bin/bash
# devops_optimization.sh

# Docker optimization
optimize_docker_image() {
    # Multi-stage build optimization
    # Remove Sanic dependencies  
    # Optimize FastAPI configuration
}

# Kubernetes scaling
setup_horizontal_pod_autoscaling() {
    # Based on CPU and memory metrics
    # Custom metrics for inter-node load
}

# Monitoring dashboards
deploy_grafana_dashboards() {
    # MY Network v3.0 specific metrics
    # web2-client API performance
    # Migration progress tracking
}

Критерии успеха:

  • Zero-downtime deployment capability
  • Comprehensive monitoring active
  • Alerting rules validated
  • Rollback procedures tested

🔄 Coordination Workflow между modes

Daily Stand-up Structure:

09:00-09:30 - Daily Sync
├── Architect: Timeline status, risks, decisions needed
├── Code: Implementation progress, blockers
├── Debug: Issues found, integration status
└── DevOps: Infrastructure status, deployment readiness

Evening Wrap-up (18:00-18:15)
├── Checkpoint review
├── Next day planning  
├── Risk reassessment
└── Handoff decisions

Communication План:

Immediate escalation triggers:

  • 🚨 Network split detected → All modes mobilize
  • 🚨 Crypto incompatibility → Architect + Debug immediate review
  • 🚨 web2-client breaking → Code + Debug immediate fix
  • 🚨 Production outage → DevOps + Debug emergency response

Information flow:

graph LR
    A[Architect] -->|Requirements| C[Code]
    C -->|Implementation| D[Debug]  
    D -->|Validation| O[DevOps]
    O -->|Feedback| A
    
    D -->|Issues| C
    C -->|Clarification| A
    O -->|Infrastructure needs| A

Handoff Criteria между modes:

Architect → Code:

  • Technical specification approved
  • Risk assessment documented
  • Success criteria defined

Code → Debug:

  • Implementation complete
  • Unit tests passing
  • Code reviewed and approved

Debug → DevOps:

  • Integration tests passing
  • Performance baseline met
  • No critical issues found

DevOps → Architect:

  • Production deployment successful
  • Monitoring active
  • Phase completion confirmed

📋 Конкретные команды и критерии завершения

🔧 Конкретные команды для каждого этапа

Фаза 0: Подготовка

# Валидация криптографической совместимости
python tests/test_crypto_compatibility.py --verbose
python tests/test_ton_proof_validation.py

# Setup мониторинга
kubectl apply -f monitoring/prometheus-rules.yml
kubectl apply -f monitoring/grafana-dashboards.yml

# Baseline performance measurement
artillery run performance/baseline-sanic.yml

Фаза 1: web2-client TIER 1

# Миграция аутентификации
cd uploader-bot
python -m code_mode.migrate_auth_endpoints
pytest tests/test_web2_client_auth.py -v

# Миграция контента
python -m code_mode.migrate_content_endpoints  
pytest tests/test_web2_client_content.py -v

# Миграция uploads
python -m code_mode.migrate_upload_system
pytest tests/test_chunked_uploads.py -v

# E2E тестирование с web2-client
cd ../web2-client
npm test -- --testPathPattern=integration

Фаза 2: MY Network TIER 2

# Миграция межузлового общения
python -m code_mode.migrate_internode_communication
pytest tests/test_internode_handshake.py -v

# Валидация Ed25519 совместимости
python tests/validate_ed25519_across_frameworks.py

# Тестирование network discovery
python tests/test_network_discovery.py -v

# Проверка отсутствия network split
python tools/check_network_topology.py --alert-on-split

Фаза 3: System TIER 3

# Миграция health endpoints
python -m code_mode.migrate_health_endpoints
curl http://localhost:8000/health/detailed | jq

# Миграция мониторинга
python -m code_mode.migrate_monitoring_dashboard
curl http://localhost:8000/api/my/monitor | grep "ASCII"

# Kubernetes validation
kubectl get pods -o wide
kubectl describe service uploader-bot-service

Фаза 4: Очистка

# Удаление Sanic кода
python tools/remove_sanic_dependencies.py --dry-run
python tools/remove_sanic_dependencies.py --execute

# Обновление конфигурации
sed -i 's/USE_FASTAPI=.*/USE_FASTAPI=true/' .env
docker build -t uploader-bot:fastapi-only .

# Финальная валидация
python tests/test_full_system_fastapi_only.py
artillery run performance/final-fastapi.yml

Детальные критерии завершения каждого этапа

Фаза 0: Подготовка - ЗАВЕРШЕНА

  • Crypto compatibility: Ed25519 подписи идентичны в Sanic и FastAPI
  • Hash determinism: SHA-256 хэши контента одинаковые на разных платформах
  • TON proof validation: TON Connect proof валидируется одинаково
  • Monitoring setup: Prometheus metrics и Grafana dashboards активны
  • Baseline metrics: Performance baseline Sanic измерен и задокументирован

Validation commands:

# Все эти команды должны вернуть exit code 0
python tests/test_crypto_compatibility.py --strict
python tests/test_hash_determinism.py --cross-platform  
python tests/test_ton_proof_validation.py --comprehensive
curl http://prometheus:9090/api/v1/query?query=up | jq '.data.result | length'

Фаза 1: web2-client TIER 1 - ЗАВЕРШЕНА

  • Auth endpoints: /auth.twa, /auth.selectWallet работают с web2-client
  • Content endpoints: /content.view/{id} возвращает корректные данные
  • Blockchain endpoints: /blockchain.sendNewContentMessage, /blockchain.sendPurchaseContentMessage функциональны
  • Upload system: Chunked uploads с заголовками X-File-Name, X-Chunk-Start, X-Last-Chunk
  • E2E compatibility: web2-client проходит все интеграционные тесты
  • Performance: Response times ≤ 110% от Sanic baseline

Validation commands:

# web2-client интеграционные тесты
cd web2-client && npm test -- --testPathPattern=integration --passWithNoTests=false

# API contract тесты
python tests/test_web2_client_contracts.py --all-endpoints

# Performance validation
artillery run performance/web2-client-endpoints.yml | grep "http.response_time"

Фаза 2: MY Network TIER 2 - ЗАВЕРШЕНА

  • Handshake protocol: Межузловой handshake с Ed25519 подписями работает
  • Content sync: Синхронизация контента БЕЗ консенсуса функционирует
  • Network discovery: Обнаружение нод в сети активно
  • API v3.0: Все /api/v3/* endpoints отвечают корректно
  • No network split: Топология сети стабильна, split не обнаружен
  • Signature verification: ≥95% успешных верификаций Ed25519 подписей

Validation commands:

# Проверка межузлового общения
python tests/test_internode_full_protocol.py --real-nodes

# Проверка отсутствия network split
python tools/network_topology_validator.py --check-split --threshold=0.8

# Мониторинг signature verification rate
curl "http://prometheus:9090/api/v1/query?query=signature_verification_success_rate" | \
jq '.data.result[0].value[1] | tonumber >= 0.95'

Фаза 3: System TIER 3 - ЗАВЕРШЕНА

  • Health endpoints: Kubernetes probes (/health, /health/ready, /health/live) работают
  • Prometheus metrics: Все метрики собираются и доступны в Prometheus
  • MY Network dashboard: /api/my/monitor возвращает HTML dashboard
  • System stats: /metrics, /stats endpoints функциональны
  • K8s integration: Pods healthy, services reachable

Validation commands:

# Kubernetes health validation
kubectl get pods -o jsonpath='{.items[*].status.phase}' | grep -v Running && exit 1 || exit 0

# Prometheus metrics validation  
curl http://prometheus:9090/api/v1/label/__name__/values | \
jq '.data | map(select(startswith("uploader_bot_"))) | length >= 10'

# Dashboard accessibility
curl http://localhost:8000/api/my/monitor | grep -q "MY Network Monitor" && echo "OK"

Фаза 4: Очистка - ЗАВЕРШЕНА

  • Sanic removal: Все Sanic imports, blueprints, middleware удалены
  • Dependencies cleanup: sanic удален из requirements.txt
  • Configuration update: main.py использует только FastAPI
  • Docker optimization: Image собирается без Sanic зависимостей
  • Documentation update: Вся документация обновлена для FastAPI
  • Final performance: Производительность ≥90% от Sanic baseline

Validation commands:

# Проверка отсутствия Sanic кода
grep -r "import sanic\|from sanic" uploader-bot/app/ && exit 1 || exit 0
grep -q "sanic" uploader-bot/requirements.txt && exit 1 || exit 0

# Проверка конфигурации
python -c "from uploader-bot.app.main import get_app_mode; assert get_app_mode() == 'fastapi'"

# Final performance test
artillery run performance/final-comparison.yml | \
python tools/compare_performance.py --baseline performance/baseline-sanic.json --threshold 0.9

🚨 Emergency Stop критерии

НЕМЕДЛЕННАЯ ОСТАНОВКА миграции при:

  • 🚨 Network split detected: isolated_node_groups_detected == true
  • 🚨 Crypto failure rate >10%: signature_verification_failure_rate > 0.1
  • 🚨 web2-client broken: E2E тесты падают >50%
  • 🚨 Performance degradation >50%: Response times >150% baseline
  • 🚨 Production outage: Service unavailable >5 минут

Emergency rollback procedure:

#!/bin/bash
# emergency_rollback.sh

echo "🚨 EMERGENCY ROLLBACK ACTIVATED"

# 1. Переключение на Sanic режим
export USE_FASTAPI=false
kubectl set env deployment/uploader-bot USE_FASTAPI=false

# 2. Откат к предыдущей версии
kubectl rollout undo deployment/uploader-bot

# 3. Проверка восстановления
kubectl rollout status deployment/uploader-bot --timeout=300s

# 4. Валидация функциональности  
python tests/smoke_test_sanic.py --critical-only

echo "✅ Rollback completed, system stable"

🎯 Заключение

Готовность к исполнению: 95%

Консолидированная стратегия миграции объединяет все критические требования:

  • 🌐 MY Network v3.0 децентрализация - сохранение архитектуры без консенсуса
  • 📱 web2-client совместимость - 100% backward compatibility для пользователей
  • 🔒 Безопасность - полное сохранение Ed25519 криптографии
  • 📈 Производительность - улучшение на 30-40% после завершения

🗓️ Executive Timeline

Фаза Дни Критичность Результат
Фаза 0 1 день 🔥 КРИТИЧНО Валидация совместимости
Фаза 1 3 дня 🔥 КРИТИЧНО web2-client работает
Фаза 2 3 дня 🔥 КРИТИЧНО MY Network стабилен
Фаза 3 2 дня ⚠️ ВАЖНО Мониторинг активен
Фаза 4 2 дня ОПЦИОНАЛЬНО Код оптимизирован
ИТОГО 11 дней Полная миграция

🚀 Следующие шаги

  1. Немедленно: Валидация готовности в Фазе 0
  2. День 1: Старт миграции TIER 1 endpoints
  3. День 5: Переход к MY Network критичным компонентам
  4. День 11: Завершение миграции и production optimization

📞 Контакты и эскалация

Архитектурные решения: architect mode
Реализация кода: code mode
Диагностика проблем: debug mode
Production deployment: devops mode

Emergency escalation: Все modes одновременно при критических проблемах


Документ подготовлен для обеспечения успешной миграции Sanic → FastAPI с полным сохранением функциональности MY Network v3.0 и web2-client совместимости | Январь 2025