Files
oci-deal-accelerator/kb/patterns/application-patterns.yaml
2026-03-18 18:03:44 -03:00

150 lines
6.9 KiB
YAML

# Application Patterns Library
# Proven application-level architecture patterns for common workload types
# Referenced during DESIGN/Future to select the right application architecture
patterns:
# --- Web Application Patterns ---
- id: app_web_traditional
name: "Traditional Web Application (3-Tier)"
description: "Classic presentation → application → database architecture on OCI"
applicable_when:
- "Java/J2EE, .NET, PHP, or Python web application"
- "WebLogic, Tomcat, or similar app server"
- "Stateful sessions or shared filesystem dependencies"
oci_architecture:
presentation_tier: "Load Balancer (public) → WAF"
application_tier: "Compute instances (VM.Standard.E4.Flex) in Instance Pool with auto-scaling"
database_tier: "ADB-S or DBCS depending on feature requirements"
networking: "Public subnet (LB) → Private subnet (app) → Private subnet (DB)"
technology_patterns: [compute_scaling, database_ha_adb_s, networking_basic, security_baseline]
considerations:
- "WebLogic clustering needs shared storage (FSS) or session replication"
- "Consider OKE if team has container skills and wants to modernize"
- id: app_web_cloud_native
name: "Cloud-Native Web Application"
description: "Containerized microservices on OKE with managed services"
applicable_when:
- "New application or major refactoring opportunity"
- "Team has Kubernetes experience"
- "Need rapid scaling and deployment"
oci_architecture:
presentation_tier: "Load Balancer → API Gateway"
application_tier: "OKE (managed K8s) with HPA auto-scaling"
database_tier: "ADB-S (OLTP) + autonomous JSON for microservice data"
messaging: "OCI Streaming (Kafka-compatible) for event-driven"
technology_patterns: [compute_scaling, database_ha_adb_s, networking_hub_spoke]
# --- Batch Processing Patterns ---
- id: app_batch_processing
name: "Batch / ETL Processing"
description: "Scheduled data processing, reporting, or ETL workloads"
applicable_when:
- "Nightly batch jobs, report generation, data warehousing"
- "Variable compute needs (high during batch windows)"
oci_architecture:
compute: "Preemptible instances or Functions for cost optimization"
orchestration: "Resource Scheduler or cron-based"
database: "ADB-S with auto-scaling (scale up during batch, scale down after)"
storage: "Object Storage for staging data"
technology_patterns: [database_ha_adb_s, compute_scaling]
considerations:
- "ADB-S auto-scaling takes 2-3 min to activate — pre-scale for predictable batch windows"
# --- Analytics Patterns ---
- id: app_analytics_lakehouse
name: "Analytics / Lakehouse"
description: "Data warehouse and analytics platform on OCI"
applicable_when:
- "Business intelligence, reporting, or advanced analytics"
- "Data from multiple sources needs consolidation"
- "Self-service analytics for business users"
oci_architecture:
ingestion: "GoldenGate or OCI Data Integration for CDC"
storage: "Object Storage (data lake) + ADB-DW (warehouse)"
analytics: "Oracle Analytics Cloud (OAC)"
governance: "Data Catalog for metadata management"
technology_patterns: [database_ha_adb_s]
# --- Hybrid Patterns ---
- id: app_hybrid_cloud
name: "Hybrid Cloud (On-Prem + OCI)"
description: "Application split across on-prem and OCI with connectivity"
applicable_when:
- "Cannot migrate everything at once"
- "Some workloads must stay on-prem (data gravity, regulation)"
- "Want to extend capacity to cloud"
oci_architecture:
connectivity: "FastConnect (primary) + IPSec VPN (backup)"
networking: "Hub-spoke VCN with DRG"
data_sync: "GoldenGate for bidirectional replication"
dns: "OCI DNS with split-horizon"
technology_patterns: [networking_hub_spoke, database_ha_adb_s]
considerations:
- "Latency between on-prem and OCI affects application performance"
- "FastConnect provisioning takes 2-4 weeks"
- "Consider data gravity — move compute to where data lives"
# --- Migration Patterns ---
- id: app_lift_and_shift
name: "Lift and Shift Migration"
description: "Move existing workloads to OCI with minimal changes"
applicable_when:
- "Timeline pressure (hardware EOL, contract expiry)"
- "Application is stable and not being modernized"
- "Want to get to cloud quickly, optimize later"
oci_architecture:
compute: "VM shapes matching current specs (use sizing ratios from kb/sizing/)"
database: "DBCS if feature compatibility requires, ADB-S if possible"
storage: "Block Volume (replacing SAN), FSS (replacing NFS)"
technology_patterns: [networking_basic, security_baseline]
considerations:
- "May not realize full cloud benefits initially"
- "Plan a Phase 2 optimization after stabilization"
- id: app_replatform
name: "Re-Platform (Lift, Tinker, Shift)"
description: "Migrate with targeted changes to leverage managed services"
applicable_when:
- "Want cloud benefits without full re-architecture"
- "Can accept minor application changes"
- "Database can move to managed service (ADB-S, MySQL HeatWave)"
oci_architecture:
compute: "OKE or Compute with auto-scaling"
database: "ADB-S (autonomous) vs DBCS (managed)"
storage: "Object Storage replacing file-based integrations"
technology_patterns: [database_ha_adb_s, compute_scaling]
considerations:
- "Test application compatibility with ADB-S restrictions early"
- "Connection string changes may require app config updates"
# --- Disaster Recovery Patterns ---
- id: app_dr_active_passive
name: "Active-Passive DR"
description: "Primary region active, standby region for failover"
applicable_when:
- "RTO 1-4 hours, RPO < 1 hour"
- "Cost-conscious — don't want to run full duplicate"
oci_architecture:
primary: "Full deployment in primary region"
standby: "Dormant compute (scaled down) + DB replica (Data Guard)"
failover: "DNS switchover + compute scale-up"
technology_patterns: [database_dr_cross_region, networking_hub_spoke]
- id: app_dr_active_active
name: "Active-Active Multi-Region"
description: "Both regions serve traffic, mutual failover"
applicable_when:
- "RTO < 15 min, RPO ~ 0"
- "Geo-distributed users"
- "Budget supports dual infrastructure"
oci_architecture:
both_regions: "Full deployment with load balancing"
database: "ADB-S with Autonomous Data Guard (bidirectional)"
traffic: "OCI Traffic Management for geo-steering"
technology_patterns: [database_dr_cross_region, database_ha_adb_s]
considerations:
- "Application must handle eventual consistency for cross-region writes"
- "Significantly higher cost (nearly 2x)"