Skip to content

OCI Architect Professional - Advanced Architecture Patterns

Table of Contents


Multi-Region Architecture

Global Application Design

Active-Active Multi-Region:

Global Users
    ↓
Traffic Manager (DNS-based routing)
    β”œβ”€β†’ Region 1 (us-phoenix-1): 50% traffic
    β”‚   β”œβ”€β”€ Load Balancer
    β”‚   β”œβ”€β”€ Application Tier (scaled)
    β”‚   β”œβ”€β”€ Database (Primary)
    β”‚   └── Object Storage (replicated)
    β”‚
    └─→ Region 2 (us-ashburn-1): 50% traffic
        β”œβ”€β”€ Load Balancer
        β”œβ”€β”€ Application Tier (scaled)
        β”œβ”€β”€ Database (Primary)
        └── Object Storage (replicated)

Traffic Management Policies: - Geolocation: Route based on user location - Performance: Route to fastest responding region - Failover: Automatic region failover on health check failure - Load Balance: Distribute across regions

Database Replication Strategies:

GoldenGate for Multi-Master:

Region 1 Database ←→ GoldenGate ←→ Region 2 Database
    ↓ Bi-directional replication ↓
Conflict resolution via timestamp/priority

Autonomous Data Guard Cross-Region:

Primary ADB (Region 1)
    ↓ Async replication
Standby ADB (Region 2)

Data Sovereignty and Compliance

Region-Specific Data Isolation:

EU Users
    ↓
EU Region (Frankfurt): GDPR-compliant
β”œβ”€β”€ EU customer data (stays in EU)
β”œβ”€β”€ Encryption with EU-based keys
└── Audit logs in EU region

US Users
    ↓
US Region (Phoenix): US compliance
β”œβ”€β”€ US customer data (stays in US)
β”œβ”€β”€ Encryption with US-based keys
└── Audit logs in US region

Cross-Region Data Transfer Controls:

# Restrict data replication based on tags
resource "oci_objectstorage_replication_policy" "gdpr_compliant" {
  bucket    = "customer-data-eu"
  name      = "no-cross-region"

  # Only replicate within EU regions
  destination_region_name = "eu-amsterdam-1"  # Not to US regions
  destination_bucket_name = "customer-data-eu-dr"
}


Hybrid Cloud Patterns

Advanced FastConnect Design

Multi-Circuit Redundancy:

Corporate Data Center
β”œβ”€β”€ Router 1
β”‚   β”œβ”€β”€ FastConnect 1 β†’ DRG β†’ VCN-Production
β”‚   └── FastConnect 2 β†’ DRG β†’ VCN-Production
└── Router 2
    β”œβ”€β”€ FastConnect 3 β†’ DRG β†’ VCN-Production
    └── VPN (Backup) β†’ DRG β†’ VCN-Production

DRG v2 Advanced Routing:

# Custom route distribution
resource "oci_core_drg_route_distribution" "custom" {
  drg_id           = oci_core_drg.hub.id
  distribution_type = "IMPORT"

  # Import specific routes
  statements {
    priority = 1
    action   = "ACCEPT"
    match_criteria {
      match_type = "DRG_ATTACHMENT_ID"
      drg_attachment_id = oci_core_drg_attachment.vcn1.id
    }
  }
}

# Custom route table for VCNs
resource "oci_core_drg_route_table" "vcn_routes" {
  drg_id           = oci_core_drg.hub.id
  import_drg_route_distribution_id = oci_core_drg_route_distribution.custom.id
}

Cloud@Customer Integration

Exadata Cloud@Customer:

Customer Data Center
β”œβ”€β”€ Exadata Cloud@Customer
β”‚   β”œβ”€β”€ Managed by Oracle (fully patched)
β”‚   β”œβ”€β”€ API compatible with OCI Exadata
β”‚   └── Same tooling as OCI
└── Connection to OCI Public Cloud
    β”œβ”€β”€ Private FastConnect
    └── Hybrid workload distribution

Use Cases: - Data residency requirements (must stay on-premises) - Low-latency database access - Gradual cloud migration - Regulatory compliance

Multi-Cloud Integration

OCI + Azure Integration:

OCI (Phoenix)                Azure (East US)
β”œβ”€β”€ VCN: 10.0.0.0/16    ←→  VNet: 10.1.0.0/16
β”œβ”€β”€ FastConnect          β”‚   ExpressRoute
└── Applications         β”‚   Applications
         ↓               ↓
    Shared Data Layer
    (replicated databases)

Oracle Interconnect for Azure: - Dedicated, low-latency connection - <2ms latency between clouds - Use OCI database with Azure applications - No internet transit


High Availability and DR

Maximum Availability Architecture (MAA)

Platinum MAA Design:

Production Region (Phoenix)
β”œβ”€β”€ RAC Database (2+ nodes)
β”‚   β”œβ”€β”€ Active Data Guard to Standby
β”‚   β”œβ”€β”€ Far Sync for zero data loss
β”‚   └── Flashback Database enabled
β”œβ”€β”€ Application Tier
β”‚   β”œβ”€β”€ 3+ ADs with autoscaling
β”‚   β”œβ”€β”€ Regional load balancer
β”‚   └── Instance pools (9+ instances)
└── Storage
    β”œβ”€β”€ Block Volume: Cross-AD replication
    β”œβ”€β”€ Object Storage: Cross-region replication
    └── File Storage: Snapshots every hour

DR Region (Ashburn)
β”œβ”€β”€ Standby Database (Active Data Guard)
β”‚   β”œβ”€β”€ Read-only queries allowed
β”‚   └── Automatic failover <30s
β”œβ”€β”€ Application Tier
β”‚   β”œβ”€β”€ Scaled-down (30% capacity)
β”‚   └── Auto-scale on failover trigger
└── Storage (replicated from primary)

Zero Data Loss Architecture:

Primary DB ←→ Far Sync Instance ←→ Standby DB
  (Phoenix)      (LA or Denver)       (Ashburn)
     ↓                                      ↓
Synchronous            Combined:       Asynchronous
(Zero loss)         Zero data loss    (Performance)

Chaos Engineering

Resilience Testing Patterns:

Availability Domain Failure Simulation:

# Simulate AD failure
def simulate_ad_failure(ad_name):
    instances = get_instances_in_ad(ad_name)

    for instance in instances:
        # Stop all instances in AD
        compute_client.instance_action(
            instance.id,
            action="STOP"
        )

    # Verify:
    # - Load balancer removes unhealthy backends
    # - Traffic routes to remaining ADs
    # - Alarms fire correctly
    # - Auto-scaling compensates

Database Failover Drill:

# Scheduled monthly DR drill
# 1. Initiate failover
oci db data-guard-association failover \
  --database-id $STANDBY_DB_ID \
  --database-admin-password $ADMIN_PASS

# 2. Update DNS
oci dns record update \
  --zone-name example.com \
  --domain app.example.com \
  --rdata $DR_LB_IP

# 3. Verify application functionality
# 4. Document RTO/RPO actuals
# 5. Reinstate original primary as new standby


Migration Strategies

Assessment and Planning

Migration Complexity Matrix: | Workload Type | Complexity | Strategy | Tools | |---------------|------------|----------|-------| | Stateless Web Apps | Low | Lift-and-Shift | Rackware, Custom Scripts | | Databases (Oracle) | Medium | Replatform | Data Guard, GoldenGate | | Legacy Apps | High | Refactor | Containerize, Modernize | | Data Warehouses | Medium | Rebuild | ADW, Data Integration |

Database Migration

Zero-Downtime Oracle Migration:

Source Database (On-Premises)
    ↓
GoldenGate Replication β†’β†’β†’ Target (OCI DB System)
    ↓                           ↓
Keep in sync               Apply changes real-time
    ↓                           ↓
Cutover: Switch application connection string

Steps:

# 1. Setup OCI target database
oci db system launch \
  --db-version "19.0.0.0" \
  --db-edition "ENTERPRISE_EDITION_EXTREME_PERFORMANCE"

# 2. Configure GoldenGate
# - Install GoldenGate on source
# - Install GoldenGate on target
# - Configure Extract (source)
# - Configure Replicat (target)

# 3. Initial data load
expdp user/pass DIRECTORY=dp_dir DUMPFILE=initial.dmp

# 4. Start replication
GGSCI> START EXTRACT ext_prod
GGSCI> START REPLICAT rep_prod

# 5. Monitor lag
GGSCI> INFO EXTRACT ext_prod, DETAIL

# 6. Cutover (when lag < 1 minute)
# - Stop application
# - Verify replication caught up
# - Update connection strings
# - Start application on OCI

Autonomous Database Migration:

# Using Data Pump
# 1. Export from source
expdp admin/pass@sourcedb \
  DIRECTORY=dump_dir \
  DUMPFILE=prod_export.dmp \
  FULL=Y

# 2. Upload to Object Storage
oci os object put \
  --bucket-name migrations \
  --file prod_export.dmp

# 3. Import to Autonomous Database
# Create credential
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'OBJ_STORE_CRED',
    username => 'tenancy/user',
    password => 'auth_token'
  );
END;

# Import data
BEGIN
  DBMS_CLOUD.DATA_PUMP(
    operation => 'IMPORT',
    credential_name => 'OBJ_STORE_CRED',
    file_uri_list => 'https://objectstorage.../prod_export.dmp',
    format => json_object('schema' value 'PRODSCHEMA')
  );
END;

Application Migration Patterns

Lift-and-Shift:

On-Premises VM
    ↓ Convert to OCI-compatible image
OCI Custom Image
    ↓ Deploy
OCI Compute Instance

Replatform (Containers):

Traditional App on VMs
    ↓ Containerize
Docker Images
    ↓ Deploy to
OKE (Kubernetes)
    ↓ Benefits
- Auto-scaling
- Self-healing
- Easier updates

Refactor (Cloud-Native):

Monolithic Application
    ↓ Break into
Microservices
    ↓ Deploy as
- API Gateway (entry point)
- Functions (serverless logic)
- Container Engine (stateful services)
- Autonomous Database (data layer)
- Object Storage (static content)


Performance at Scale

Global-Scale Architecture

CDN Integration:

Global Users
    ↓
CloudFlare/Akamai CDN
    β”œβ”€β”€ Cache static content
    β”œβ”€β”€ DDoS protection
    └── SSL termination
        ↓
OCI Load Balancer
    ↓
Origin Servers (OCI)

API Performance:

API Gateway
β”œβ”€β”€ Rate Limiting (per client)
β”œβ”€β”€ Response Caching
β”œβ”€β”€ Request/Response transformation
└── Authentication offload
    ↓
Backend Services
β”œβ”€β”€ Connection pooling
β”œβ”€β”€ Async processing (Queue/Stream)
└── Database connection optimization

Database Performance Optimization

Autonomous Database Tuning:

-- Auto-scaling monitors and adjusts
-- Automatic indexing
-- Automatic SQL tuning

-- Monitor performance
SELECT sql_id, cpu_time, elapsed_time, executions
FROM v$sql
WHERE cpu_time > 1000000
ORDER BY cpu_time DESC;

-- Real-time monitoring
SELECT * FROM v$active_session_history
WHERE sample_time > SYSDATE - INTERVAL '15' MINUTE
ORDER BY sample_time DESC;

RAC Performance:

Connection Load Balancing:
- Use SCAN (Single Client Access Name)
- Automatic workload distribution
- Runtime connection balancing

Service-Based Routing:
- OLTP service β†’ Node 1, 2
- Reporting service β†’ Node 3
- Batch service β†’ Node 4

Compute Performance at Scale

HPC Cluster Design:

HPC Cluster Network
β”œβ”€β”€ RDMA Cluster Network (100 Gbps)
β”œβ”€β”€ BM.HPC instances
β”‚   β”œβ”€β”€ Node 1-16: Compute nodes
β”‚   └── Node 17: Head node
└── NFS shared storage
    β”œβ”€β”€ File Storage (persistent)
    └── Block Volume (high IOPS)

Container Performance:

OKE Optimization:
β”œβ”€β”€ Node Pools per workload type
β”‚   β”œβ”€β”€ Compute-intensive: E4.Flex
β”‚   β”œβ”€β”€ Memory-intensive: E4.Flex (high RAM)
β”‚   └── GPU workloads: GPU shapes
β”œβ”€β”€ Pod anti-affinity rules
β”œβ”€β”€ Resource requests/limits
└── Horizontal Pod Autoscaler

Network Performance

Maximum Throughput Design:

FastConnect (10 Gbps)
    ↓
DRG
    β”œβ”€β†’ VCN 1 (Production)
    β”‚   └── BM.Standard.E4.128 (2x 50 Gbps NICs)
    β”œβ”€β†’ VCN 2 (Analytics)
    β”‚   └── BM.Standard.E4.128
    └─→ VCN 3 (Development)

Load Balancer Optimization:

resource "oci_load_balancer_load_balancer" "high_performance" {
  shape = "flexible"

  shape_details {
    minimum_bandwidth_in_mbps = 1000  # 1 Gbps
    maximum_bandwidth_in_mbps = 8000  # 8 Gbps
  }

  # Connection settings
  # Idle timeout for persistent connections
  # Enable HTTP/2 for multiplexing
}


Exam Tips

Critical Concepts

Multi-Region: - Active-Active for global performance - Traffic Manager for DNS-based routing - Cross-region database replication (GoldenGate, Data Guard) - Data sovereignty considerations

Hybrid: - FastConnect for private connectivity - DRG v2 for advanced routing - Cloud@Customer for data residency - Multi-cloud integration (Azure Interconnect)

HA/DR: - MAA for maximum availability - Zero data loss with Far Sync - Chaos engineering for validation - Automated failover procedures

Migration: - Assessment first (complexity matrix) - Zero-downtime with GoldenGate - Lift-and-shift, replatform, or refactor - Validate performance post-migration

Performance: - CDN for global content delivery - HPC clusters for compute-intensive - Autonomous DB auto-tuning - Network optimization (FastConnect, shapes)

Common Scenarios

Q: Global application, <50ms latency worldwide? A: Multi-region active-active + CDN + geolocation routing

Q: Zero data loss DR requirement? A: Data Guard with Far Sync + synchronous replication

Q: Migrate 50TB Oracle database with <1 hour downtime? A: GoldenGate replication + planned cutover

Q: On-premises data cannot leave country? A: Exadata Cloud@Customer or Dedicated Region

Q: 100,000 concurrent API requests? A: API Gateway + autoscaling instance pools + caching

Design Patterns

High Availability Checklist: - [ ] Multi-AD deployment - [ ] Load balancer with health checks - [ ] Database replication (Data Guard/RAC) - [ ] Auto-scaling configured - [ ] Monitoring and alerting - [ ] Automated failover tested

DR Checklist: - [ ] RPO/RTO defined - [ ] Cross-region replication - [ ] DR drills scheduled - [ ] Runbooks documented - [ ] Failover tested quarterly - [ ] Failback procedure validated


Summary

Multi-Region: Global scale, data sovereignty, active-active patterns

Hybrid: FastConnect, DRG v2, Cloud@Customer, multi-cloud

HA/DR: MAA, zero data loss, chaos engineering, automated failover

Migration: Assessment, zero-downtime, database migration tools

Performance: CDN, HPC, database tuning, network optimization


Next: Advanced Networking and Security