diff --git a/inventcloud/invista/nexus/OCI-DEV-NEXUS.md b/inventcloud/invista/nexus/OCI-DEV-NEXUS.md index a1b9168..4d478da 100644 --- a/inventcloud/invista/nexus/OCI-DEV-NEXUS.md +++ b/inventcloud/invista/nexus/OCI-DEV-NEXUS.md @@ -5,6 +5,210 @@ --- +## 0. Diagrama Geral — Fluxo de Tráfego e Recursos + +### 0.1 Fluxo Completo: Internet → Cloudflare → OCI → Serviços + +``` +┌─────────────────────────────────────────────────────────────────────────────────────┐ +│ INTERNET │ +└──────────────────────────────┬──────────────────────────────────────────────────────┘ + │ + ┌──────────▼──────────┐ + │ CLOUDFLARE │ + │ *.invista.com.br │ + │ (DNS + Proxy/WAF) │ + └──────┬──────────────┘ + │ + ┌────────────────┼─────────────────────┐ + │ APIs backend │ MFE (frontend) │ Acesso direto + │ (proxied) │ (planejado ⏳) │ (public LB) + ▼ ▼ ▼ +┌─────────────────┐ ┌──────────────────┐ ┌──────────────────────┐ +│ LB Test_Crivo │ │ LB Test_Crivo │ │ OKE Public LB │ +│ 10.8.4.127 │ │ Dev (VCN-Shared) │ │ 137.131.236.202 │ +│ VCN-Shared │ │ (rota pendente) │ │ cls-dev-nexus │ +│ cmp-shared-inv │ └──────────────────┘ └──────────────────────┘ +│ [MANUAL] │ │ │ +└────────┬────────┘ │ │ + │ │ │ + │ DRG-Invista-Shared │ + │ (VCN-Shared ↔ VCN-DEV) │ + ▼ │ │ +┌─────────────────────────────────────────────────┼──────────────────────────────────┐ +│ VCN-DEV (10.6.0.0/16) — cmp-dev-inv [MANUAL] │ │ +│ │ │ +│ ┌──────────────────────────────────────────┐ │ │ +│ │ api-gateway-nexus-dev [MANUAL] │ │ │ +│ │ PRIVATE · IP: 10.6.0.123 │ │ │ +│ │ Subnet: SBNT-DEV (10.6.0.0/24) │ │ │ +│ │ │ │ │ +│ │ Deployments: │ │ │ +│ │ /api/auth /api/user │ │ │ +│ │ /api/person /api/role │ │ │ +│ │ /api/sso /api/cache │ │ │ +│ │ /api/commercial-manager … │ │ │ +│ └────────────────────┬─────────────────────┘ │ │ +│ │ DRG (VCN-DEV ↔ vcn-oke) │ │ +└───────────────────────┼─────────────────────────┼──────────────────────────────────┘ + │ │ + └────────────┬────────────┘ + │ +┌────────────────────────────────────▼────────────────────────────────────────────────┐ +│ vcn-oke (10.110.0.0/16) — cmp-dev-inv [TERRAFORM ✅] │ +│ │ +│ ┌─────────────────────────────────────────────────────────────────────────────┐ │ +│ │ sbn-lb-1 (10.110.128.0/20) · sbn-lb-2 (10.110.144.0/20) — PÚBLICAS │ │ +│ │ │ │ +│ │ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ┌─────────────┐ │ │ +│ │ │ OKE LB │ │ OKE LB │ │ OKE LB │ │ OKE LB pub │ │ │ +│ │ │ 10.110.133.131│ │ 10.110.135.3 │ │ 10.110.129.64 │ │137.131.236.2│ │ │ +│ │ │ cls-barramento│ │ cls-nexus │ │ cls-obs. │ │ cls-nexus │ │ │ +│ │ └───────┬───────┘ └──────┬────────┘ └──────┬────────┘ └──────┬──────┘ │ │ +│ └──────────┼─────────────────┼──────────────────┼─────────────────┼─────────┘ │ +│ │ │ │ │ │ +│ ┌──────────┼─────────────────┼──────────────────┼─────────────────┼─────────┐ │ +│ │ sbn-workers-1/2/3 (10.110.0–32.0/20) — PÚBLICAS — cmp-dev-nexus │ │ +│ │ │ │ +│ │ ┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────┐ │ │ +│ │ │ cls-dev-nexus │ │ cls-dev-barramento │ │ cls-dev-obs. │ │ │ +│ │ │ [TERRAFORM ✅] │ │ [TERRAFORM ✅] │ │ [TERRAFORM ✅] │ │ │ +│ │ │ np-dev-1 (x3 VMs) │ │ np-dev-2 (x3 VMs) │ │ np-dev-3 (x3) │ │ │ +│ │ │ ArgoCD ✅ │ │ ArgoCD ✅ │ │ ArgoCD ✅ │ │ │ +│ │ │ K8s v1.34.1 │ │ K8s v1.34.1 │ │ K8s v1.34.1 │ │ │ +│ │ └─────────────────────┘ └─────────────────────┘ └─────────────────┘ │ │ +│ └───────────────────────────────────────────────────────────────────────────┘ │ +│ │ +│ ┌─────────────────────────────────────────────────────────────────────────────┐ │ +│ │ sbn-api-gateway (10.110.192.0/20) — PRIVADA [TERRAFORM ✅] │ │ +│ │ │ │ +│ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │ +│ │ │ api-gateway-mfe-dev [TERRAFORM ✅] │ │ │ +│ │ │ PRIVATE · IP: 10.110.198.250 │ │ │ +│ │ │ Deployments: mfe-user → nexus-mfe-user-development (Object Storage) │ │ │ +│ │ └──────────────────────────────────────────────────────────────────────┘ │ │ +│ └─────────────────────────────────────────────────────────────────────────────┘ │ +└─────────────────────────────────────────────────────────────────────────────────────┘ + │ + ┌───────────▼──────────────┐ + │ OCI Object Storage │ + │ Namespace: grbb7qzeuoag │ + │ nexus-mfe-user-dev │ + │ mfe-shell-dev │ + │ [MANUAL / Pipeline CI] │ + └───────────────────────────┘ +``` + +--- + +### 0.2 Fluxo API Backend (atual) + +``` +Browser + │ + └─► Cloudflare (*.invista.com.br) [DNS Proxy + WAF] + │ + ▼ + LB Test_Crivo_Dev (10.8.4.127 — VCN-Shared — cmp-shared-inv) + Cert: *.invista.com.br (Cloudflare Origin CA) + │ roteamento por hostname + ▼ + api-gateway-nexus-dev (PRIVATE — 10.6.0.123 — VCN-DEV) + /api/auth /api/user /api/person /api/sso … + │ + │ DRG: VCN-DEV ↔ vcn-oke + ▼ + OKE Load Balancers internos (10.110.128-143.x — sbn-lb-1/2) + │ + ▼ + K8s Services / Ingress (cls-dev-nexus) + │ + ▼ + Pods (worker nodes — sbn-workers-1/2/3 — cmp-dev-nexus) +``` + +--- + +### 0.3 Fluxo MFE Frontend (planejado ⏳) + +``` +Browser + │ + └─► Cloudflare (mfe-user-dev.invista.com.br) [DNS Proxy] + │ + ▼ ⏳ PENDENTE: DRG attach vcn-oke → DRG-Invista-Shared + LB Test_Crivo_Dev (10.8.4.127 — VCN-Shared) + │ rota: mfe-user-dev.invista.com.br → 10.110.198.250:443 + │ + │ DRG: VCN-Shared → vcn-oke + ▼ + api-gateway-mfe-dev (PRIVATE — 10.110.198.250 — sbn-api-gateway) + │ / → index.html /{path*} → arquivos estáticos + ▼ + OCI Object Storage + nexus-mfe-user-development (namespace: grbb7qzeuoag) + + Atual (sem DNS): + https://guhal72tzyekzchzamhhi3lvgi.apigateway.sa-saopaulo-1.oci.customer-oci.com/ +``` + +--- + +### 0.4 Mapa de Compartments e Recursos + +``` +invistacloud (root) +│ +├── cmp-top-invista +│ └── cmp-dev-inv ──────────────────────────────────────────────────────────────┐ +│ │ │ +│ │ [TERRAFORM ✅] vcn-oke (10.110.0.0/16) │ +│ │ [TERRAFORM ✅] api-gateway-mfe-dev (10.110.198.250) │ +│ │ [TERRAFORM ✅] observability (alarms, log group, dashboards) │ +│ │ [MANUAL] VCN-DEV (10.6.0.0/16) │ +│ │ [MANUAL] api-gateway-nexus-dev (PRIVATE, 10.6.0.123) │ +│ │ [MANUAL] DRG attachments (VCN-DEV ↔ vcn-oke) │ +│ │ [PIPELINE CI] buckets: mfe-shell-dev │ +│ │ │ +│ └── cmp-dev-nexus ────────────────────────────────────────────────────┐ │ +│ │ │ │ +│ │ [TERRAFORM ✅] cls-dev-nexus (k8s v1.34.1, x3 VMs) │ │ +│ │ [TERRAFORM ✅] cls-dev-barramento (k8s v1.34.1, x3 VMs) │ │ +│ │ [TERRAFORM ✅] cls-dev-observabilidade (k8s v1.34.1, x3 VMs)│ │ +│ │ [OKE-managed] 5x Load Balancers (OKE Services) │ │ +│ │ [MANUAL] buckets: tfstate-*, invista-inventcloud-bucket3│ │ +│ └───────────────────────────────────────────────────────────────┘ │ +│ │ +└── cmp-shared-inv │ + [MANUAL] LB Test_Crivo_Dev (10.8.4.127, VCN-Shared 10.8.0.0/16) │ + [MANUAL] DRG-Invista-Shared │ + │ +OKE > DEV ←── VCNs orphans deletadas em 2026-02-25 ────────────────────────────┘ +``` + +--- + +### 0.5 O que é Terraform vs Manual vs Pipeline CI + +| Recurso | Gerenciado por | Repositório | +|---|---|---| +| VCN `vcn-oke` (10.110.0.0/16) + subnets + gateways | **Terraform** | `tf_oci_clusters/modules/network` | +| OKE clusters (x3) + node pools | **Terraform** | `tf_oci_clusters/modules/oke_cluster` | +| `api-gateway-mfe-dev` + deployments MFE | **Terraform** | `tf_oci_clusters/modules/api_gateway_mfe` | +| ArgoCD (Helm v7.3.0) em cada cluster | **Terraform** (null_resource) | `tf_oci_clusters/environments/dev/argocd.tf` | +| Observabilidade (alarms, log group, dashboards) | **Terraform** | `tf_oci_clusters/modules/observability` | +| Compartments `cmp-dev-nexus` / `cmp-dev-inv` | **Terraform** (flags `create_*=false` = não recria) | `tf_oci_clusters` | +| `VCN-DEV` (10.6.0.0/16) + subnets + gateways | **Manual** (OCI Console) | — | +| `api-gateway-nexus-dev` (PRIVATE) + deployments | **Manual** (OCI Console) | — | +| LB `Test_Crivo_Dev` (10.8.4.127) | **Manual** | — | +| DRG-Invista-Shared + attachments | **Manual** | — | +| DNS Cloudflare (*.invista.com.br) | **Manual** (API Cloudflare) | — | +| Object Storage buckets (mfe-*) | **Pipeline CI** (azure-pipelines.yml) | Repos dos MFEs | +| OKE Load Balancers (5x) | **OKE-managed** (K8s Service) | Apps no cluster | +| Kubeconfigs (`~/.kube/config-dev-*`) | **Terraform** (local-exec) | Gerado no apply | + +--- + ## 1. Compartments ### Hierarquia