Skip to content

Latest commit

Β 

History

History
852 lines (678 loc) Β· 42 KB

File metadata and controls

852 lines (678 loc) Β· 42 KB

Hack23 Logo

πŸ”„ Black Trigram (ν‘κ΄˜) β€” Business Continuity Plan

πŸ›‘οΈ Classification-Driven Business Resilience for Korean Martial Arts Education
🎯 Systematic Recovery Planning Through Enterprise-Grade Business Continuity

Owner Version Effective Date Review Cycle

πŸ“‹ Document Owner: CEO | πŸ“„ Version: 1.4 | πŸ“… Last Updated: 2026-04-21 (UTC)
πŸ”„ Review Cycle: Semi-Annual | ⏰ Next Review: 2026-10-21


🎯 Purpose Statement

Black Trigram's business continuity framework demonstrates how systematic recovery planning directly enables both educational resilience and cultural preservation excellence. Our classification-driven continuity approach serves as both operational necessity and demonstration of enterprise-grade security practices for an open-source educational gaming platform.

This plan ensures Korean martial arts education can continue during and after disruptive events, based on the Classification Framework impact analysis and recovery requirements. Our transparent continuity planning showcases how methodical preparation creates educational value through reduced downtime and enhanced service reliability for authentic Korean martial arts training.

β€” James Pether SΓΆrling, CEO/Founder


πŸ“Š Business Impact-Driven Recovery Framework

🎯 Business Impact Analysis Integration

Our business continuity planning is directly driven by the Classification Framework business impact analysis matrix, ensuring systematic recovery prioritization for educational services:

%%{
  init: {
    'theme': 'base',
    'themeVariables': {
      'primaryColor': '#1565C0',
      'primaryTextColor': '#fff',
      'lineColor': '#1565C0',
      'secondaryColor': '#4CAF50',
      'tertiaryColor': '#FF9800'
    }
  }
}%%
graph TB
    subgraph BIA["πŸ“Š Business Impact Analysis"]
        EDUCATIONAL[πŸŽ“ Educational Impact<br/>Learning Disruption]
        OPERATIONAL[βš™οΈ Operational Impact<br/>Platform Availability]
        REPUTATIONAL[🀝 Reputational Impact<br/>Cultural Trust]
        TECHNICAL[πŸ’» Technical Impact<br/>Service Degradation]
    end
    
    subgraph RECOVERY["πŸ”„ Recovery Prioritization"]
        CRITICAL[πŸ”΄ Critical Recovery<br/>RTO < 15 minutes]
        HIGH[🟠 High Priority<br/>RTO 15min-4 hours]
        MEDIUM[🟑 Medium Priority<br/>RTO 4-24 hours]
        STANDARD[🟒 Standard Recovery<br/>RTO > 24 hours]
    end
    
    subgraph BUSINESS["🏒 Educational Functions"]
        CORE[πŸ—οΈ Core Education<br/>Combat Training]
        SUPPORT[πŸ› οΈ Support Functions<br/>Asset Delivery]
        CONTENT[πŸ“‹ Content Management<br/>Repository Updates]
        MARKETING[πŸ“’ Community<br/>Social & Growth]
    end
    
    EDUCATIONAL --> CRITICAL
    OPERATIONAL --> HIGH
    REPUTATIONAL --> MEDIUM
    TECHNICAL --> HIGH
    
    CRITICAL --> CORE
    HIGH --> CORE
    HIGH --> SUPPORT
    MEDIUM --> SUPPORT
    STANDARD --> CONTENT
    STANDARD --> MARKETING
    
    style BIA fill:#1565C0,color:#fff
    style RECOVERY fill:#FF9800,color:#fff
    style BUSINESS fill:#4CAF50,color:#fff
Loading

πŸ“ˆ Business Impact Thresholds

Based on Classification Framework impact levels:

Business Function πŸŽ“ Educational Impact βš™οΈ Operational Impact 🀝 Reputational Impact πŸ’» Technical Impact 🎯 Recovery Priority
πŸ₯‹ Combat Training Platform High Critical High Critical πŸ”΄ Critical (RTO: 15 min)
πŸ“š Educational Content Very High High High High πŸ”΄ Critical (RTO: 15 min)
πŸ”§ Development Pipeline Moderate Moderate Low Moderate 🟑 Medium (RTO: 4-24 hrs)
πŸ“’ Community Engagement Low Low Moderate Low 🟒 Standard (RTO: > 24 hrs)

πŸ“Š Business Impact-Driven Decision Matrix

%%{
  init: {
    'theme': 'base',
    'themeVariables': {
      'primaryColor': '#FF9800',
      'primaryTextColor': '#F57C00',
      'lineColor': '#ff9800',
      'secondaryColor': '#4CAF50',
      'tertiaryColor': '#1565C0'
    }
  }
}%%
flowchart TD
    INCIDENT[🚨 Service Disruption<br/>Event Detected] --> ASSESS[πŸ“Š Business Impact<br/>Assessment]
    
    ASSESS --> EDUCATIONAL{πŸŽ“ Educational<br/>Impact Level?}
    ASSESS --> OPERATIONAL{βš™οΈ Operational<br/>Impact Level?}
    ASSESS --> REPUTATION{🀝 Reputational<br/>Impact Level?}
    ASSESS --> TECHNICAL{πŸ’» Technical<br/>Impact Level?}
    
    EDUCATIONAL -->|Critical/Very High| IMMEDIATE[⚑ Immediate Response<br/>< 15 minutes]
    OPERATIONAL -->|Critical| IMMEDIATE
    TECHNICAL -->|Critical| IMMEDIATE
    
    EDUCATIONAL -->|High/Moderate| URGENT[πŸ”„ Urgent Response<br/>< 1 hour]
    OPERATIONAL -->|High| URGENT
    REPUTATION -->|High/Moderate| URGENT
    TECHNICAL -->|High| URGENT
    
    EDUCATIONAL -->|Low| STANDARD[πŸ“… Standard Response<br/>< 24 hours]
    OPERATIONAL -->|Moderate/Low| STANDARD
    REPUTATION -->|Low| STANDARD
    TECHNICAL -->|Low/Negligible| STANDARD
    
    IMMEDIATE --> CRITICAL_RECOVERY[πŸ”΄ Critical Recovery<br/>Full Resources<br/>AWS + GitHub Failover]
    URGENT --> HIGH_RECOVERY[🟠 High Priority Recovery<br/>Escalated Resources<br/>Multi-region Activation]
    STANDARD --> NORMAL_RECOVERY[🟒 Normal Recovery<br/>Standard Resources<br/>Scheduled Maintenance]
    
    classDef incident fill:#D32F2F,stroke:#B71C1C,stroke-width:3px,color:#ffffff
    classDef assessment fill:#FF9800,stroke:#F57C00,stroke-width:2px,color:#ffffff
    classDef decision fill:#2196F3,stroke:#1565C0,stroke-width:2px,color:#ffffff
    classDef immediate fill:#D32F2F,stroke:#B71C1C,stroke-width:2px,color:#ffffff
    classDef urgent fill:#FF9800,stroke:#F57C00,stroke-width:2px,color:#ffffff
    classDef standard fill:#4CAF50,stroke:#2E7D32,stroke-width:2px,color:#ffffff
    classDef recovery fill:#7B1FA2,stroke:#7B1FA2,stroke-width:2px,color:#ffffff
    
    class INCIDENT incident
    class ASSESS assessment
    class EDUCATIONAL,OPERATIONAL,REPUTATION,TECHNICAL decision
    class IMMEDIATE immediate
    class URGENT urgent
    class STANDARD standard
    class CRITICAL_RECOVERY,HIGH_RECOVERY,NORMAL_RECOVERY recovery
Loading

🎯 Purpose & Scope

This Business Continuity Plan (BCP) establishes procedures to maintain and rapidly restore the Black Trigram Korean martial arts combat simulator during disruptions. As a frontend-only educational gaming platform with no backend infrastructure or persistent user data, our continuity strategy focuses on multi-region AWS CloudFront + S3 availability, GitHub Pages disaster recovery, source code protection, and build pipeline resilience.

πŸ“š Related Documentation

Document Focus Description
Security Architecture πŸ›‘οΈ Security Security controls and infrastructure
Architecture πŸ›οΈ Structure Frontend-only system architecture
Workflows πŸ”§ CI/CD Automated build and deployment pipelines
End-of-Life Strategy πŸ“… Lifecycle Long-term support and security patching
Financial Security Plan πŸ’° Financial Infrastructure cost analysis and security investment
Development Guide πŸ”§ Development Build procedures and development environment

πŸ” Scope Definition

Included Systems:

  • 🌐 Multi-region AWS deployment (CloudFront + S3)
  • πŸ”„ GitHub Pages disaster recovery hosting
  • πŸ“¦ Source code repository (GitHub)
  • πŸ”§ CI/CD pipeline (GitHub Actions)
  • 🎡 Audio/visual asset delivery (S3 + CloudFront CDN)
  • πŸ” Security scanning infrastructure
  • πŸ“‘ Route53 DNS with health checks

Out of Scope:

  • Backend services (none exist - frontend-only)
  • User data persistence (session-only by design)
  • Database recovery (no databases)
  • Authentication systems (no user accounts)

πŸ” Business Impact Analysis (BIA)

πŸ“Š Critical Function Identification

Our GitHub-based frontend infrastructure supports several critical functions that require comprehensive business continuity planning for authentic Korean martial arts education.

%%{
  init: {
    'theme': 'base',
    'themeVariables': {
      'primaryColor': '#e3f2fd',
      'primaryTextColor': '#0d47a1',
      'lineColor': '#2979FF'
    }
  }
}%%
graph TB
    subgraph "Educational Functions"
        A[Black Trigram Platform] --> B[Combat Training Engine]
        A --> C[Eight Trigram System]
        A --> D[Vital Point Education]
        A --> E[Korean Cultural Content]
        A --> F[Performance Tracking]
        A --> G[Training Mode]
    end

    subgraph "Technical Components"
        B -.-> B1[GitHub Pages Hosting]
        B -.-> B2[Three.js 3D Rendering]
        C -.-> C1[Trigram State Machine]
        C -.-> C2[Combat Physics Engine]
        D -.-> D1[Anatomical Data]
        D -.-> D2[Strike Precision System]
        E -.-> E1[Korean-English Bilingual]
        E -.-> E2[Audio Assets CDN]
        F -.-> F1[Browser Session Storage]
        G -.-> G1[Training Scenarios]
    end

    subgraph "Criticality Ranking"
        B1 -.-> CR1[High: Platform availability]
        C1 -.-> CR2[Critical: Core gameplay]
        D1 -.-> CR3[High: Educational content]
        E1 -.-> CR4[Medium: Cultural authenticity]
        F1 -.-> CR5[Low: Session-only data]
        G1 -.-> CR6[High: Learning progression]
    end

    classDef critical fill:#ff6666,stroke:#333,stroke-width:2px,color:white;
    classDef high fill:#ffaa66,stroke:#333,stroke-width:2px;
    classDef medium fill:#ffff66,stroke:#333,stroke-width:2px;
    classDef low fill:#66ff66,stroke:#333,stroke-width:2px;

    class C1,C2,CR2 critical;
    class B1,B2,D1,D2,G1,CR1,CR3,CR6 high;
    class E1,E2,CR4 medium;
    class F1,CR5 low;
Loading

πŸ”— Process Dependencies

Business Process Dependent Processes Technical System Components Criticality
Combat Training Trigram System, Vital Point Education CloudFront/S3, Three.js Engine Critical
Eight Trigram System Combat Training, Physics Engine TypeScript State Machine, Audio CDN Critical
Vital Point Education Combat Training, Anatomical Data GitHub Repository, JSON Data High
Korean Cultural Content Bilingual System, Audio Assets CDN Delivery, Font Resources High
Training Mode Combat Training, Progression Tracking Browser Session, Local Scoring High
Performance Tracking Training Mode, Combat Simulation Browser Session Storage Medium

πŸ–₯️ Technical System Mapping

%%{
  init: {
    'theme': 'base',
    'themeVariables': {
      'primaryColor': '#e3f2fd',
      'primaryTextColor': '#0d1b2a',
      'lineColor': '#2979FF'
    }
  }
}%%
flowchart TB
    subgraph "GitHub Infrastructure"
        GHP["πŸ“„ GitHub Pages\n(Disaster Recovery)"]
        GHR["πŸ—ƒοΈ GitHub Repository\n(Source Code)"]
        GHA["βš™οΈ GitHub Actions\n(CI/CD Pipeline)"]
    end

    subgraph "AWS Primary Infrastructure"
        CF["⚑ CloudFront CDN\n(Global Distribution)"]
        S3US["πŸ’Ύ S3 us-east-1\n(Primary Storage)"]
        R53["πŸ“‘ Route53\n(DNS + Health Checks)"]
    end

    subgraph "AWS Backup Region"
        S3EU["πŸ’Ύ S3 Backup Region\n(Redundancy)"]
    end

    subgraph "Browser Environment"
        FE["πŸ–₯️ Frontend Application\n(React + Three.js)"]
        SS["πŸ’Ύ Session Storage\n(Temporary State)"]
        AE["🎨 Audio/Visual Engine\n(Howler.js + Three.js)"]
    end

    subgraph "External Dependencies"
        CDN["🌐 npm CDN\n(Dependencies)"]
        FONT["πŸ“ Font CDN\n(Korean Fonts)"]
    end

    GHR --> GHA
    GHA --> S3US
    GHA --> GHP
    S3US --> CF
    S3US -.backup.-> S3EU
    R53 --> CF
    R53 -.failover.-> GHP
    CF --> FE
    GHP -.DR.-> FE
    FE --> SS
    FE --> AE
    CDN --> FE
    FONT --> FE

    classDef github fill:#f5f5f5,stroke:#2979FF,stroke-width:2px;
    classDef aws fill:#FF9900,stroke:#232F3E,stroke-width:2px;
    classDef browser fill:#e1f5fe,stroke:#2979FF,stroke-width:2px;
    classDef external fill:#fff3e0,stroke:#FF9800,stroke-width:2px;

    class GHP,GHR,GHA github;
    class CF,S3US,S3EU,R53 aws;
    class FE,SS,AE browser;
    class CDN,FONT external;
Loading

πŸ” Priority Matrix

%%{init: {
  "theme": "neutral",
  "themeVariables": {
    "quadrant1Fill": "#2E7D32",
    "quadrant2Fill": "#D32F2F",
    "quadrant3Fill": "#1565C0",
    "quadrant4Fill": "#FF9800",
    "quadrantTitleFill": "#ffffff",
    "quadrantPointFill": "#ffffff",
    "quadrantPointTextFill": "#ffffff",
    "quadrantXAxisTextFill": "#ffffff",
    "quadrantYAxisTextFill": "#ffffff"
  }
}}%%
quadrantChart
    title Educational Function Priority Matrix
    x-axis Low Impact --> High Impact
    y-axis Low Urgency --> High Urgency
    quadrant-1 "Prioritize"
    quadrant-2 "Critical Action"
    quadrant-3 "Monitor"
    quadrant-4 "Contingent Effort"
    "Combat Training Engine": [0.9, 0.95]
    "Eight Trigram System": [0.95, 0.9]
    "Vital Point Education": [0.8, 0.85]
    "Korean Cultural Content": [0.7, 0.65]
    "Training Mode": [0.75, 0.7]
    "Performance Tracking": [0.5, 0.4]
Loading

πŸ’° Impact Quantification

Educational Impact

Impact Category Description Severity Affected Users Recovery Priority
Learning Disruption Students unable to practice High All users Critical
Cultural Access Loss Korean martial arts education halted High Global Critical
Training Continuity Progression tracking lost (session) Medium Active learners High
Community Engagement Discussion and sharing interrupted Medium Community Medium

🏭 Operational Impact

Component Downtime Impact Mitigation Strategy Recovery Time
CloudFront CDN Complete platform unavailability GitHub Pages DR + Route53 failover 15 minutes
S3 Primary Storage Asset delivery failure S3 backup region + CloudFront 30 minutes
Route53 DNS DNS resolution failure Alternative DNS providers 1 hour
Build Pipeline Delayed updates and fixes Manual build deployment 4 hours
Source Repository Development halted Repository restore 2 hours
GitHub Pages (DR) Secondary DR unavailable CloudFront still primary Low priority
Security Scanning Vulnerability detection delayed Manual security review Low priority

🌐 Reputational Impact

Scenario Public Visibility Trust Impact Recovery Actions
Extended Outage (>24h) High Significant Public status updates, transparency
Data Loss (Open Source) Medium Moderate Repository recovery, commit history
Security Breach High Severe Incident disclosure, security audit
Korean Cultural Authenticity Medium Moderate Community engagement, expert review

πŸ“œ Regulatory Impact

Regulation Compliance Requirement Non-Compliance Risk Mitigation
GDPR (EU) Session data privacy Low (no persistence) Privacy policy, session-only
Accessibility (WCAG) Educational access Medium Responsive design, testing
Open Source License GPL-3.0 compliance Medium License file, attribution
Content Rating Age-appropriate content Low Educational focus, no violence

πŸ“Š System Classification & Recovery Objectives

βš–οΈ Service Level Classifications

System Component Classification Justification Recovery Priority
⚑ CloudFront CDN Critical Primary content delivery, global availability Critical
πŸ’Ύ S3 Storage (Primary) Critical Primary asset storage, application hosting Critical
πŸ“‘ Route53 DNS Critical DNS resolution, health checks, failover Critical
πŸ“„ GitHub Pages (DR) High Disaster recovery hosting High
πŸ“¦ Source Repository Critical IP protection, development continuity Critical
πŸ”§ CI/CD Pipeline Standard Can rebuild manually if needed Medium
πŸ’Ύ S3 Backup Region High Redundancy for primary storage High
πŸ” Security Scanning Standard Important but not blocking for recovery Low

⏱️ Recovery Time Objectives (RTO)

Incident Severity Target RTO Maximum Acceptable Downtime Justification
Critical 15 minutes 1 hour CloudFront/S3 outage (Route53 auto-failover to DR)
High 1 hour 4 hours DNS issues, S3 region failure
Medium 4 hours 24 hours Build pipeline failure, CI/CD issues
Low 1 week 2 weeks Documentation updates, minor issues

πŸ’Ύ Recovery Point Objectives (RPO)

Data Category Target RPO Backup Strategy Maximum Data Loss Acceptable
Source Code 0 minutes Git commits + GitHub backup Last commit only
Build Artifacts 1 hour S3 versioning + GitHub Actions cache Last build only
Static Assets 0 minutes S3 versioning + multi-region backup No loss acceptable
CloudFront Config 0 minutes Infrastructure as Code (CloudFormation) Last deployment only
User Session Data N/A No persistence (session-only) No recovery needed
Configuration Files 0 minutes Version controlled in repository Last commit only

🚨 Incident Response Procedures

1. CloudFront/S3 Outage

Detection: Route53 health checks, CloudWatch alarms, or user reports.

Immediate Actions:

  • Confirm outage via AWS Service Health Dashboard
  • Verify Route53 health check status
  • Automatic failover to GitHub Pages DR (if Route53 configured)
  • Manual DNS update to GitHub Pages if automatic failover fails
  • Communicate status to users via status page and social media
  • Check S3 backup region availability

Escalation: If outage exceeds 15 minutes without automatic failover, escalate to CTO and manually switch DNS.

2. Route53 DNS Failure

Detection: DNS resolution failures, health check alerts.

Immediate Actions:

  • Verify AWS account status and billing
  • Check Route53 service status
  • Notify Response Team immediately
  • Prepare manual DNS updates at domain registrar
  • Communicate with AWS Support (Enterprise Support)

Escalation: Critical incident - immediate CEO and CTO notification required.

3. Repository Compromise or Loss

Detection: Security alert, unauthorized commit, or repository inaccessible.

Immediate Actions:

  • Restrict repository access
  • Notify Security Lead and CEO
  • Initiate investigation and restore from latest backup if needed
  • Communicate with affected contributors

Escalation: If data loss is confirmed, follow Recovery Strategies and notify all stakeholders.

4. Build Pipeline Failure

Detection: Build failures, deployment errors, or CI/CD alerts.

Immediate Actions:

  • Review build logs and error messages
  • Roll back to last successful build if possible
  • Notify DevOps Lead

Escalation: If unresolved after 1 hour, escalate to CTO and consider manual deployment.


🚨 Emergency Activation

πŸ“ž Activation Triggers

Automatic Activation:

  • Complete platform outage lasting > 30 minutes
  • Security incident with critical impact classification
  • Repository compromise or unauthorized access
  • Build pipeline failure affecting deployments > 4 hours

Manual Activation Decision Criteria:

  • Extended service degradation (>4 hours)
  • Multiple system failures simultaneously
  • Korean cultural content integrity compromised
  • Educational continuity at risk for >24 hours

🚨 Phase-Based Emergency Response

Phase 1: Immediate Response (0-15 minutes)

Assessment and Safety:

  1. πŸ›‘οΈ Safety First: Ensure system security and data integrity
  2. πŸ“Š Impact Assessment: Determine scope using criticality matrix
  3. 🚨 Alert: Activate emergency communication procedures
  4. πŸ“‹ Documentation: Begin incident logging with timestamps

Initial Actions:

  • Access backup systems and alternative CDN
  • Notify key stakeholders per communication matrix
  • Verify repository integrity and access
  • Initiate damage assessment checklist

Phase 2: Short-term Response (15 minutes - 4 hours)

Operational Continuity:

  1. πŸ”„ System Recovery: Implement technical recovery per service-specific plans
  2. πŸ“’ Communication: Update users on status via GitHub Pages status banner
  3. 🀝 Supplier Coordination: Engage GitHub Support and CDN providers
  4. πŸ“‹ Resource Allocation: Deploy recovery team based on priorities

Critical System Procedures:

  • CDN hosting: Failover to backup provider or direct GitHub Pages
  • Build pipeline: Manual deployment procedures activation
  • Source repository: Restore from local clones or GitHub backup
  • Asset delivery: Activate cached or alternative CDN sources

Phase 3: Extended Response (4 hours - 72 hours)

Sustained Operations:

  1. βš™οΈ Alternative Operations: Manual build and deployment if needed
  2. πŸ”„ Recovery Monitoring: Track recovery progress against RTO/RPO targets
  3. πŸ“ˆ User Updates: Regular status updates every 4 hours via social channels
  4. πŸ“Š Impact Tracking: Monitor accessibility metrics and user feedback

Recovery Validation:

  • Verify all critical functions operational
  • Test Korean font rendering and audio playback
  • Validate combat physics and trigram system
  • Confirm educational content accuracy

Phase 4: Recovery and Normalization (72+ hours)

Return to Normal Operations:

  1. βœ… System Restoration: Gradual return to full functionality
  2. πŸ“‹ Validation: Comprehensive testing of all game systems
  3. πŸ“Š Impact Assessment: Final incident analysis and lessons learned
  4. πŸ“š Documentation: Update BCP with improvements and new procedures

Post-Incident Actions:

  • Conduct root cause analysis
  • Update continuity procedures
  • Brief team on lessons learned
  • Schedule follow-up testing

πŸ”§ Recovery Strategies

CloudFront + S3 Primary Recovery

  • Verify S3 bucket accessibility and CloudFront distribution status
  • Check CloudFormation stack health and outputs
  • Invalidate CloudFront cache if stale content served
  • Restore from S3 backup region if primary region fails
  • Update Route53 health checks and DNS records
  • Target recovery time: < 15 minutes (with auto-failover)

GitHub Pages Disaster Recovery Activation

  • Automatic: Route53 health checks trigger DNS failover
  • Manual: Update DNS A/CNAME records to point to GitHub Pages
  • Verify GitHub Pages deployment is current
  • Communicate DR activation to users
  • Target recovery time: < 15 minutes (automatic) or < 1 hour (manual)

S3 Multi-Region Recovery

  • Sync missing/corrupted objects from backup region
  • Verify S3 versioning and restore previous versions if needed
  • Update CloudFront origin if switching regions
  • Test content delivery after recovery
  • Target recovery time: < 30 minutes

Repository Recovery

  • Restore from GitHub backup or local clones
  • Validate integrity of restored codebase
  • Re-enable access with updated credentials
  • Verify commit history and signatures
  • Target recovery time: < 2 hours

Build Pipeline Recovery

  • Re-run failed builds after addressing root cause
  • Use manual build and deployment scripts if CI/CD is unavailable
  • Deploy directly to S3 if GitHub Actions unavailable
  • Document incident and update pipeline configuration as needed
  • Target recovery time: < 4 hours

πŸ›‘οΈ Multi-Region AWS + GitHub Resilience Strategy

πŸ“Š Supplier Dependency Matrix

Supplier/Service Service Type Criticality Backup Strategy Recovery Time
AWS CloudFront CDN Distribution Critical GitHub Pages DR + Route53 failover 15 minutes
AWS S3 (us-east-1) Primary Storage Critical S3 backup region sync 30 minutes
AWS Route53 DNS + Health Checks Critical Manual DNS at registrar 1 hour
GitHub Pages DR Hosting High Primary AWS infrastructure N/A (DR only)
GitHub Repository Source Code Storage Critical Local clones, contributor forks 30 minutes
GitHub Actions CI/CD Pipeline High Manual build scripts 4 hours
npm CDN Dependency Delivery High Local bundling, alternative CDN 2 hours
Font CDN (Google) Korean Font Delivery Medium Self-hosted fallback fonts 1 hour
Audio CDN Sound Asset Delivery Medium Local audio file fallbacks 2 hours

πŸ”„ Multi-Region Strategy

Our multi-region strategy leverages AWS global infrastructure with GitHub Pages as disaster recovery:

%%{
  init: {
    'theme': 'base',
    'themeVariables': {
      'primaryColor': '#e3f2fd',
      'primaryTextColor': '#212121',
      'lineColor': '#2979FF'
    }
  }
}%%
graph LR
    subgraph "AWS Primary (us-east-1)"
        CF[CloudFront CDN<br/>Global Edge Locations]
        S3US[S3 Primary<br/>us-east-1]
        R53[Route53<br/>Health Checks]
    end
    
    subgraph "AWS Backup Region"
        S3BACKUP[S3 Backup<br/>Multi-Region Sync]
    end
    
    subgraph "GitHub DR Infrastructure"
        GHP[GitHub Pages<br/>Disaster Recovery]
        GHR[GitHub Repository<br/>Source Backup]
    end
    
    subgraph "Global Users"
        US[North America]
        EU[Europe]
        AS[Asia Pacific]
    end
    
    R53 --> CF
    CF --> S3US
    S3US -.backup sync.-> S3BACKUP
    R53 -.health check failover.-> GHP
    GHR -.fork backup.-> GHP
    
    CF --> US
    CF --> EU
    CF --> AS
    
    GHP -.DR failover.-> US
    GHP -.DR failover.-> EU
    GHP -.DR failover.-> AS
    
    classDef aws fill:#FF9900,stroke:#232F3E,stroke-width:2px,color:white;
    classDef github fill:#f5f5f5,stroke:#2979FF,stroke-width:2px;
    classDef users fill:#2196F3,stroke:#1565C0,stroke-width:2px,color:white;
    
    class CF,S3US,S3BACKUP,R53 aws;
    class GHP,GHR github;
    class US,EU,AS users;
Loading

πŸ’Ύ Data Backup Strategy

Source Code Backup:

  • GitHub repository with full commit history
  • 50+ contributor forks provide distributed backup
  • Local development clones on team workstations
  • AWS CodeCommit mirror (optional for compliance)

Asset Backup:

  • S3 versioning enabled for all objects
  • Multi-region replication to backup S3 bucket
  • CloudFormation templates in version control
  • GitHub Pages maintains independent copy
  • No dynamic data to backup (session-only design)

Infrastructure as Code:

  • CloudFormation stacks version controlled
  • Route53 DNS records documented in repository
  • CloudFront distributions configuration as code
  • Deployment scripts in GitHub repository

πŸ“ˆ Maturity Roadmap for Platform Resilience

%%{
  init: {
    'theme': 'base',
    'themeVariables': {
      'primaryColor': '#e3f2fd',
      'primaryTextColor': '#0d1b2a',
      'lineColor': '#2979FF'
    }
  }
}%%
gantt
    title Black Trigram BCP Maturity Roadmap
    dateFormat YYYY-MM
    section Phase 1: Foundation
    Basic BCP Documentation           :done, 2024-11, 2025-02
    GitHub Pages Primary Hosting      :done, 2024-11, 2025-01
    Manual Recovery Procedures        :done, 2024-12, 2025-01
    
    section Phase 2: Enhancement
    Automated Monitoring Setup        :active, 2025-01, 2025-03
    Alternative CDN Configuration     :2025-02, 2025-04
    Repository Mirror Automation      :2025-03, 2025-05
    
    section Phase 3: Optimization
    Incident Response Automation      :2025-04, 2025-07
    Advanced Monitoring & Alerting    :2025-05, 2025-08
    Quarterly BCP Testing             :2025-06, 2025-12
    
    section Phase 4: Maturity
    Multi-CDN Automatic Failover      :2025-07, 2025-10
    Continuous Resilience Testing     :2025-08, 2026-01
    Annual BCP Audit & Improvement    :2025-11, 2026-02
Loading

πŸ“£ Communication Plan

Stakeholder Notification Method Escalation Contact Timeframe
CEO Phone, Email CTO Immediate
CTO Phone, Email CEO Immediate
DevOps Lead Slack, Email CTO Within 15 minutes
Security Lead Slack, Email CTO Within 15 minutes
All Staff Email, Slack CEO Within 1 hour
Users/Public Status Page, Social Media CEO/Comms Lead As needed

Escalation: If primary contact is unavailable, escalate to next in chain.

Templates: Use pre-approved incident notification templates for external communications.


πŸ§ͺ Testing & Maintenance

  • BCP Review: Annually, or after any major incident
  • Tabletop Exercises: Semi-annually, simulate major incident scenarios
  • Contact Verification: Quarterly, verify all contact information
  • Backup Verification: Monthly, test restoration from backups
  • Update Procedures: After any process or personnel change

πŸ‘₯ Roles & Responsibilities

Role Name/Contact Responsibilities
CEO [Name/Email/Phone] Final decision-maker, external communications
CTO [Name/Email/Phone] Technical lead, escalation point
DevOps Lead [Name/Email/Phone] Infrastructure, build pipeline, recovery execution
Security Lead [Name/Email/Phone] Security incidents, repository integrity
Communications [Name/Email/Phone] User/public notifications, status updates

Note: All team members must be familiar with this plan and their assigned roles.


ν‘κ΄˜μ˜ 길을 걸어라 - Walk the Path of the Black Trigram with Resilience

The Black Trigram Business Continuity Plan ensures that educational access to authentic Korean martial arts training remains available even during disruptions, maintaining our commitment to preserving and teaching traditional combat techniques through modern technology.


πŸ“š Related Documents

This Business Continuity Plan integrates with and references the complete ISMS documentation suite:

πŸ›οΈ Primary ISMS Framework

🚨 Operational Plans and Procedures

🚨 Operational Plans and Procedures

πŸ“Š Asset and Risk Management

🀝 Third Party & Supply Chain

πŸ—οΈ Project-Specific Documentation


πŸ“‹ Document Control:
βœ… Approved by: James Pether SΓΆrling, CEO
πŸ“€ Distribution: Public
🏷️ Classification: Confidentiality: Public Integrity: Moderate Availability: High
πŸ“… Effective Date: 2026-04-21
⏰ Next Review: 2026-10-21
🎯 Framework Compliance: ISO 27001 NIST CSF 2.0 CIS Controls