forked from diegoecab/oci-deal-accelerator
175 lines
6.6 KiB
YAML
175 lines
6.6 KiB
YAML
# OCI Well-Architected Framework — Pillar 4: Operational Efficiency
|
|
# Source: https://docs.oracle.com/en/solutions/oci-best-practices/best-practices-operating-cloud-deployments-efficiency.html
|
|
|
|
pillar:
|
|
name: "Operational Efficiency"
|
|
id: operational_efficiency
|
|
wa_reference: "https://docs.oracle.com/en/solutions/oci-best-practices/best-practices-operating-cloud-deployments-efficiency.html"
|
|
reference: "https://docs.oracle.com/en/solutions/oci-best-practices/best-practices-operating-cloud-deployments-efficiency.html"
|
|
|
|
categories:
|
|
- name: "Deployment Strategy"
|
|
id: deployment_strategy
|
|
checks:
|
|
- id: OPS-DEP-001
|
|
name: "Infrastructure as Code"
|
|
description: "Infrastructure as Code (Terraform, Resource Manager) for all resources"
|
|
auto_detect:
|
|
pass_if: "Terraform or Resource Manager specified for infrastructure provisioning"
|
|
gap_if: "no IaC strategy specified"
|
|
severity: HIGH
|
|
applies_when: always
|
|
|
|
- id: OPS-DEP-002
|
|
name: "CI/CD pipeline"
|
|
description: "CI/CD pipeline defined for application deployment"
|
|
auto_detect:
|
|
pass_if: "CI/CD pipeline specified (OCI DevOps, Jenkins, GitLab, etc.)"
|
|
gap_if: "no CI/CD pipeline defined"
|
|
severity: MEDIUM
|
|
applies_when: "has_application_workloads"
|
|
|
|
- id: OPS-DEP-003
|
|
name: "Deployment strategy"
|
|
description: "Blue/green or canary deployment strategy for production changes"
|
|
auto_detect:
|
|
pass_if: "deployment strategy (blue/green, canary, rolling) defined"
|
|
gap_if: "no deployment strategy for production changes"
|
|
severity: MEDIUM
|
|
applies_when: "has_production_applications"
|
|
|
|
- id: OPS-DEP-004
|
|
name: "Environment parity"
|
|
description: "Environment parity (dev/staging/prod use same IaC templates)"
|
|
auto_detect:
|
|
pass_if: "same IaC templates used across environments with variable overrides"
|
|
gap_if: "different provisioning methods across environments"
|
|
severity: MEDIUM
|
|
applies_when: "has_multiple_environments"
|
|
|
|
- name: "Workload Monitoring"
|
|
id: workload_monitoring
|
|
checks:
|
|
- id: OPS-MON-001
|
|
name: "OCI Monitoring alarms"
|
|
description: "OCI Monitoring alarms configured for key metrics"
|
|
auto_detect:
|
|
pass_if: "monitoring alarms defined for CPU, memory, disk, network"
|
|
gap_if: "no monitoring alarms configured"
|
|
severity: HIGH
|
|
applies_when: always
|
|
|
|
- id: OPS-MON-002
|
|
name: "Custom application metrics"
|
|
description: "Custom metrics for application-specific KPIs"
|
|
auto_detect:
|
|
pass_if: "custom metrics defined for application performance"
|
|
gap_if: "no application-level monitoring beyond infrastructure metrics"
|
|
severity: MEDIUM
|
|
applies_when: "has_application_workloads"
|
|
|
|
- id: OPS-MON-003
|
|
name: "Logging Analytics"
|
|
description: "Logging Analytics for centralized log analysis"
|
|
auto_detect:
|
|
pass_if: "OCI Logging Analytics configured"
|
|
gap_if: "no centralized log analysis solution"
|
|
severity: MEDIUM
|
|
applies_when: always
|
|
|
|
- id: OPS-MON-004
|
|
name: "APM configured"
|
|
description: "APM configured for application tracing"
|
|
auto_detect:
|
|
pass_if: "OCI APM or third-party APM configured"
|
|
gap_if: "no application performance monitoring"
|
|
severity: LOW
|
|
applies_when: "has_application_workloads"
|
|
|
|
- id: OPS-MON-005
|
|
name: "Database Management"
|
|
description: "Database Management enabled for DB performance monitoring"
|
|
auto_detect:
|
|
pass_if: "OCI Database Management service enabled"
|
|
gap_if: "databases without performance monitoring"
|
|
severity: MEDIUM
|
|
applies_when: "has_databases"
|
|
|
|
- id: OPS-MON-006
|
|
name: "Ops Insights"
|
|
description: "Ops Insights for capacity planning"
|
|
auto_detect:
|
|
pass_if: "Ops Insights configured for capacity planning"
|
|
gap_if: "no capacity planning solution"
|
|
severity: LOW
|
|
applies_when: "has_production_workloads"
|
|
|
|
- name: "OS Management"
|
|
id: os_management
|
|
checks:
|
|
- id: OPS-OSM-001
|
|
name: "OS Management Hub"
|
|
description: "OS Management Hub for patch management"
|
|
auto_detect:
|
|
pass_if: "OS Management Hub configured for compute fleet"
|
|
gap_if: "no automated OS patch management"
|
|
severity: MEDIUM
|
|
applies_when: "has_compute_instances"
|
|
|
|
- id: OPS-OSM-002
|
|
name: "Automated patching schedule"
|
|
description: "Automated patching schedule for compute instances"
|
|
auto_detect:
|
|
pass_if: "patching schedule defined with maintenance windows"
|
|
gap_if: "no patching schedule for compute instances"
|
|
severity: MEDIUM
|
|
applies_when: "has_compute_instances"
|
|
|
|
- id: OPS-OSM-003
|
|
name: "Vulnerability remediation SLA"
|
|
description: "Vulnerability remediation SLA defined"
|
|
auto_detect:
|
|
pass_if: "vulnerability remediation timelines defined by severity"
|
|
gap_if: "no vulnerability remediation SLA"
|
|
severity: MEDIUM
|
|
applies_when: "has_compute_instances"
|
|
|
|
- name: "Operations Support"
|
|
id: operations_support
|
|
checks:
|
|
- id: OPS-SUP-001
|
|
name: "Support plan level"
|
|
description: "Support plan level appropriate for workload criticality"
|
|
auto_detect:
|
|
pass_if: "Oracle support plan level specified and matches criticality"
|
|
gap_if: "no support plan consideration"
|
|
severity: LOW
|
|
applies_when: always
|
|
|
|
- id: OPS-SUP-002
|
|
name: "Notification topics"
|
|
description: "Notification topics configured for operational events"
|
|
auto_detect:
|
|
pass_if: "OCI Notifications configured for operational events"
|
|
gap_if: "no notification configuration"
|
|
severity: MEDIUM
|
|
applies_when: always
|
|
|
|
- id: OPS-SUP-003
|
|
name: "Operational runbooks"
|
|
description: "Runbooks documented for common operational procedures"
|
|
auto_detect:
|
|
pass_if: "operational runbooks planned or documented"
|
|
gap_if: "no operational runbooks"
|
|
severity: LOW
|
|
applies_when: "has_production_workloads"
|
|
|
|
- id: OPS-SUP-004
|
|
name: "Automated remediation"
|
|
description: "OCI Events + Functions for automated remediation"
|
|
auto_detect:
|
|
pass_if: "event-driven automation configured for common issues"
|
|
gap_if: "no automated remediation"
|
|
severity: LOW
|
|
applies_when: "has_production_workloads"
|