Análise: OCI Web Hosting para MFEs
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 (verificado em 2026-02-17)
VCNs Existentes (Dev)
| Nome |
CIDR |
OCID |
| vcn-oke |
10.120.0.0/16 |
ocid1.vcn.oc1.sa-saopaulo-1.amaaaaaasks3yliatayztbyd6doyk5oglrmrc57jekltu3xnnena6fvruwba |
| vcn-oke |
10.110.0.0/16 |
(múltiplas) |
Subnets Existentes (VCN 10.120.0.0/16)
| Nome |
CIDR |
Tipo |
OCID |
| sbn-workers-1 |
10.120.0.0/20 |
Workers |
ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaazfomdghi4x4jpluyjooy7ajvsf5y57jq2xcqwf35guodkcn2wrwq |
| sbn-workers-2 |
10.120.16.0/20 |
Workers |
ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaahaqguwt67kzs2dad2vyz3zpjl5ac7ximeqg55gmsnd33c2qikija |
| sbn-workers-3 |
10.120.32.0/20 |
Workers |
ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaafzhmhvz2scr6sfsygixz2gjfnecggiirh3rvyhjcmfn3ohmohj6a |
| sbn-lb-1 |
10.120.128.0/20 |
Load Balancer |
ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaa2ezw57uocis6s2eioypdsnt2p4pwm4fwnjz5jdaqigrm6jaqexeq |
| sbn-lb-2 |
10.120.144.0/20 |
Load Balancer |
ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaav7qtnmgil2qdt3lz6fnqkdcbymjd2dtjjeyo6y7z3s2omq4uvcqa |
API Gateways
| Nome |
Status |
| - |
❌ Nenhum criado |
Buckets (Object Storage)
| Nome |
Status |
| - |
❌ Nenhum criado |
Recomendação: Usar Subnet Existente
Para o API Gateway, podemos usar a subnet de Load Balancer existente:
- sbn-lb-1:
ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaa2ezw57uocis6s2eioypdsnt2p4pwm4fwnjz5jdaqigrm6jaqexeq
Atividades Necessárias para Completar o Setup OCI
🔴 Crítico - Infraestrutura OCI
1. Criar/Configurar VCN (Virtual Cloud Network)
- Descrição: API Gateway precisa de uma VCN com subnets
- Status: ❌ Precisa ser criado via Terraform
- Responsável: Infraestrutura
2. Obter Subnet OCID para API Gateway
- Descrição: Cada API Gateway precisa de uma subnet dedicada
- Status: ❌ Variável
OCI_SUBNET_OCID não existe no Variable Group
3. Criar Variable Group oci-terraform no Azure DevOps
- Variáveis necessárias:
OCI_USER_OCID
OCI_TENANCY_OCID
OCI_REGION
OCI_FINGERPRINT
OCI_PRIVATE_KEY_B64
OCI_COMPARTMENT_OCID
OCI_SUBNET_OCID ← NOVO
🟡 Pipeline - Melhorias Necessárias
4. Melhorar Routes do API Gateway (SPAs)
A pipeline atual usa rota única:
routes:
- path: /{req.*}
methods: [GET]
backend:
type: HTTP
url: "${PAR_URL}"
Problema: Não funciona bem para SPAs (Angular) que precisam de:
/ → retorna index.html
/route1 → retorna index.html (SPA routing)
*.js → retorna JavaScript
*.css → retorna CSS
*.html → retorna HTML
Solução: Implementar rotas múltiplas conforme documentação:
routes:
# Rota default - index.html para SPA
- path: /{req.*}
methods: [GET]
backend:
type: HTTP
url: "${PAR_URL}/${request.path[req]}"
# Regras específicas por tipo de arquivo
- path: /{ext}.js
methods: [GET]
backend:
type: HTTP
url: "https://{namespace}.objectstorage.{region}.oci.customer-oci.com/n/{bucket}/o/${request.path[req]}"
# wildcard *.js, *.css, etc.
5. Suporte a Múltiplos Ambientes
| Ambiente |
Bucket |
API Gateway |
| Dev |
nexus-{mfe}-dev |
{mfe}-dev-gateway |
| HML |
nexus-{mfe}-hml |
{mfe}-hml-gateway |
| PROD |
nexus-{mfe}-prod |
{mfe}-prod-gateway |
6. Tratar Variáveis por Ambiente
parameters:
- name: environment
type: string
values:
- dev
- hml
- prod
🟢 MFEs que Precisam de Pipeline OCI
| MFE |
Pipeline AWS |
Pipeline OCI |
Prioridade |
| mfe-user |
✅ |
⚠️ Incompleta |
Alta |
| mfe-shell |
✅ |
❌ Não existe |
Alta |
| mfe-auth |
✅ |
❌ Não existe |
Alta |
| mfe-person |
✅ |
❌ Não existe |
Média |
| mfe-poc |
✅ |
❌ Não existe |
Baixa |
| mfe-formalization |
❌ |
❌ Não existe |
Baixa |
🔧 Variable Group oci-terraform
O Variable Group oci-terraform no Azure DevOps contém as credenciais OCI usadas tanto pelo Terraform (para criar infraestrutura) quanto pelas pipelines de deploy MFE.
Variáveis Existentes (usadas pelo Terraform)
| Variável |
Tipo |
Descrição |
OCI_TENANCY_OCID |
Secret |
OCID da Tenancy OCI |
OCI_USER_OCID |
Secret |
OCID do Usuário OCI |
OCI_FINGERPRINT |
Secret |
Fingerprint da chave pública (~47 chars) |
OCI_PRIVATE_KEY_B64 |
Secret |
Chave privada (Base64 ou PEM) |
OCI_REGION |
普通 |
Região OCI (ex: sa-saopaulo-1) |
COMPARTMENT_PARENT_OCID |
Secret |
OCID do compartment pai |
Variáveis FALTANDO para API Gateway (precisam ser adicionadas)
| Variável |
Tipo |
Descrição |
OCI_SUBNET_OCID |
Secret |
OCID da Subnet para API Gateway |
Onde o oci-terraform é usado
-
Terraform OCI (tf_oci_clusters):
- Criar VCNs, Subnets, OKE Clusters
- Criar Buckets (se necessário via Terraform)
-
Pipelines MFE OCI:
mfe-user/azure-pipelines-oci.yml ← usa este grupo
- Upload de arquivos para Object Storage
- Criar PAR (Pre-Authenticated Request)
- Deploy no API Gateway
Fluxo Completo
┌─────────────────────────────────────────────────────────────────┐
│ 1. Terraform (tf_oci_clusters) usa oci-terraform │
│ └── Cria: VCN, Subnets, OKE Clusters, Buckets │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 2. Pipeline MFE usa oci-terraform │
│ └── Upload → Object Storage │
│ └── Create PAR │
│ └── Deploy → API Gateway │
└─────────────────────────────────────────────────────────────────┘
Checklist de Atividades
Infraestrutura (Terraform)
Azure DevOps
Pipeline mfe-user
Novos MFEs (criar pipelines)
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>
Referências