# 部署概述

FluxiQ PIX 支持多种部署模型，从用于开发的单节点 Docker Compose 到用于生产的多区域 Kubernetes 集群。

## 前提条件

- 已完成[要求](../guide/requirements.md)审查
- 已选择目标部署环境
- 已具备到所需服务的网络连接 (PostgreSQL、Redis、NATS，可选 BACEN)

## 部署模型

| 模型 | 使用场景 | 复杂度 | 高可用 | TPS 目标 |
|------|----------|--------|--------|----------|
| Docker Compose (开发) | 开发、测试 | 低 | 否 | ~100 |
| Docker Compose (生产) | 小型机构 | 中 | 可选 | ~500 |
| Kubernetes (单区域) | 生产 | 高 | 是 | 5,000 |
| Kubernetes (多区域) | 大型银行 | 极高 | 是 | 7,500+ |
| 本地部署 | 受监管环境 | 高 | 是 | 5,000 |

## 各部署模型架构

```mermaid
graph TB
    subgraph Docker Compose
        DC_BE[后端容器]
        DC_PG[(PostgreSQL)]
        DC_RD[(Redis)]
        DC_NT[NATS]
    end

    subgraph Kubernetes
        K_ING[Ingress / Traefik]
        K_BE1[后端 Pod 1]
        K_BE2[后端 Pod 2]
        K_ADM[管理前端 Pod]
        K_PG[(Cloud SQL / StatefulSet)]
        K_RD[(Redis / Memorystore)]
        K_NT[NATS 集群 3 节点]
    end
```

## 组件矩阵

| 组件 | Docker Compose | Kubernetes | 本地部署 |
|------|---------------|------------|----------|
| 后端 | 单容器 | 2+ pods 带 PDB | Systemd 或 Docker |
| PostgreSQL | 容器 | Cloud SQL / StatefulSet | Patroni 集群 |
| Redis | 容器 | Memorystore / StatefulSet | Redis Sentinel |
| NATS | 容器 | 3 节点 StatefulSet 或 VM | 3 节点集群 |
| 管理前端 | 容器 (nginx) | Pod (nginx) | VM 上的 nginx |
| 负载均衡器 | Docker 端口映射 | Traefik / Cloud LB | HAProxy / nginx |
| TLS 终止 | 可选 (自签名) | cert-manager / Cloud LB | HAProxy / nginx |
| 监控 | 可选 | Prometheus + Grafana | Prometheus + Grafana |

## 容器镜像

| 镜像 | 仓库 | 大小 | 用途 |
|------|------|------|------|
| `pix-backend` | 私有仓库 | ~180 MB | Elixir release (4 个服务) |
| `pix-frontend` | 私有仓库 | ~25 MB | 管理门户 (nginx + Vue SPA) |
| `pix-user-frontend` | 私有仓库 | ~25 MB | 用户门户 (nginx + Vue SPA) |

构建镜像：

```bash
# 后端
cd backend
docker build -t pix-backend:latest .

# 管理前端
cd frontend/admin
docker build -t pix-frontend:latest .

# 用户前端
cd frontend/user
docker build -t pix-user-frontend:latest .
```

## 健康检查

所有服务暴露健康端点：

| 服务 | 端点 | 方法 | 预期 |
|------|------|------|------|
| Settlement (网关) | `/health` | GET | 200 OK |
| Dict Service | `/api/health` | GET | 200 OK |
| SPI Service | `/api/health` | GET | 200 OK |
| Prometheus 指标 | `/metrics` | GET | 200 OK |

## 环境特定指南

- [Docker Compose](./docker-compose.md) -- 开发和小规模生产
- [Kubernetes](./kubernetes.md) -- 生产级编排
- [AWS](./aws.md) -- Amazon Web Services 部署
- [GCP](./gcp.md) -- Google Cloud Platform 部署
- [Azure](./azure.md) -- Microsoft Azure 部署
- [OCI](./oci.md) -- Oracle Cloud Infrastructure 部署
- [本地部署](./on-premises.md) -- 裸机和虚拟化部署

## 预期结果

阅读本概述后，您可以选择适当的部署模型，并转到与您的基础设施匹配的环境特定指南。
