{
  "title": "گزارش آمادگی استقرار",
  "slug": "team/devops/deployment-readiness-report",
  "url": "/docs/team/devops/deployment-readiness-report",
  "frontmatter": {
    "layout": "doc",
    "title": "گزارش آمادگی استقرار",
    "description": "ارزیابی وضعیت فعلی پروژه NONS برای استقرار روی سرور عملیاتی",
    "version": "1.0.0",
    "status": "PRIVATE",
    "author": "Antigravity",
    "owner": "Devops Team",
    "created_at": "2026-06-16",
    "updated_at": "2026-06-16",
    "tags": "",
    "reviewers": ""
  },
  "sections": [
    {
      "level": 1,
      "heading": "گزارش آمادگی استقرار",
      "content": "**Deployment Readiness Report**\n\n---"
    },
    {
      "level": 2,
      "heading": "۱. وضعیت فعلی استقرار (Current Deployment Status)",
      "content": "| مؤلفه | وضعیت | توضیح |\n|-------|-------|-------|\n| محیط توسعه محلی | ✅ فعال (K3d) | کلاستر محلی K3d با Helm راه‌اندازی و مستند شده |\n| CI Pipeline | ✅ فعال (GitHub Actions) | lint, build, test, codegen — ۳ job موازی |\n| Container Registry | 🟡 تنظیم نشده | ghcr.io/nons/* تعریف شده ولی Token/PAT عملیاتی تنظیم نشده |\n| CD Pipeline | ❌ تنظیم نشده | استقرار خودکار به Staging/Production پیاده‌سازی نشده |\n| Production Cluster | ❌ راه‌اندازی نشده | سرور عملیاتی K3s هنوز Provision نشده |\n| Monitoring Stack | 🟡 در نقشه راه | Prometheus/Grafana/Jaeger به فاز بعدی موکول شده |\n| Secret Management | 🟡 نیازمند تکامل | Kubernetes Secrets پایه وجود دارد، Vault در نقشه راه |\n\n---"
    },
    {
      "level": 2,
      "heading": "۲. چارت‌های Helm موجود (Existing Helm Charts)",
      "content": "| چارت | مسیر | وضعیت | توضیح |\n|------|------|-------|-------|\n| Gateway | `deploy/helm/gateway` | ✅ کامل | Traefik v3 با Forward Auth |\n| Auth Service | `deploy/helm/auth-service` | ✅ کامل | سرویس واسط احراز هویت |\n| Kratos | `deploy/helm/kratos` | ✅ کامل | Ory Kratos v1.2.0 |\n| Hydra | `deploy/helm/hydra` | ✅ کامل | Ory Hydra v2.2.0 |\n| NATS | `deploy/helm/nats` | ✅ کامل | NATS JetStream 2.10 |\n| Redis | `deploy/helm/redis` | ✅ کامل | Redis 7 با AOF |\n| PostgreSQL | `deploy/helm/postgres` | ✅ کامل | PostgreSQL 16 |\n| Monitoring | `deploy/helm/monitoring` | 📄 اسکلت | Prometheus/Grafana/Jaeger — فقط پوسته |\n| Core | `deploy/helm/core` | ❌ وجود ندارد | چارت Go Core Service ساخته نشده |\n| سایر سرویس‌ها | — | ❌ وجود ندارد | ۱۹ سرویس دیگر فاقد چارت Helm هستند |\n\n---"
    },
    {
      "level": 2,
      "heading": "۳. منابع Kubernetes موجود (Existing K8s Resources)",
      "content": "| نوع منبع | Namespace | وضعیت |\n|----------|-----------|-------|\n| Deployment | `nons-platform` | ✅ برای ۷ سرویس اصلی |\n| StatefulSet | `nons-platform` | ✅ برای PostgreSQL, NATS |\n| Service | `nons-platform` | ✅ برای همه سرویس‌های فعال |\n| ConfigMap | `nons-platform` | ✅ برای تنظیمات غیرحساس |\n| Secret | `nons-platform` | 🟡 پایه موجود، نیازمند تکامل |\n| IngressRoute | `nons-system` | ✅ Traefik IngressRoute |\n| HPA | `nons-platform` | 📄 تعریف شده در blueprint، پیاده‌سازی نشده |\n| PDB | — | ❌ تعریف نشده |\n| NetworkPolicy | — | ❌ تعریف نشده |\n| ServiceAccount | — | ❌ اختصاصی برای CI/CD |\n\n---"
    },
    {
      "level": 2,
      "heading": "۴. تصاویر موجود (Existing Images)",
      "content": "| سرویس | Dockerfile | Image Name | آخرین بیلد |\n|-------|-----------|------------|-----------|\n| Auth Service | `services/auth-service/Dockerfile` | `nons/auth-service` | محلی (K3d import) |\n| Core | `core/Dockerfile` | `nons/core` | محلی |\n| Gateway | — | Traefik رسمی | از Registry رسمی |\n| Kratos | — | Ory رسمی | از Registry رسمی |\n| Hydra | — | Ory رسمی | از Registry رسمی |\n| NATS | — | NATS رسمی | از Registry رسمی |\n| Redis | — | Redis رسمی | از Registry رسمی |\n| PostgreSQL | — | PostgreSQL رسمی | از Registry رسمی |\n\n**نکته:** هیچ تصویری به ghcr.io推送 نشده است. همه تصاویر ساخته‌شده仅限于 محیط محلی K3d با `k3d image import`.\n\n---"
    },
    {
      "level": 2,
      "heading": "۵. فرآیند انتشار موجود (Existing Release Process)",
      "content": "| مرحله | وضعیت | مستندات |\n|-------|-------|---------|\n| Git Tagging | 🟡 دستی | `auth-service/v{version}` — مستند شده |\n| Image Build | 🟡 دستی | `docker build` محلی |\n| Image Push | ❌ فعال نیست | نیاز به ghcr.io Token |\n| Helm Deploy | 🟡 دستی | `helm upgrade --install` محلی |\n| GitHub Release | ❌ فعال نیست | نیاز به CI/CD pipeline |\n| Changelog | 🟡 مستند شده | الگو در release-lifecycle-blueprint موجود |\n| Version Bump | 🟡 دستی | `package.json` + `git tag` |\n\n**تگ‌های موجود:** `v0.1.0`, `v0.1.1`, `v0.2.0` — بدون پیشوند سرویس (نامگذاری قدیمی).\n\n---"
    },
    {
      "level": 2,
      "heading": "۶. الزامات缺失 قبل از اولین استقرار (Missing Requirements)",
      "content": ""
    },
    {
      "level": 3,
      "heading": "بحرانی (Required Before First Deployment)",
      "content": "| # | الزام | اولویت | راهکار پیشنهادی |\n|---|-------|--------|----------------|\n| ۱ | **ghcr.io Token و Pull Secret** | HIGH | ایجاد PAT با scopes `write:packages`, `delete:packages` |\n| ۲ | **K3s Cluster Provisioning** | HIGH | راه‌اندازی سرور K3s با containerd |\n| ۳ | **DNS Records** | HIGH | تنظیم A/CNAME رکوردها برای nons.ir و nons.app |\n| ۴ | **TLS Certificate** | HIGH | نصب cert-manager و Let's Encrypt |\n| ۵ | **Kubernetes Secrets واقعی** | HIGH | جایگزینی مقادیر پیش‌فرض `.env.example` با رازهای واقعی |\n| ۶ | **Production values.yaml** | HIGH | تکمیل `deploy/environments/production/values.yaml` |"
    },
    {
      "level": 3,
      "heading": "مهم (Strongly Recommended)",
      "content": "| # | الزام | اولویت | راهکار پیشنهادی |\n|---|-------|--------|----------------|\n| ۷ | **CI/CD Pipeline برای انتشار** | MEDIUM | GitHub Actions workflow برای build + push + deploy |\n| ۸ | **PersistentVolume برای PostgreSQL** | MEDIUM | تنظیم StorageClass و PVC با حجم حداقل ۱۰Gi |\n| ۹ | **NetworkPolicy** | MEDIUM | محدود کردن ترافیک بین Namespaceها |\n| ۱۰ | **Pod Disruption Budget** | MEDIUM | حداقل ۱ پاد برای سرویس‌های Stateless |\n| ۱۱ | **Core Service Helm Chart** | MEDIUM | ایجاد چارت Helm برای `core/` |\n| ۱۲ | **Health Check Endpoints** | MEDIUM | اطمینان از readinessProbe/livenessProbe برای همه سرویس‌ها |"
    },
    {
      "level": 3,
      "heading": "فرصت‌های بهبود (Future Roadmap)",
      "content": "| # | الزام | اولویت | فاز |\n|---|-------|--------|-----|\n| ۱۳ | Monitoring Stack (Prometheus/Grafana) | LOW | فاز ۲ |\n| ۱۴ | External Secrets Operator | LOW | فاز ۲ |\n| ۱۵ | Vault Integration | LOW | فاز ۳ |\n| ۱۶ | Staging Environment | LOW | فاز ۲ |\n| ۱۷ | HPA فعال | LOW | فاز ۲ |\n\n---"
    },
    {
      "level": 2,
      "heading": "۷. ریسک‌ها و موانع (Risks & Blockers)",
      "content": ""
    },
    {
      "level": 3,
      "heading": "ریسک‌های فنی",
      "content": "| ریسک | احتمال | تأثیر | توضیح |\n|------|--------|-------|-------|\n| **Configuration Drift** | MEDIUM | HIGH | محیط K3d محلی ممکن است با K3s پروداکشن تفاوت داشته باشد |\n| **Missing Image Pipeline** | HIGH | HIGH | بدون CI/CD انتشار، استقرار اولیه کاملاً دستی خواهد بود |\n| **Secrets در Repository** | HIGH | HIGH | `.env.example` حاوی مقادیر واقعی — خطر نشت در مخزن عمومی |\n| **NATS Subjects ناهماهنگ** | HIGH | MEDIUM | Core از subjects بدون `nons.` استفاده می‌کند در حالی که سرویس‌ها با `nons.` publish می‌کنند |\n| **بدون Staging Environment** | MEDIUM | HIGH | تست واقعی قبل از پروداکشن امکان‌پذیر نیست |"
    },
    {
      "level": 3,
      "heading": "موانع عملیاتی",
      "content": "| مانع | توضیح |\n|------|-------|\n| **عدم وجود rollout plan** | ترتیب استقرار سرویس‌ها در پروداکشن مستند نشده |\n| **بدون backup/restore strategy** | هیچ راهکاری برای بازیابی داده‌ها در سناریوی disaster تعریف نشده |\n| **بدون monitoring/SLA** | بدون نظارت، تشخیص مشکل در پروداکشن غیرممکن است |\n| **ورژن‌های ناسازگار** | `core/go.mod` نیازمند Go 1.26, auth-service نیازمند Node 20 — اطمینان از سازگاری runtime |\n\n---"
    },
    {
      "level": 2,
      "heading": "۸. جمع‌بندی (Summary)",
      "content": "| حوزه | امتیاز (۱-۵) | وضعیت |\n|------|-------------|--------|\n| Helm Charts | ⭐⭐⭐⭐☆ (۴) | ✅ ۷ چارت اصلی آماده |\n| CI Pipeline | ⭐⭐⭐☆☆ (۳) | 🟡 lint/build/test فعال — publish/deploy缺失 |\n| Image Pipeline | ⭐☆☆☆☆ (۱) | ❌ نیاز به ghcr.io + CI/CD |\n| Monitoring | ⭐☆☆☆☆ (۱) | ❌ در نقشه راه |\n| Secrets | ⭐⭐☆☆☆ (۲) | 🟡 پایه موجود — نیاز به Vault/ESO |\n| Documentation | ⭐⭐⭐⭐☆ (۴) | ✅ مستندات devops کامل |\n| Production Cluster | ☆☆☆☆☆ (۰) | ❌ هنوز Provision نشده |\n| **Overall** | **⭐⭐⭐☆☆ (۲.۷)** | **🟡 آماده برای شروع — نیاز به ۶ الزام بحرانی قبل از استقرار** |\n\n**نتیجه:** پروژه برای استقرار روی سرور عملیاتی در وضعیت **\"آماده مشروط\"** قرار دارد. با رفع ۶ الزام بحرانی بخش ۶، اولین استقرار امکان‌پذیر است. استقرار خودکار (CD) و Monitoring برای فاز دوم توصیه می‌شوند."
    }
  ]
}