# Консолидированная стратегия миграции 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. Критические зависимости между компонентами ```mermaid 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 при обнаружении проблем **Критерии обнаружения:** ```bash # Алерт при падении 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:** ```typescript // Критические тесты для 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:** ```python 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:** ```bash # 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: Валидационное тестирование #### Криптографические тесты: ```python # 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 валидация: ```python # 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 тесты: ```python # 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 тесты: ```typescript // 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 тесты #### Межузловые тесты: ```python # 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 тесты: ```python # 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 и мониторинг: ```python # 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 тесты: ```python # 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 стратегия: ```bash # Нагрузочное тестирование с постепенным увеличением 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 минут): ```bash #!/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 тесты (каждый час): ```python # Автоматические 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 эндпоинты ```python # День 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 эндпоинты ```python # День 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 и совместимость ```python @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 ```python @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 готовность ```yaml # 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 ```bash #!/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:** ```mermaid 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: Подготовка ```bash # Валидация криптографической совместимости 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 ```bash # Миграция аутентификации 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 ```bash # Миграция межузлового общения 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 ```bash # Миграция 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: Очистка ```bash # Удаление 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:** ```bash # Все эти команды должны вернуть 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:** ```bash # 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:** ```bash # Проверка межузлового общения 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:** ```bash # 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:** ```bash # Проверка отсутствия 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:** ```bash #!/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*