# Руководство по внедрению CI/CD методологии GitOps в FinTech компании **Версия документа:** 1.0 **Дата:** Январь 2026 **Статус:** Для согласования со всеми отделами **Целевая аудитория:** Отделы безопасности, инфраструктуры, менеджмент, AML, разработка --- ## Аннотация для руководства Данный документ описывает техническое решение для внедрения современной CI/CD методологии на базе GitOps принципов в закрытой инфраструктуре FinTech компании. Решение обеспечивает автоматизацию процессов разработки, тестирования и развертывания приложений с соблюдением требований безопасности финансового сектора, включая изоляцию в закрытой сети, полный аудит всех операций, и интеграцию AI-ассистента для технической поддержки и анализа. **Ключевые преимущества для бизнеса:** - Сокращение времени доставки новых функций с недель до часов - Снижение количества инцидентов на 60-70% через автоматизацию - Полная прослеживаемость всех изменений для compliance и аудита - Возможность моментального отката при проблемах - Накопление базы знаний и автоматическая поддержка через AI **Соответствие требованиям безопасности:** - Все компоненты развернуты в закрытой корпоративной сети - Нет зависимостей от внешних облачных сервисов - Полное шифрование данных в хранилищах и при передаче - Ролевая модель доступа с интеграцией корпоративного LDAP/AD - Аудит всех операций для соответствия регуляторным требованиям --- ## Содержание ### Часть I. Общая концепция и архитектура 1. [Введение и бизнес-обоснование](#1-введение-и-бизнес-обоснование) 2. [Архитектура решения](#2-архитектура-решения) 3. [Требования безопасности для FinTech](#3-требования-безопасности-для-fintech) 4. [Compliance и регуляторные требования](#4-compliance-и-регуляторные-требования) ### Часть II. Технические компоненты 5. [Gitea - Git Repository и База знаний](#5-gitea---git-repository-и-база-знаний) 6. [Jenkins - CI Automation Server](#6-jenkins---ci-automation-server) 7. [Harbor - Enterprise Container Registry](#7-harbor---enterprise-container-registry) 8. [Docker Swarm - Container Orchestration](#8-docker-swarm---container-orchestration) 9. [GitOps Operator для Docker Swarm](#9-gitops-operator-для-docker-swarm) 10. [Portainer - Management Interface](#10-portainer---management-interface) 11. [Ollama - AI-ассистент на собственной инфраструктуре](#11-ollama---ai-ассистент-на-собственной-инфраструктуре) 12. [MCP Server - интеграция AI с инфраструктурой](#12-mcp-server---интеграция-ai-с-инфраструктурой) ### Часть III. Development Environment 13. [Development Environment - требования и спецификация](#13-development-environment---требования-и-спецификация) 14. [Развертывание Development инфраструктуры](#14-развертывание-development-инфраструктуры) ### Часть IV. Процессы и операции 15. [CI/CD Pipeline и процесс доставки релизов](#15-cicd-pipeline-и-процесс-доставки-релизов) 16. [Процесс отката версий (Rollback)](#16-процесс-отката-версий-rollback) 17. [Работа с секретами и конфиденциальными данными](#17-работа-с-секретами-и-конфиденциальными-данными) 18. [Disaster Recovery и Business Continuity](#18-disaster-recovery-и-business-continuity) ### Часть V. Безопасность и мониторинг 19. [Сетевая безопасность и изоляция](#19-сетевая-безопасность-и-изоляция) 20. [Мониторинг, логирование и аудит](#20-мониторинг-логирование-и-аудит) 21. [Backup и архивирование](#21-backup-и-архивирование) ### Часть VI. Внедрение 22. [План поэтапного внедрения](#22-план-поэтапного-внедрения) 23. [Обучение команд и документация](#23-обучение-команд-и-документация) 24. [Бюджет и ROI](#24-бюджет-и-roi) --- ## Часть I. Общая концепция и архитектура ### 1. Введение и бизнес-обоснование #### 1.1 Текущие вызовы FinTech компании сталкиваются с уникальными вызовами при разработке и развертывании программного обеспечения: **Регуляторные требования:** - Необходимость аудита всех изменений в production системах - Соответствие стандартам PCI DSS, GDPR, локальным финансовым регуляторам - Требования к изоляции данных и систем - Обязательное логирование и возможность расследования инцидентов **Бизнес требования:** - Высокая скорость выхода новых продуктов на рынок (конкурентное преимущество) - Минимизация downtime - каждая минута простоя = потеря дохода - Необходимость быстрого реагирования на обнаруженные проблемы - Масштабирование под растущую нагрузку **Технические вызовы:** - Сложность координации между командами разработки и операций - Риск human error при ручном развертывании - Отсутствие единого источника истины для конфигураций - Сложность отката при проблемах в production - Накопление технического долга из-за недокументированных изменений #### 1.2 Решение: GitOps методология GitOps решает эти вызовы путем использования Git репозитория как единственного источника истины для всей инфраструктуры и приложений: **Для регуляторов и безопасности:** - Полная история всех изменений с временными метками и авторами - Процесс review и approval через Pull Requests - Автоматический аудит trail для compliance - Возможность воспроизвести любое состояние системы из прошлого - Контролируемый процесс внесения изменений **Для бизнеса:** - Сокращение времени от разработки до production с недель до часов - Снижение количества инцидентов через автоматизацию (меньше human error) - Быстрый rollback при проблемах (секунды вместо часов) - Predictable и repeatable deployments - Возможность параллельной работы над несколькими проектами **Для технических команд:** - Декларативное описание инфраструктуры как кода - Автоматизация рутинных операций - Self-service для разработчиков в рамках установленных политик - Стандартизация процессов разработки и деплоя - Накопление знаний в виде документации в Git #### 1.3 Почему Docker Swarm для FinTech Выбор Docker Swarm вместо Kubernetes для FinTech компании обоснован следующими факторами: **Простота управления:** - Меньшая кривая обучения для команды - Более простая архитектура без дополнительных абстракций - Нативная интеграция с Docker экосистемой - Меньше компонентов = меньше точек отказа **Безопасность:** - Встроенное шифрование overlay network (IPSec) - Нативное управление secrets с encryption at rest - Меньшая поверхность атаки из-за меньшего количества компонентов - Проще проводить security audit **Производительность:** - Меньшие накладные расходы на оркестрацию - Быстрее deployment и scaling операции - Эффективное использование ресурсов **Операционные расходы:** - Меньше серверов для control plane - Проще backup и disaster recovery - Меньшая стоимость владения (TCO) - Меньше требований к специализированным знаниям #### 1.4 Роль AI в современной FinTech инфраструктуре Интеграция собственного AI-ассистента на базе Ollama добавляет качественно новый уровень автоматизации и поддержки: **Для разработки:** - Автоматическая генерация документации из кода - Помощь в написании Docker Compose файлов и CI/CD pipelines - Code review и выявление потенциальных проблем - Предложения по оптимизации и best practices **Для операций:** - Автоматическая диагностика проблем по логам - Поиск решений в базе знаний прошлых инцидентов - Проактивный анализ метрик и предупреждение о потенциальных проблемах - Генерация runbooks для типовых операций **Для compliance:** - Автоматическая проверка соответствия политикам безопасности - Генерация отчетов для аудиторов - Анализ изменений на соответствие регуляторным требованиям **Для бизнеса:** - Сокращение времени на поиск информации (знания в одном месте) - Снижение зависимости от ключевых специалистов (знания сохраняются) - Ускорение onboarding новых сотрудников - Повышение качества принятия решений на основе данных **Критично для FinTech: собственная инфраструктура** - AI работает на собственных серверах, данные не покидают корпоративную сеть - Полный контроль над обрабатываемой информацией - Соответствие требованиям конфиденциальности финансовых данных - Нет зависимости от внешних AI сервисов (OpenAI, Claude API и т.д.) --- ### 2. Архитектура решения #### 2.1 Общая схема инфраструктуры ``` ┌─────────────────────────────────────────────────────────────────────────────┐ │ ЗАКРЫТАЯ КОРПОРАТИВНАЯ СЕТЬ (ISOLATED VLAN) │ │ │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ EXTERNAL FACING ZONE │ │ │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ │ │ Corporate VPN Gateway + MFA │ │ │ │ │ │ • Разработчики подключаются через VPN │ │ │ │ │ │ • Multi-factor authentication обязательна │ │ │ │ │ │ • Audit logging всех подключений │ │ │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ │ ▼ │ │ │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ │ │ Jump Host / Bastion Server │ │ │ │ │ │ • Единая точка входа в инфраструктуру │ │ │ │ │ │ • Session recording для аудита │ │ │ │ │ │ • IP whitelisting │ │ │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ════════════════════════════════════════════════════════════════════════ │ │ │ │ │ ┌────────────────────────────▼──────────────────────────────────────┐ │ │ │ MANAGEMENT & CI/CD ZONE (VLAN 10) │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ │ GITEA - Git Repository & Knowledge Base │ │ │ │ │ │ • Все исходные коды и конфигурации │ │ │ │ │ │ • База знаний компании │ │ │ │ │ │ • Документация продуктов │ │ │ │ │ │ • История инцидентов │ │ │ │ │ │ IP: 10.10.10.10, Ports: 22, 443, 3000 │ │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ │ │ Webhooks (HTTPS + signature) │ │ │ │ ▼ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ │ JENKINS - CI/CD Automation Server │ │ │ │ │ │ • Сборка и тестирование │ │ │ │ │ │ • Security scanning │ │ │ │ │ │ • Docker image builds │ │ │ │ │ │ IP: 10.10.10.20, Ports: 8080, 50000 │ │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ │ │ Push images │ │ │ │ ▼ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ │ HARBOR - Enterprise Container Registry │ │ │ │ │ │ • Хранение Docker images │ │ │ │ │ │ • Vulnerability scanning │ │ │ │ │ │ • Image signing & notary │ │ │ │ │ │ IP: 10.10.10.30, Ports: 443, 5000 │ │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ │ GITOPS OPERATOR (Custom/Flux for Swarm) │ │ │ │ │ │ • Мониторинг Git репозитория │ │ │ │ │ │ • Автоматический deploy в Swarm │ │ │ │ │ │ IP: 10.10.10.40, Ports: 8080 │ │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ │ PORTAINER - Management UI │ │ │ │ │ │ • Визуальное управление Swarm │ │ │ │ │ │ • Мониторинг и логи │ │ │ │ │ │ IP: 10.10.10.50, Ports: 9000, 9443 │ │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ════════════════════════════════════════════════════════════════════════│ │ │ │ │ ┌────────────────────────────▼──────────────────────────────────────┐ │ │ │ DOCKER SWARM CLUSTER ZONE (VLAN 20) │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ │ SWARM MANAGER NODES (3 для High Availability) │ │ │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ │ │ │ │ Manager 1 │ │ Manager 2 │ │ Manager 3 │ │ │ │ │ │ │ │ 10.20.1.1 │ │ 10.20.1.2 │ │ 10.20.1.3 │ │ │ │ │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ │ │ • Raft consensus для leader election │ │ │ │ │ │ • API endpoints для управления кластером │ │ │ │ │ │ • Scheduling и orchestration │ │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ │ SWARM WORKER NODES (N нод для приложений) │ │ │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ │ │ │ │ Worker 1 │ │ Worker 2 │ │ Worker 3 │ │ Worker N │ │ │ │ │ │ │ │10.20.2.1 │ │10.20.2.2 │ │10.20.2.3 │ │10.20.2.N │ │ │ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ │ │ • Banking Application Services │ │ │ │ │ │ • Payment Processing Services │ │ │ │ │ │ • API Gateway Services │ │ │ │ │ │ • Microservices Architecture │ │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ • Encrypted Overlay Network (IPSec) │ │ │ │ • Docker Secrets для sensitive data │ │ │ │ • Load Balancing через Swarm Routing Mesh │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ════════════════════════════════════════════════════════════════════ │ │ │ │ │ ┌────────────────────────────▼──────────────────────────────────────┐│ │ │ AI & ANALYTICS ZONE (VLAN 30) ││ │ │ ││ │ │ ┌─────────────────────────────────────────────────────────┐ ││ │ │ │ OLLAMA - AI Model Server │ ││ │ │ │ • Llama 3.3 70B для сложных задач │ ││ │ │ │ • Qwen 2.5 Coder для генерации кода │ ││ │ │ │ • DeepSeek для специализированных задач │ ││ │ │ │ • Модели работают локально на GPU │ ││ │ │ │ IP: 10.30.10.10, Ports: 11434 │ ││ │ │ └─────────────────────────────────────────────────────────┘ ││ │ │ │ ││ │ │ │ API calls ││ │ │ ▼ ││ │ │ ┌─────────────────────────────────────────────────────────┐ ││ │ │ │ MCP SERVER - Model Context Protocol Server │ ││ │ │ │ ┌───────────────────────────────────────────────┐ │ ││ │ │ │ │ Connectors: │ │ ││ │ │ │ │ • Gitea MCP - доступ к репозиториям │ │ ││ │ │ │ │ • Docker Swarm MCP - метрики, логи │ │ ││ │ │ │ │ • PostgreSQL MCP - бизнес данные │ │ ││ │ │ │ │ • Prometheus MCP - метрики инфраструктуры │ │ ││ │ │ │ │ • Elasticsearch MCP - поиск по логам │ │ ││ │ │ │ └───────────────────────────────────────────────┘ │ ││ │ │ │ IP: 10.30.10.20, Ports: 8080 │ ││ │ │ └─────────────────────────────────────────────────────────┘ ││ │ │ ││ │ │ ┌─────────────────────────────────────────────────────────┐ ││ │ │ │ VECTOR DATABASE (Qdrant/Milvus) │ ││ │ │ │ • Embeddings документации │ ││ │ │ │ • Semantic search по базе знаний │ ││ │ │ │ IP: 10.30.10.30, Ports: 6333 │ ││ │ │ └─────────────────────────────────────────────────────────┘ ││ │ └─────────────────────────────────────────────────────────────────┘││ │ │ ││ │ ════════════════════════════════════════════════════════════════════││ │ │ ││ │ ┌────────────────────────────▼──────────────────────────────────────┐│ │ │ MONITORING & LOGGING ZONE (VLAN 40) │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ PROMETHEUS + ALERTMANAGER │ │ │ │ │ • Сбор метрик со всех компонентов │ │ │ │ │ • Alerting при проблемах │ │ │ │ │ IP: 10.40.10.10, Ports: 9090, 9093 │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ GRAFANA - Visualization │ │ │ │ │ • Dashboards для мониторинга │ │ │ │ │ • Интеграция с Prometheus, Loki │ │ │ │ │ IP: 10.40.10.20, Ports: 3000 │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ LOKI - Log Aggregation │ │ │ │ │ • Централизованное хранение логов │ │ │ │ │ • Поиск и анализ │ │ │ │ │ IP: 10.40.10.30, Ports: 3100 │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ ELASTICSEARCH + KIBANA (опционально) │ │ │ │ │ • Продвинутый поиск по логам │ │ │ │ │ • Security analytics │ │ │ │ │ IP: 10.40.10.40-50, Ports: 9200, 5601 │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ ════════════════════════════════════════════════════════════════════ │ │ │ ┌────────────────────────────▼──────────────────────────────────────┐ │ │ DATA & DATABASE ZONE (VLAN 50) │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ POSTGRESQL CLUSTER (для инфраструктурных сервисов) │ │ │ │ │ • Gitea database │ │ │ │ │ • Harbor database │ │ │ │ │ • Portainer database │ │ │ │ │ Master: 10.50.10.10, Replica: 10.50.10.11 │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ APPLICATION DATABASES │ │ │ │ │ • Production application data │ │ │ │ │ • Encrypted at rest │ │ │ │ │ • Automated backups │ │ │ │ │ 10.50.20.x range │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ SHARED STORAGE (NFS/GlusterFS) │ │ │ │ │ • Persistent volumes для Swarm services │ │ │ │ │ • Replicated для HA │ │ │ │ │ 10.50.30.x range │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ ════════════════════════════════════════════════════════════════════ │ │ │ ┌────────────────────────────▼──────────────────────────────────────┐ │ │ BACKUP & DR ZONE (VLAN 60) │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ BACKUP SERVER │ │ │ │ │ • Ежедневные инкрементальные backup │ │ │ │ │ • Еженедельные полные backup │ │ │ │ │ • Retention: 30 дней daily, 12 месяцев monthly │ │ │ │ │ IP: 10.60.10.10 │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ │ DR SITE (опционально, в другом ЦОД) │ │ │ │ │ • Replica инфраструктуры │ │ │ │ │ • Asynchronous replication │ │ │ │ │ • RTO: 4 часа, RPO: 15 минут │ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ └─────────────────────────────────────────────────────────────────┘ └─────────────────────────────────────────────────────────────────────────────┘ ``` #### 2.2 Сетевая архитектура **VLAN Segmentation:** | VLAN ID | Назначение | Subnet | Access Policy | |---------|-----------|--------|---------------| | VLAN 10 | Management & CI/CD | 10.10.10.0/24 | Restricted, VPN + MFA required | | VLAN 20 | Docker Swarm Cluster | 10.20.0.0/16 | Isolated, only management access | | VLAN 30 | AI & Analytics | 10.30.10.0/24 | Read-only access to data sources | | VLAN 40 | Monitoring & Logging | 10.40.10.0/24 | Read-only metrics collection | | VLAN 50 | Data & Databases | 10.50.0.0/16 | Strict access control, encrypted | | VLAN 60 | Backup & DR | 10.60.10.0/24 | Write-only for backups | **Firewall Rules (принцип least privilege):** ``` Management VLAN (10) → Swarm VLAN (20): - Ports: 2377 (cluster management), 7946 (discovery), 4789 (overlay) - Protocol: TCP/UDP - Source: GitOps Operator, Portainer Management VLAN (10) → Data VLAN (50): - Ports: 5432 (PostgreSQL) - Protocol: TCP - Source: Gitea, Harbor, Jenkins AI VLAN (30) → All VLANs: - Read-only access через MCP connectors - No write permissions to production data - Audit log всех запросов Swarm VLAN (20) → Harbor (VLAN 10): - Port: 443, 5000 (image pull) - Protocol: TCP - mTLS authentication Monitoring VLAN (40) → All VLANs: - Metrics scraping ports (varies) - Log collection ports - No administrative access ALL → Backup VLAN (60): - Write-only for backup agents - Read for DR procedures only ``` #### 2.3 Потоки данных **1. Development to Production Flow:** ``` Developer Workstation (через VPN) ↓ (git push через SSH) Gitea (VLAN 10) ↓ (webhook HTTPS + signature) Jenkins (VLAN 10) ↓ (build & test) Jenkins ↓ (docker push через TLS + credentials) Harbor (VLAN 10) ↓ (vulnerability scan) Harbor ↓ (update compose file в Git) Gitea ↓ (Git pull через SSH) GitOps Operator (VLAN 10) ↓ (docker stack deploy через API) Docker Swarm Managers (VLAN 20) ↓ (pull images) Harbor ↓ (schedule на workers) Docker Swarm Workers (VLAN 20) ↓ Application Running ``` **2. AI Assistant Query Flow:** ``` Developer Question (через secure web UI) ↓ Ollama AI Server (VLAN 30) ↓ (MCP protocol) MCP Server (VLAN 30) ↓ (parallel queries) ├→ Gitea MCP Connector → Gitea (documentation) ├→ Swarm MCP Connector → Docker API (logs, metrics) ├→ Database MCP Connector → PostgreSQL (business data) ├→ Prometheus MCP Connector → Metrics └→ Elasticsearch MCP Connector → Logs ↓ (aggregated context) MCP Server ↓ (context + query) Ollama AI Server ↓ (generated response) Developer ``` **3. Monitoring & Alerting Flow:** ``` All Infrastructure Components ↓ (metrics export) Prometheus (VLAN 40) ↓ (evaluation rules) AlertManager (VLAN 40) ↓ (notifications) ├→ Slack/Email ├→ PagerDuty └→ AI Analy sis (Ollama via MCP) ``` --- ### 3. Требования безопасности для FinTech #### 3.1 Compliance и регуляторные стандарты **PCI DSS (Payment Card Industry Data Security Standard):** Требования, применимые к нашей инфраструктуре: - **Requirement 1:** Установка и поддержка firewall конфигурации - *Реализация:* VLAN segmentation, strict firewall rules между зонами - *Аудит:* Quarterly review firewall rules, логирование всех изменений в Git - **Requirement 2:** Не использовать vendor defaults для паролей - *Реализация:* Все пароли генерируются уникально, хранятся в HashiCorp Vault или Docker Secrets - *Политика:* Минимум 16 символов, rotation каждые 90 дней для administrative accounts - **Requirement 3:** Защита хранимых данных кард