8.9 KiB
8.9 KiB
Análise: OCI Web Hosting para MFEs
Base: Oracle Documentation
Etapas da Documentação vs. Pipeline Atual
| Etapa | Documentação OCI | Status Pipeline mfe-user |
|---|---|---|
| 1 | Create Bucket | ✅ Parcial (cria se não existir) |
| 2 | Upload Files | ✅ Feito |
| 3 | Create PAR | ✅ Feito |
| 4 | Create API Gateway | ⚠️ Parcial (falta VCN/Subnet) |
| 5 | Setup Deployment | ⚠️ Parcial |
| 6 | Add Routes | ❌ Incompleto |
| 7 | Test | ❌ Não testado |
Estado Atual da Infraestrutura OCI (atualizado em 2026-02-23)
VCNs Existentes (Dev)
| Nome | CIDR | OCID |
|---|---|---|
| VCN-Shared | 10.8.0.0/16 | (compartment cmp-shared-inv) |
| vcn-oke (dev) | 10.110.0.0/16 | ocid1.vcn.oc1.sa-saopaulo-1.amaaaaaasks3yliapqrmikfzagpgqohuzjqik3hx63w7r2uajiqv5krvxkda |
| vcn-oke | 10.120.0.0/16 | ocid1.vcn.oc1.sa-saopaulo-1.amaaaaaasks3yliatayztbyd6doyk5oglrmrc57jekltu3xnnena6fvruwba |
Subnets - vcn-oke dev (10.110.0.0/16) - Terraform managed
| Nome | CIDR | Tipo | OCID |
|---|---|---|---|
| sbn-workers-1 | 10.110.0.0/20 | Workers | (Terraform) |
| sbn-workers-2 | 10.110.16.0/20 | Workers | (Terraform) |
| sbn-workers-3 | 10.110.32.0/20 | Workers | (Terraform) |
| sbn-lb-1 | 10.110.128.0/20 | Load Balancer | (Terraform) |
| sbn-lb-2 | 10.110.144.0/20 | Load Balancer | (Terraform) |
| sbn-api-gateway | 10.110.192.0/20 | API Gateway | ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaaooiy6bmikuaohtxyz2o3sjrjp2iqob3rim4j66vw4rzit7jcqjfa |
API Gateways
| Nome | IP | Status | Gerenciado |
|---|---|---|---|
| api-gateway-mfe-dev | 10.110.198.250 | ACTIVE | Terraform (tf_oci_clusters) |
Buckets (Object Storage)
| Nome | Status | Uso |
|---|---|---|
| nexus-mfe-user-development | ACTIVE | MFE User (Angular SPA) |
| nexus-mfe-shell-development | ACTIVE | Shell MFE Angular |
| nexus-mfe-auth-development | ACTIVE | MFE Auth |
| nexus-mfe-person-development | ACTIVE | MFE Person |
Infraestrutura Terraform (Concluido)
O API Gateway MFE e provisionado automaticamente via Terraform no repositorio tf_oci_clusters.
Modulo: modules/api_gateway_mfe/
Arquivos:
main.tf- Gateway + Deployment com rotas SPA (index.html fallback + static files)variables.tf- Inputs (compartment_id, subnet_id, env_name, mfe_deployments list)outputs.tf- gateway_id, gateway_ip, gateway_hostname, deployment_endpointsversions.tf- oracle/oci ~> 7.0
Subnet dedicada (adicionada ao modulo network)
A subnet sbn-api-gateway foi criada automaticamente pelo Terraform no modulo network:
- CIDR: 10.110.192.0/20 (cidrsubnet index 12)
- Route table: NAT + Service Gateway (privada)
- Security list: ingress 80/443 da VCN, egress all
- Toggle:
enable_api_gateway_subnet(bool)
Pipeline CI/CD
- Pipeline:
terraform-tf_oci_clusters(definition ID 51) - YAML:
.azure/azure-pipelines-pr-selective.yml - Variable Group:
oci-terraform(ID 34) - Build de sucesso: #5964 (todas as stages passaram)
Atividades Restantes
Conectividade de Rede (Pendente)
1. VCN Peering via DRG
O LB Test_Crivo_Dev esta na VCN-Shared (10.8.0.0/16) e o API Gateway esta na vcn-oke dev (10.110.0.0/16).
Para que o LB consiga rotear trafego para o API Gateway, e necessario:
-
Attach vcn-oke dev ao DRG-Invista-Shared
- DRG OCID:
ocid1.drg.oc1.sa-saopaulo-1.aaaaaaaazuiluiavm3zcrzelqs2f3k3sdy3fka5yytwjua37a2ksn446deza - VCN dev OCID:
ocid1.vcn.oc1.sa-saopaulo-1.amaaaaaasks3yliapqrmikfzagpgqohuzjqik3hx63w7r2uajiqv5krvxkda
- DRG OCID:
-
Configurar Route Tables
- Na VCN-Shared: rota 10.110.0.0/16 -> DRG
- Na vcn-oke dev: rota 10.8.0.0/16 -> DRG (para retorno)
-
Security Lists
- Permitir trafego entre 10.8.0.0/16 e 10.110.192.0/20 (subnet API GW)
2. Load Balancer - Backend e Routing
No LB Test_Crivo_Dev (IP 10.8.4.127):
- Criar backend set
bs-mfe-user-devapontando para10.110.198.250:443 - Adicionar routing rule no routing policy
crivo_routespara hostnamemfe-user-dev.invista.com.br - Health check na rota
/do API Gateway
3. DNS Cloudflare
Criar registro DNS em invista.com.br:
- Tipo: CNAME (proxied)
- Nome:
mfe-user-dev - Target: endpoint Cloudflare tunnel ou A record para IP do LB
🟢 MFEs que Precisam de Pipeline OCI
| MFE | Pipeline AWS | Pipeline OCI | Prioridade | Status |
|---|---|---|---|---|
| mfe-user | ✅ | ✅ Template OCI (devops) | Alta | Concluído 2026-02-25 |
| mfe-shell | ✅ | ✅ Template OCI (devops) | Alta | Concluído 2026-02-25 |
| mfe-auth | ✅ | ✅ Template OCI (devops) | Alta | Concluído 2026-02-25 |
| mfe-person | ✅ | ✅ Template OCI (devops) | Média | Concluído 2026-02-25 |
| mfe-poc | ✅ | ✅ Template OCI (devops) | Baixa | Concluído 2026-02-25 |
| mfe-formalization | ❌ | ✅ Template OCI (devops) | Baixa | Concluído 2026-02-25 |
Padrão adotado (2026-02-25):
- Template compartilhado:
azure-pipelines-templates/mfe/deploy-mfe-oci.yaml(branchmain) - Cada MFE:
azure-pipelines.ymlna branchdevopsextendendo o template - Trigger: branch
devops - Bucket:
mfe-<nome>-dev - Variable Group:
oci-terraform
Variable Group oci-terraform (ID 34)
O Variable Group oci-terraform no Azure DevOps contem as credenciais OCI usadas pelo Terraform e pipelines MFE.
Ultima atualizacao: 2026-02-22 (S3 credentials atualizadas para usuario danilo.duarte)
Variaveis
| Variavel | Tipo | Descricao |
|---|---|---|
OCI_TENANCY_OCID |
Plain | OCID da Tenancy OCI |
OCI_USER_OCID |
Plain | OCID do Usuario OCI (danilo.duarte) |
OCI_FINGERPRINT |
Plain | Fingerprint da chave publica |
OCI_PRIVATE_KEY_B64 |
Plain | Chave privada Base64 |
OCI_REGION |
Plain | sa-saopaulo-1 |
OCI_PRIVATE_KEY_PATH |
Plain | ./config/oci_api_key.pem |
TF_STATE_ACCESS_KEY |
Secret | S3-compatible access key (danilo.duarte) |
TF_STATE_SECRET_KEY |
Secret | S3-compatible secret key (danilo.duarte) |
TF_VAR_compartment_parent_ocid |
Secret | OCID do compartment pai |
EXISTING_COMPARTMENT_ID |
Plain | Compartment DEV |
ARGOCD_REPO_PAT |
Secret | PAT para ArgoCD |
CLOUDFLARE_API_TOKEN |
Secret | Token Cloudflare |
SSH_PUBLIC_KEY / SSH_PUBLIC_KEY_B64 |
Secret | Chave SSH para nodes/bastion |
TLS_CERT_B64 / TLS_KEY_B64 |
Secret | Certificados TLS |
Historico de problemas
- 2026-02-22: S3 credentials (
TF_STATE_ACCESS_KEY/SECRET_KEY) atualizadas. As credenciais anteriores pertenciam ao usuariowilliam.diasque estava desabilitado para S3. Criado novo Customer Secret Key paradanilo.duartevia OCI CLI.
Checklist de Atividades
Infraestrutura Terraform (Concluido)
- VCN vcn-oke dev (10.110.0.0/16) criada via Terraform
- Subnet dedicada
sbn-api-gateway(10.110.192.0/20) criada via Terraform - Modulo
api_gateway_mfecriado (tf_oci_clusters/modules/api_gateway_mfe/) - API Gateway
api-gateway-mfe-devprovisionado (IP 10.110.198.250) - Deployment MFE User com rotas SPA (index.html + static files)
- Pipeline CI/CD
terraform-tf_oci_clustersfuncionando (build #5964) - Variable Group
oci-terraformatualizado (S3 credentials corrigidas)
Conectividade (Pendente)
- Attach vcn-oke dev ao DRG-Invista-Shared
- Route tables entre VCN-Shared e vcn-oke dev
- Security lists para trafego cross-VCN
Load Balancer (Pendente)
- Backend set no LB Test_Crivo_Dev -> 10.110.198.250:443
- Routing rule para hostname mfe-user-dev.invista.com.br
- Health check configurado
DNS (Pendente)
- Cloudflare: registro mfe-user-dev.invista.com.br
MFEs adicionais (Concluído 2026-02-25)
- mfe-shell - adicionado ao mfe_deployments no Terraform
- mfe-auth - adicionado ao mfe_deployments no Terraform
- mfe-person - adicionado ao mfe_deployments no Terraform
- mfe-formalization - adicionado ao mfe_deployments no Terraform
- mfe-poc - adicionado ao mfe_deployments no Terraform
- Template OCI compartilhado criado:
azure-pipelines-templates/mfe/deploy-mfe-oci.yaml - azure-pipelines.yml atualizado em todos os 6 MFEs (branch
devops)
Comandos Úteis OCI
# Listar VCNs
oci network vcn list --compartment-id <compartment-id>
# Listar Subnets
oci network subnet list --compartment-id <compartment-id> --vcn-id <vcn-id>
# Listar API Gateways
oci api-gateway gateway list --compartment-id <compartment-id>
# Verificar deployment
oci api-gateway deployment get --deployment-id <id>
Referencias
- API Gateways - Todos os gateways (incluindo api-gateway-mfe-dev)
- Load Balancers - LBs e routing
- Terraform Importacao - Import de recursos
- API Gateway Config - Setup manual
- Cloudflare - DNS