forked from diegoecab/oci-deal-accelerator
initial version
This commit is contained in:
56
config/engagement-tiers.yaml
Normal file
56
config/engagement-tiers.yaml
Normal file
@@ -0,0 +1,56 @@
|
||||
# Engagement Tier Configuration
|
||||
# Defines how artifact depth scales with engagement complexity
|
||||
|
||||
tiers:
|
||||
small:
|
||||
name: "Small (Rapid Innovation)"
|
||||
description: "Single workload, single region, minimal compliance"
|
||||
signals:
|
||||
applications: "1-2"
|
||||
compliance_frameworks: 0
|
||||
regions: 1
|
||||
integration_points: "0-2"
|
||||
budget_monthly: "< $10K"
|
||||
design_timeline: "< 4 weeks"
|
||||
deck_slides: "6-8"
|
||||
examples:
|
||||
- "ADB-S + Analytics Cloud dashboard"
|
||||
- "Single app migration to OKE"
|
||||
- "PoC or pilot deployment"
|
||||
|
||||
standard:
|
||||
name: "Standard (Extend Capabilities)"
|
||||
description: "Multi-component architecture, moderate complexity"
|
||||
signals:
|
||||
applications: "3-10"
|
||||
compliance_frameworks: 1
|
||||
regions: "1-2"
|
||||
integration_points: "3-5"
|
||||
budget_monthly: "$10K-100K"
|
||||
design_timeline: "4-12 weeks"
|
||||
deck_slides: "10-12"
|
||||
examples:
|
||||
- "Oracle DB migration with HA/DR to ADB-S"
|
||||
- "Multi-tier application modernization"
|
||||
- "Hybrid cloud with FastConnect"
|
||||
|
||||
complex:
|
||||
name: "Complex (Business Transformation)"
|
||||
description: "Enterprise-wide transformation, multi-region, multiple compliance"
|
||||
signals:
|
||||
applications: "10+"
|
||||
compliance_frameworks: "2+"
|
||||
regions: "3+"
|
||||
integration_points: "5+"
|
||||
budget_monthly: "> $100K"
|
||||
design_timeline: "12+ weeks"
|
||||
deck_slides: "12-15"
|
||||
examples:
|
||||
- "Full data center migration (50+ workloads)"
|
||||
- "Multi-cloud architecture with OCI primary"
|
||||
- "Regulated industry platform (banking, healthcare)"
|
||||
|
||||
# Tier selection logic:
|
||||
# If any signal is "complex" AND 2+ signals are "complex" → Complex
|
||||
# If any signal is "complex" OR 3+ signals are "standard" → Standard
|
||||
# Else → Small
|
||||
35
config/kb-governance.yaml
Normal file
35
config/kb-governance.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
# =============================================================================
|
||||
# KB GOVERNANCE CONFIGURATION
|
||||
# =============================================================================
|
||||
#
|
||||
# Controls freshness tracking, confidence decay, review cadence, and
|
||||
# contribution requirements for all KB files.
|
||||
#
|
||||
# Referenced by: tools/kb_linter.py, tools/kb_cli.py
|
||||
# =============================================================================
|
||||
|
||||
---
|
||||
contribution:
|
||||
required_fields: [name, team, date, confidence]
|
||||
optional_fields: [client, context]
|
||||
confidence_levels: [validated, observed, reported, inferred]
|
||||
|
||||
freshness:
|
||||
warning_days: 180
|
||||
stale_days: 365
|
||||
|
||||
confidence_decay:
|
||||
validated: { fresh: 180, stale: 365, expired: 730 }
|
||||
observed: { fresh: 120, stale: 270, expired: 540 }
|
||||
reported: { fresh: 90, stale: 180, expired: 365 }
|
||||
inferred: { fresh: 90, stale: 180, expired: 365 }
|
||||
|
||||
review_triggers:
|
||||
- event: "Oracle database version release"
|
||||
action: "Review all feature matrix entries. Mark untested. Validate within 14 days."
|
||||
- event: "Oracle pricing change"
|
||||
action: "Update kb/pricing/ files. Verify cost calculator accuracy."
|
||||
- event: "After customer engagement"
|
||||
action: "Run After-Engagement Review (AER). Add findings and KB updates."
|
||||
- event: "Quarterly"
|
||||
action: "Run kb_linter.py. Refresh stale files. Review open findings."
|
||||
40
config/kb-owners.yaml
Normal file
40
config/kb-owners.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
# =============================================================================
|
||||
# KB DOMAIN OWNERSHIP
|
||||
# =============================================================================
|
||||
#
|
||||
# Each KB area has an owner responsible for quality and freshness.
|
||||
# The owner doesn't write everything — they ensure content is reviewed
|
||||
# and up to date on the specified cadence.
|
||||
#
|
||||
# Referenced by: tools/kb_linter.py, tools/kb_cli.py
|
||||
# =============================================================================
|
||||
|
||||
---
|
||||
domains:
|
||||
- area: "kb/services/"
|
||||
owner: { name: "Diego Cabrera", team: "Field Architecture" }
|
||||
review_cadence: "quarterly"
|
||||
|
||||
- area: "kb/patterns/"
|
||||
owner: { name: "Diego Cabrera", team: "Field Architecture" }
|
||||
review_cadence: "quarterly"
|
||||
|
||||
- area: "kb/compatibility/"
|
||||
owner: { name: "TBD", team: "Database Specialists" }
|
||||
review_cadence: "on Oracle version release + quarterly"
|
||||
|
||||
- area: "kb/pricing/"
|
||||
owner: { name: "TBD", team: "Solution Engineering" }
|
||||
review_cadence: "monthly (pricing changes frequently)"
|
||||
|
||||
- area: "kb/competitive/"
|
||||
owner: { name: "TBD", team: "Competitive Intelligence" }
|
||||
review_cadence: "quarterly + on competitor announcements"
|
||||
|
||||
- area: "kb/field-findings/"
|
||||
owner: { name: "All", team: "Everyone contributes" }
|
||||
review_cadence: "continuous"
|
||||
|
||||
- area: "kb/well-architected/"
|
||||
owner: { name: "TBD", team: "Cloud Architecture" }
|
||||
review_cadence: "on Oracle WA Framework updates"
|
||||
56
config/kb-tags.yaml
Normal file
56
config/kb-tags.yaml
Normal file
@@ -0,0 +1,56 @@
|
||||
# =============================================================================
|
||||
# KB TAG TAXONOMY
|
||||
# =============================================================================
|
||||
#
|
||||
# Standardized tags for consistent search and categorization across all KB files.
|
||||
# The CLI validates tags against this taxonomy and suggests corrections for
|
||||
# unknown tags using fuzzy matching.
|
||||
#
|
||||
# Referenced by: tools/findings_cli.py, tools/kb_linter.py
|
||||
# =============================================================================
|
||||
|
||||
---
|
||||
taxonomy:
|
||||
products:
|
||||
- adb-s
|
||||
- adb-d
|
||||
- dep
|
||||
- exacs
|
||||
- dbcs
|
||||
- oke
|
||||
- functions
|
||||
- vcn
|
||||
- drg
|
||||
- fastconnect
|
||||
- dms
|
||||
- goldengate
|
||||
- data-safe
|
||||
- vault
|
||||
|
||||
versions:
|
||||
- 19c
|
||||
- 21c
|
||||
- 23ai
|
||||
- 26ai
|
||||
|
||||
categories:
|
||||
- ha
|
||||
- dr
|
||||
- security
|
||||
- networking
|
||||
- performance
|
||||
- migration
|
||||
- cost
|
||||
- sizing
|
||||
- compliance
|
||||
|
||||
severity_tags:
|
||||
- blocker
|
||||
- workaround-available
|
||||
- cosmetic
|
||||
|
||||
lifecycle:
|
||||
- design
|
||||
- migration
|
||||
- day2
|
||||
- decommission
|
||||
160
config/oracle-pptx-layouts.yaml
Normal file
160
config/oracle-pptx-layouts.yaml
Normal file
@@ -0,0 +1,160 @@
|
||||
# Oracle FY26 POTX Template — Layout Mapping
|
||||
# Source: templates/Oracle_PPT-template_FY26.potx (104 layouts)
|
||||
# Slide size: 13.333 x 7.500 inches (16:9 widescreen)
|
||||
#
|
||||
# NOTE: .potx requires content-type patch to load with python-pptx.
|
||||
# The deck generator handles this automatically.
|
||||
#
|
||||
# Each layout has Dark/Light variants. Convention:
|
||||
# - Cover slides: Dark
|
||||
# - Content slides: Light
|
||||
# - Section dividers: Dark
|
||||
# - Closing/CTA slides: Dark
|
||||
|
||||
template_file: templates/Oracle_PPT-template_FY26.pptx
|
||||
slide_size:
|
||||
width_inches: 13.333
|
||||
height_inches: 7.500
|
||||
|
||||
# ── Layout Index Reference ─────────────────────────────────────────
|
||||
|
||||
layouts:
|
||||
# --- Cover / Title ---
|
||||
cover_pillar_dark: { index: 0, name: "Dark - Title_Pillar" }
|
||||
cover_pillar_light: { index: 1, name: "Light - Title_Pillar" }
|
||||
cover_2_dark: { index: 2, name: "Dark - Title_2" }
|
||||
cover_2_light: { index: 3, name: "Light - Title_2" }
|
||||
cover_full_image: { index: 4, name: "Title-full-image" }
|
||||
|
||||
# --- Section Dividers ---
|
||||
divider_image_light: { index: 14, name: "Light - Divider_Image" }
|
||||
divider_image_dark: { index: 15, name: "Dark- Divider_Image" }
|
||||
divider_light: { index: 16, name: "Light - Divider" }
|
||||
divider_dark: { index: 17, name: "Dark - Divider" }
|
||||
|
||||
# --- Impact / Statement ---
|
||||
impact_dark: { index: 26, name: "Dark - Impact Statement" }
|
||||
impact_light: { index: 27, name: "Light - Impact Statement" }
|
||||
|
||||
# --- Quote ---
|
||||
quote_data_dark: { index: 28, name: "Dark - Quote with Data Texture Background" }
|
||||
quote_data_light: { index: 29, name: "Light - Quote with Data Texture Background" }
|
||||
|
||||
# --- Single Metric ---
|
||||
metric_dark: { index: 32, name: "Dark - Single metric" }
|
||||
metric_light: { index: 33, name: "Light - Single metric" }
|
||||
|
||||
# --- Agenda / Table ---
|
||||
agenda_dark: { index: 45, name: "Dark - Agenda Table" }
|
||||
agenda_light: { index: 46, name: "Light - Agenda Table" }
|
||||
|
||||
# --- Multi Statement (3 blocks) ---
|
||||
multi_statement_dark: { index: 47, name: "Multi Statement – Dark" }
|
||||
multi_statement_light: { index: 48, name: "Multi Statement – Light" }
|
||||
|
||||
# --- 2 Column ---
|
||||
two_col_light: { index: 66, name: "Light - Title/Subtitle 2 Column" }
|
||||
two_col_dark: { index: 67, name: "Dark - Title/Subtitle 2 Column" }
|
||||
|
||||
# --- Content + Illustration (half image) ---
|
||||
content_illust_light: { index: 78, name: "Content + Illustration_Light" }
|
||||
content_illust_dark: { index: 79, name: "Content + Illustration_Dark" }
|
||||
|
||||
# --- Icons with text (3 or 4) ---
|
||||
three_icons_light: { index: 80, name: "Light - 3 Icons, Subhead and text" }
|
||||
three_icons_dark: { index: 81, name: "Dark - 3 Icons, Subhead and text" }
|
||||
four_icons_light: { index: 82, name: "Light - 4 Icons, Subhead and text" }
|
||||
four_icons_dark: { index: 83, name: "Dark - 4 Icons, Subhead and text" }
|
||||
|
||||
# --- Blank ---
|
||||
blank_dark: { index: 84, name: "Dark - Blank" }
|
||||
blank_light: { index: 85, name: "Light - Blank" }
|
||||
|
||||
# --- Split Content ---
|
||||
split_dark: { index: 86, name: "Dark - Split content with line" }
|
||||
split_light: { index: 87, name: "Light - Split content with line" }
|
||||
|
||||
# --- Content + Photo ---
|
||||
content_photo_light: { index: 72, name: "Light - Title, Content and 1/3 Photo" }
|
||||
content_photo_dark: { index: 73, name: "Dark - Title, Content and 1/3 Photo" }
|
||||
|
||||
# --- Safe Harbor ---
|
||||
safe_harbor_dark: { index: 95, name: "Dark - Safe harbor - short" }
|
||||
safe_harbor_light: { index: 96, name: "Light - Safe harbor - short" }
|
||||
|
||||
# ── Deck Type → Slide Mapping ──────────────────────────────────────
|
||||
|
||||
deck_types:
|
||||
business_case:
|
||||
description: "Business case for customer internal approval (CxO audience)"
|
||||
slides:
|
||||
- slide: cover
|
||||
layout: cover_pillar_dark
|
||||
content: "Customer Name — Business Case for OCI Migration"
|
||||
- slide: executive_summary
|
||||
layout: impact_light
|
||||
content: "1-sentence bold statement of the opportunity"
|
||||
- slide: business_drivers
|
||||
layout: multi_statement_light
|
||||
content: "3 key drivers: Why now, Cost of inaction, Strategic imperative"
|
||||
- slide: tco_comparison
|
||||
layout: two_col_light
|
||||
content: "Current State vs OCI — 3-year TCO side by side"
|
||||
- slide: roi_headline
|
||||
layout: metric_light
|
||||
content: "Key ROI number (e.g., '47% cost reduction over 3 years')"
|
||||
- slide: value_drivers
|
||||
layout: four_icons_light
|
||||
content: "4 value categories: Cost, Risk, Agility, Innovation"
|
||||
- slide: risk_assessment
|
||||
layout: two_col_light
|
||||
content: "Migration risks vs Do-nothing risks"
|
||||
- slide: roadmap
|
||||
layout: blank_light
|
||||
content: "Implementation phases with timeline (custom shapes)"
|
||||
- slide: recommendation
|
||||
layout: impact_dark
|
||||
content: "Clear ask: commitment amount, next steps"
|
||||
- slide: safe_harbor
|
||||
layout: safe_harbor_light
|
||||
content: "Oracle safe harbor statement"
|
||||
|
||||
proposal:
|
||||
description: "Technical architecture proposal (SA/technical audience)"
|
||||
slides:
|
||||
- slide: cover
|
||||
layout: cover_pillar_dark
|
||||
content: "Customer Name — OCI Architecture Proposal"
|
||||
- slide: agenda
|
||||
layout: agenda_light
|
||||
content: "Agenda items"
|
||||
- slide: executive_summary
|
||||
layout: impact_light
|
||||
content: "Value hypothesis statement"
|
||||
- slide: current_state
|
||||
layout: two_col_light
|
||||
content: "Current architecture vs target"
|
||||
- slide: architecture
|
||||
layout: blank_light
|
||||
content: "Architecture diagram (inserted as image)"
|
||||
- slide: service_details
|
||||
layout: content_illust_light
|
||||
content: "Key services with descriptions"
|
||||
- slide: environment_catalogue
|
||||
layout: blank_light
|
||||
content: "Environment matrix table (Prod/PreProd/Dev/DR)"
|
||||
- slide: cost_estimate
|
||||
layout: two_col_light
|
||||
content: "PAYG vs BYOL, monthly breakdown"
|
||||
- slide: wa_scorecard
|
||||
layout: blank_light
|
||||
content: "Well-Architected review results table"
|
||||
- slide: operations_raci
|
||||
layout: blank_light
|
||||
content: "RACI matrix for operational model"
|
||||
- slide: roadmap
|
||||
layout: blank_light
|
||||
content: "Migration phases with timeline"
|
||||
- slide: next_steps
|
||||
layout: impact_dark
|
||||
content: "Next steps and ask"
|
||||
218
config/output-formats.yaml
Normal file
218
config/output-formats.yaml
Normal file
@@ -0,0 +1,218 @@
|
||||
# Output Format Configuration
|
||||
# Defines the available output types and their default settings
|
||||
|
||||
output_selection:
|
||||
description: |
|
||||
The architect can specify output format when requesting deliverables:
|
||||
deck ← default, just the slide deck
|
||||
deck + drawio ← deck + editable diagram
|
||||
deck + doc ← deck + detailed technical document
|
||||
deck + xlsx ← deck + detailed cost spreadsheet
|
||||
deck + pdf ← deck + customer-facing PDF
|
||||
full ← everything: deck + drawio + doc + xlsx + pdf
|
||||
doc only ← technical document without deck
|
||||
pdf ← customer-facing PDF only (branded, no internal refs)
|
||||
If not specified, produce "deck" only.
|
||||
|
||||
deliver ← handover + go-live checklist + success criteria
|
||||
|
||||
default: "deck"
|
||||
|
||||
formats:
|
||||
deck:
|
||||
extension: ".pptx"
|
||||
generator: "tools/oci_deck_gen.py"
|
||||
description: "10-12 slide architecture proposal"
|
||||
|
||||
drawio:
|
||||
extension: ".drawio"
|
||||
generator: "tools/oci_diagram_gen.py"
|
||||
description: "Editable architecture diagram (draw.io)"
|
||||
|
||||
doc:
|
||||
extension: ".docx"
|
||||
generator: "tools/oci_doc_gen.py"
|
||||
description: "Detailed technical document (15-25 pages)"
|
||||
sections:
|
||||
- number: 1
|
||||
title: "Executive Summary"
|
||||
tiers: [small, standard, complex]
|
||||
content: "1-page summary: business driver, proposed solution, key outcomes"
|
||||
|
||||
- number: 2
|
||||
title: "Current State"
|
||||
tiers: [standard, complex]
|
||||
content: "People, process, technology assessment from Workload Profile"
|
||||
|
||||
- number: 3
|
||||
title: "Solution Architecture"
|
||||
tiers: [small, standard, complex]
|
||||
content: "Full architecture description, service rationale, topology diagram"
|
||||
|
||||
- number: 4
|
||||
title: "Architecture Decision Records (ADRs)"
|
||||
tiers: [standard, complex]
|
||||
content: "Each key design decision with context, options considered, and rationale"
|
||||
|
||||
- number: 5
|
||||
title: "High Availability & Disaster Recovery"
|
||||
tiers: [small, standard, complex]
|
||||
content: "HA/DR topology, RTO/RPO targets, failover procedures"
|
||||
|
||||
- number: 6
|
||||
title: "Security & Compliance"
|
||||
tiers: [small, standard, complex]
|
||||
content: "Security controls, identity model, compliance framework mapping"
|
||||
|
||||
- number: 7
|
||||
title: "Cost Estimate"
|
||||
tiers: [small, standard, complex]
|
||||
content: "Detailed cost breakdown with assumptions, PAYG vs BYOL, discount scenarios"
|
||||
|
||||
- number: 8
|
||||
title: "Migration Plan"
|
||||
tiers: [standard, complex]
|
||||
content: "Migration strategy per component, tooling, phased plan, rollback"
|
||||
|
||||
- number: 9
|
||||
title: "Operations Model"
|
||||
tiers: [standard, complex]
|
||||
content: "Day-2 operations: monitoring, patching, backup, incident response, RACI"
|
||||
|
||||
- number: 10
|
||||
title: "Well-Architected Scorecard"
|
||||
tiers: [standard, complex]
|
||||
content: |
|
||||
5-pillar WA assessment (Operational Excellence, Security, Reliability,
|
||||
Performance, Cost Optimization). Standard tier: score per pillar + top
|
||||
recommendations. Complex tier: full findings, gap analysis, and remediation roadmap.
|
||||
deck_equivalent: "slide 12 (summary) — doc section is the full underlying report"
|
||||
note: "Small tier: traffic-light summary stays in deck only, not expanded in doc"
|
||||
|
||||
- number: 11
|
||||
title: "Risk Register"
|
||||
tiers: [standard, complex]
|
||||
content: "Full risk table with likelihood, impact, severity, owner, mitigation"
|
||||
|
||||
- number: 12
|
||||
title: "Next Steps"
|
||||
tiers: [small, standard, complex]
|
||||
content: "3-5 SMART actions with owners and dates"
|
||||
|
||||
xlsx:
|
||||
extension: ".xlsx"
|
||||
generator: "tools/oci_cost_gen.py"
|
||||
description: "Detailed cost spreadsheet with tabs"
|
||||
|
||||
pdf:
|
||||
extension: ".pdf"
|
||||
generator: "tools/oci_pdf_gen.py"
|
||||
description: "Customer-facing PDF (branded, no internal KB references)"
|
||||
|
||||
deliver:
|
||||
extension: ".yaml"
|
||||
generator: "manual"
|
||||
description: "DELIVER phase artifacts: handover, go-live checklist, success criteria"
|
||||
artifacts:
|
||||
- "templates/handover-document.yaml"
|
||||
- "templates/go-live-checklist.yaml"
|
||||
- "templates/success-criteria.yaml"
|
||||
|
||||
# Slide Deck Structure (10-12 slides)
|
||||
deck_structure:
|
||||
slides:
|
||||
- number: 1
|
||||
type: title
|
||||
content: "Customer name, project, date, architect"
|
||||
style: "Dark background (#312D2A), white text"
|
||||
|
||||
- number: 2
|
||||
type: value_story
|
||||
content: "Business driver, value hypothesis, desired outcomes (SMART)"
|
||||
style: "Light background, left-aligned"
|
||||
|
||||
- number: 3
|
||||
type: architecture_diagram
|
||||
content: "Full architecture diagram (85% of slide)"
|
||||
style: "White background, diagram fills slide"
|
||||
|
||||
- number: 4
|
||||
type: decisions
|
||||
content: "4-6 key decisions in two-column table"
|
||||
style: "Clean table, alternating row shading"
|
||||
|
||||
- number: 5
|
||||
type: ha_dr
|
||||
content: "HA/DR topology + RTO/RPO table"
|
||||
style: "Split layout: diagram left, table right"
|
||||
|
||||
- number: 6
|
||||
type: security
|
||||
content: "Compliance checkmarks, security controls grid"
|
||||
style: "Icon grid, green checkmarks"
|
||||
|
||||
- number: 7
|
||||
type: cost
|
||||
content: "Summary table: PAYG vs BYOL, monthly/annual"
|
||||
style: "Clean table, bold totals, assumptions below"
|
||||
|
||||
- number: 8
|
||||
type: cost_comparison
|
||||
optional: true
|
||||
content: "Side-by-side: current vs OCI, or OCI vs AWS"
|
||||
style: "Chart or comparison table"
|
||||
|
||||
- number: 9
|
||||
type: migration
|
||||
content: "Phased timeline, tools, downtime approach"
|
||||
style: "Timeline visual, colored phases"
|
||||
|
||||
- number: 10
|
||||
type: operations_summary
|
||||
content: "Monitoring, patching, incident response, ops model highlights"
|
||||
style: "Icon grid, clean layout"
|
||||
|
||||
- number: 11
|
||||
type: risks
|
||||
content: "Top 5-6 risks with severity and mitigation"
|
||||
style: "Table with color-coded severity"
|
||||
|
||||
- number: 12
|
||||
type: scorecard
|
||||
content: "5-pillar WA scorecard + recommendations"
|
||||
style: "Horizontal bars, traffic-light colors"
|
||||
|
||||
- number: 13
|
||||
type: next_steps
|
||||
content: "3-5 concrete SMART next steps with dates"
|
||||
style: "Numbered list, forward-looking"
|
||||
|
||||
# Design Standards
|
||||
design_standards:
|
||||
colors:
|
||||
background: "#FFFFFF"
|
||||
dark_background: "#312D2A"
|
||||
primary_accent: "#2D5967"
|
||||
secondary_accent: "#AA643B"
|
||||
tertiary_accent: "#804998"
|
||||
text: "#312D2A"
|
||||
success: "#5E9624"
|
||||
warning: "#AE562C"
|
||||
error: "#C74634"
|
||||
table_alt_row: "#F5F4F2"
|
||||
|
||||
typography:
|
||||
font: "Segoe UI"
|
||||
titles: "24-28pt, bold, #312D2A"
|
||||
subtitles: "16-18pt, regular, #70665E"
|
||||
body: "12-14pt, regular, #312D2A"
|
||||
table_headers: "11pt, bold, white on #2D5967"
|
||||
table_body: "10-11pt, regular, #312D2A"
|
||||
footnotes: "8-9pt, italic, #70665E"
|
||||
|
||||
layout:
|
||||
margins: "0.5 inches all sides"
|
||||
title_position: "top-left, consistent"
|
||||
content_area: "below title bar, 85% of slide height"
|
||||
footer: "slide number bottom-right"
|
||||
rule: "No gradients, clip art, or stock photos"
|
||||
206
config/service-categories.yaml
Normal file
206
config/service-categories.yaml
Normal file
@@ -0,0 +1,206 @@
|
||||
# Service → Category/Color Mapping
|
||||
# Used by diagram generator and for consistent grouping across outputs
|
||||
# last_verified: 2025-09-11
|
||||
|
||||
categories:
|
||||
compute:
|
||||
color: "#2D5967"
|
||||
label: "Compute"
|
||||
services:
|
||||
- compute
|
||||
- vm
|
||||
- bare_metal
|
||||
- gpu
|
||||
- secure_desktops
|
||||
- batch
|
||||
|
||||
containers:
|
||||
color: "#2D5967"
|
||||
label: "Containers & Serverless"
|
||||
services:
|
||||
- oke
|
||||
- container_instances
|
||||
- functions
|
||||
|
||||
networking:
|
||||
color: "#2D5967"
|
||||
label: "Networking"
|
||||
services:
|
||||
# Load Balancing
|
||||
- load_balancer
|
||||
- flexible_lb
|
||||
- network_lb
|
||||
# Gateways
|
||||
- igw
|
||||
- internet_gateway
|
||||
- nat_gateway
|
||||
- natgw
|
||||
- service_gateway
|
||||
- sgw
|
||||
- drg
|
||||
- dynamic_routing_gateway
|
||||
# Connectivity
|
||||
- fastconnect
|
||||
- vpn
|
||||
# DNS
|
||||
- dns
|
||||
- traffic_management
|
||||
|
||||
security:
|
||||
color: "#2D5967"
|
||||
label: "Security"
|
||||
services:
|
||||
- waf
|
||||
- bastion
|
||||
- network_firewall
|
||||
- cloud_guard
|
||||
- data_safe
|
||||
- vault
|
||||
- security_zone
|
||||
- vulnerability_scanning
|
||||
- certificates
|
||||
- access_governance
|
||||
|
||||
storage:
|
||||
color: "#2D5967"
|
||||
label: "Storage"
|
||||
services:
|
||||
- object_storage
|
||||
- block_storage
|
||||
- file_storage
|
||||
|
||||
database:
|
||||
color: "#AA643B"
|
||||
label: "Database"
|
||||
services:
|
||||
# Oracle
|
||||
- adb
|
||||
- adb_s
|
||||
- adb_d
|
||||
- autonomous_db
|
||||
- autonomous_json
|
||||
- atp
|
||||
- adw
|
||||
- dbcs
|
||||
- db_system
|
||||
- exadata
|
||||
- exacs
|
||||
- exadata_exascale
|
||||
- exadata_c_at_c
|
||||
- timesten
|
||||
# Open Source
|
||||
- mysql
|
||||
- mysql_heatwave
|
||||
- postgresql
|
||||
- opensearch
|
||||
- nosql
|
||||
- cache
|
||||
- redis
|
||||
# Replication & Management
|
||||
- goldengate
|
||||
- data_catalog
|
||||
- database_migration
|
||||
- database_autonomous_recovery
|
||||
|
||||
integration:
|
||||
color: "#804998"
|
||||
label: "Integration"
|
||||
services:
|
||||
- streaming
|
||||
- kafka
|
||||
- queue
|
||||
- oci_queue
|
||||
- oic
|
||||
- integration_cloud
|
||||
- api_gateway
|
||||
- apigw
|
||||
- api_management
|
||||
- data_integration
|
||||
- data_integrator
|
||||
- service_connector_hub
|
||||
- soa_suite
|
||||
|
||||
ai_ml:
|
||||
color: "#1A8A72"
|
||||
label: "AI & Machine Learning"
|
||||
services:
|
||||
- generative_ai
|
||||
- generative_ai_agents
|
||||
- data_science
|
||||
- anomaly_detection
|
||||
- document_understanding
|
||||
- language
|
||||
- vision
|
||||
- speech
|
||||
- digital_assistant
|
||||
|
||||
analytics:
|
||||
color: "#1A8A72"
|
||||
label: "Analytics & Data"
|
||||
services:
|
||||
- oracle_analytics_cloud
|
||||
- essbase
|
||||
- big_data_service
|
||||
- data_flow
|
||||
- ai_data_platform
|
||||
|
||||
observability:
|
||||
color: "#2D5967"
|
||||
label: "Observability"
|
||||
services:
|
||||
- monitoring
|
||||
- logging
|
||||
- logging_analytics
|
||||
- apm
|
||||
- db_management
|
||||
- ops_insights
|
||||
- notifications
|
||||
- events
|
||||
- email_delivery
|
||||
- full_stack_dr
|
||||
- fleet_app_management
|
||||
- os_management
|
||||
- os_management_hub
|
||||
- java_management
|
||||
- resource_analytics
|
||||
- resource_manager
|
||||
|
||||
developer:
|
||||
color: "#2D5967"
|
||||
label: "Developer Services"
|
||||
services:
|
||||
- apex
|
||||
- visual_builder
|
||||
- devops
|
||||
- blockchain
|
||||
- iot
|
||||
- media_flow
|
||||
- media_streams
|
||||
- tuxedo
|
||||
- webcenter
|
||||
|
||||
hybrid:
|
||||
color: "#2D5967"
|
||||
label: "Hybrid Cloud"
|
||||
services:
|
||||
- vmware_solution
|
||||
- compute_cloud_at_customer
|
||||
- managed_mac
|
||||
- roving_edge
|
||||
|
||||
dormant:
|
||||
color: "#DFDCD8"
|
||||
label: "Dormant/Standby"
|
||||
border_color: "#9E9892"
|
||||
text_color: "#70665E"
|
||||
font_style: "italic"
|
||||
services:
|
||||
- dormant
|
||||
- standby
|
||||
|
||||
legacy:
|
||||
color: "#70665E"
|
||||
label: "Legacy/External"
|
||||
services:
|
||||
- legacy
|
||||
- external
|
||||
475
config/workload-profile-schema.yaml
Normal file
475
config/workload-profile-schema.yaml
Normal file
@@ -0,0 +1,475 @@
|
||||
# Workload Profile Schema
|
||||
# Defines all fields, types, defaults, and descriptions for the workload profile
|
||||
|
||||
schema:
|
||||
version: "1.1"
|
||||
description: "Schema for OCI Deal Accelerator Workload Profile"
|
||||
|
||||
fields:
|
||||
engagement:
|
||||
customer_name:
|
||||
type: string
|
||||
required: true
|
||||
description: "Customer organization name"
|
||||
industry:
|
||||
type: enum
|
||||
values: [financial_services, healthcare, retail, manufacturing, public_sector, technology, telecommunications, energy, education, other]
|
||||
required: true
|
||||
description: "Customer industry vertical"
|
||||
decision_timeline:
|
||||
type: string
|
||||
required: false
|
||||
description: "Target decision date or timeline (e.g., 'Q3 2026', '6 months')"
|
||||
competitive_situation:
|
||||
type: enum
|
||||
values: [aws_incumbent, azure_incumbent, gcp_incumbent, on_prem_only, multi_cloud, no_competitor]
|
||||
required: false
|
||||
default: "on_prem_only"
|
||||
description: "Current cloud/competitive landscape"
|
||||
|
||||
current_state:
|
||||
databases:
|
||||
type: list
|
||||
required: false
|
||||
default: []
|
||||
item_schema:
|
||||
name:
|
||||
type: string
|
||||
required: true
|
||||
description: "Database identifier or application name"
|
||||
engine:
|
||||
type: enum
|
||||
values: [oracle, mysql, postgresql, sql_server, mongodb, dynamodb, cassandra, redis, elasticsearch, other]
|
||||
required: true
|
||||
version:
|
||||
type: string
|
||||
required: false
|
||||
description: "Database version (e.g., '19c', '21c', '8.0')"
|
||||
size_gb:
|
||||
type: integer
|
||||
required: true
|
||||
description: "Current data size in GB"
|
||||
type:
|
||||
type: enum
|
||||
values: [OLTP, OLAP, mixed]
|
||||
required: true
|
||||
default: "OLTP"
|
||||
current_platform:
|
||||
type: enum
|
||||
values: [on_prem, aws, azure, gcp, other_cloud]
|
||||
required: true
|
||||
ha_current:
|
||||
type: string
|
||||
required: false
|
||||
description: "Current HA setup (e.g., 'RAC 2-node', 'Always On AG', 'none')"
|
||||
replication:
|
||||
type: string
|
||||
required: false
|
||||
description: "Current replication (e.g., 'Data Guard', 'GoldenGate', 'none')"
|
||||
connections_peak:
|
||||
type: integer
|
||||
required: false
|
||||
description: "Peak concurrent database connections"
|
||||
cpu_metrics:
|
||||
type: object
|
||||
required: false
|
||||
fields:
|
||||
avg_pct:
|
||||
type: float
|
||||
description: "Average CPU utilization percentage"
|
||||
p95_pct:
|
||||
type: float
|
||||
description: "P95 CPU utilization percentage"
|
||||
vcpus:
|
||||
type: integer
|
||||
description: "Number of vCPUs on current platform"
|
||||
storage_metrics:
|
||||
type: object
|
||||
required: false
|
||||
fields:
|
||||
iops_avg:
|
||||
type: integer
|
||||
description: "Average IOPS"
|
||||
iops_peak:
|
||||
type: integer
|
||||
description: "Peak IOPS"
|
||||
throughput_mbps:
|
||||
type: float
|
||||
description: "Storage throughput in MB/s"
|
||||
notable_features:
|
||||
type: list
|
||||
item_type: enum
|
||||
values: [partitioning, TDE, VPD, advanced_security, label_security, spatial, graph, text, APEX, DBMS_SCHEDULER, db_links, UTL_FILE, UTL_HTTP, external_tables, directory_objects, edition_based_redefinition, flashback, blockchain_tables, RAC, advanced_compression, in_memory]
|
||||
required: false
|
||||
default: []
|
||||
description: "Oracle features in active use — affects service selection and compatibility"
|
||||
tier:
|
||||
type: enum
|
||||
values: [platinum, gold, silver, bronze]
|
||||
required: false
|
||||
description: "Service tier assignment (Platinum/Gold/Silver/Bronze). Auto-assigned from SLA and compliance requirements using kb/patterns/service-tiering.yaml rules, then confirmed by architect."
|
||||
|
||||
compute:
|
||||
type: list
|
||||
required: false
|
||||
default: []
|
||||
item_schema:
|
||||
name:
|
||||
type: string
|
||||
required: true
|
||||
purpose:
|
||||
type: string
|
||||
required: false
|
||||
description: "What this compute serves (e.g., 'WebLogic app servers')"
|
||||
os:
|
||||
type: string
|
||||
required: false
|
||||
description: "Operating system (e.g., 'Oracle Linux 8', 'RHEL 9')"
|
||||
vcpus:
|
||||
type: integer
|
||||
required: false
|
||||
memory_gb:
|
||||
type: float
|
||||
required: false
|
||||
current_platform:
|
||||
type: enum
|
||||
values: [on_prem, aws, azure, gcp, other_cloud]
|
||||
required: true
|
||||
scaling_pattern:
|
||||
type: enum
|
||||
values: [steady, daily_peaks, seasonal, unpredictable]
|
||||
required: false
|
||||
default: "steady"
|
||||
|
||||
middleware:
|
||||
type: list
|
||||
required: false
|
||||
default: []
|
||||
item_schema:
|
||||
name:
|
||||
type: string
|
||||
required: true
|
||||
type:
|
||||
type: enum
|
||||
values: [WebLogic, Tomcat, WildFly, IIS, Node.js, other]
|
||||
required: true
|
||||
clustering:
|
||||
type: string
|
||||
required: false
|
||||
description: "Clustering configuration (e.g., 'Active-Active 4 nodes')"
|
||||
|
||||
messaging_and_eventing:
|
||||
type: list
|
||||
required: false
|
||||
default: []
|
||||
item_schema:
|
||||
name:
|
||||
type: string
|
||||
required: true
|
||||
type:
|
||||
type: enum
|
||||
values: [Kafka, RabbitMQ, SQS, MQ_Series, Oracle_AQ, other]
|
||||
required: true
|
||||
throughput_msgs_sec:
|
||||
type: integer
|
||||
required: false
|
||||
description: "Peak message throughput in messages/second"
|
||||
pattern:
|
||||
type: enum
|
||||
values: [pub_sub, point_to_point, streaming, event_driven]
|
||||
required: false
|
||||
default: "pub_sub"
|
||||
|
||||
storage:
|
||||
type: list
|
||||
required: false
|
||||
default: []
|
||||
item_schema:
|
||||
name:
|
||||
type: string
|
||||
required: true
|
||||
type:
|
||||
type: enum
|
||||
values: [NFS, block, object, archive]
|
||||
required: true
|
||||
size_tb:
|
||||
type: float
|
||||
required: false
|
||||
access_pattern:
|
||||
type: enum
|
||||
values: [frequent, infrequent, archive]
|
||||
required: false
|
||||
default: "frequent"
|
||||
|
||||
networking:
|
||||
type: object
|
||||
required: false
|
||||
fields:
|
||||
connectivity:
|
||||
type: enum
|
||||
values: [internet, VPN, dedicated, hybrid]
|
||||
required: false
|
||||
default: "internet"
|
||||
bandwidth_gbps:
|
||||
type: float
|
||||
required: false
|
||||
latency_requirement_ms:
|
||||
type: float
|
||||
required: false
|
||||
description: "Max acceptable latency in milliseconds"
|
||||
regions_needed:
|
||||
type: list
|
||||
item_type: string
|
||||
required: false
|
||||
default: []
|
||||
on_prem_integration:
|
||||
type: boolean
|
||||
required: false
|
||||
default: false
|
||||
|
||||
identity_and_security:
|
||||
type: object
|
||||
required: false
|
||||
fields:
|
||||
idp:
|
||||
type: enum
|
||||
values: [AD, Okta, SAML, OCI_IAM, other]
|
||||
required: false
|
||||
default: "OCI_IAM"
|
||||
compliance:
|
||||
type: list
|
||||
item_type: enum
|
||||
values: [PCI-DSS, HIPAA, SOC2, GDPR, FedRAMP, ISO27001]
|
||||
required: false
|
||||
default: []
|
||||
encryption_requirements:
|
||||
type: string
|
||||
required: false
|
||||
description: "Encryption requirements beyond default TDE (e.g., 'customer-managed keys via Vault')"
|
||||
vpd_rls:
|
||||
type: boolean
|
||||
required: false
|
||||
default: false
|
||||
description: "Virtual Private Database or Row-Level Security in use"
|
||||
data_masking:
|
||||
type: boolean
|
||||
required: false
|
||||
default: false
|
||||
audit_requirements:
|
||||
type: string
|
||||
required: false
|
||||
description: "Audit requirements (e.g., 'SOC2 Type II annual', 'PCI QSA quarterly')"
|
||||
|
||||
nosql_and_other_data:
|
||||
type: list
|
||||
required: false
|
||||
default: []
|
||||
item_schema:
|
||||
name:
|
||||
type: string
|
||||
required: true
|
||||
type:
|
||||
type: enum
|
||||
values: [MongoDB, DynamoDB, Cassandra, Redis, Elasticsearch, other]
|
||||
required: true
|
||||
size_gb:
|
||||
type: integer
|
||||
required: false
|
||||
access_pattern:
|
||||
type: enum
|
||||
values: [high_throughput, low_latency_cache, search, analytics]
|
||||
required: false
|
||||
|
||||
integration:
|
||||
type: list
|
||||
required: false
|
||||
default: []
|
||||
item_schema:
|
||||
name:
|
||||
type: string
|
||||
required: true
|
||||
type:
|
||||
type: enum
|
||||
values: [API_Gateway, ESB, ETL, CDC, file_transfer, iPaaS]
|
||||
required: true
|
||||
tool:
|
||||
type: string
|
||||
required: false
|
||||
description: "Specific tool (e.g., 'MuleSoft', 'Informatica', 'GoldenGate')"
|
||||
|
||||
requirements:
|
||||
availability:
|
||||
rto_hours:
|
||||
type: float
|
||||
required: true
|
||||
default: 1.0
|
||||
description: "Recovery Time Objective in hours"
|
||||
rpo_hours:
|
||||
type: float
|
||||
required: true
|
||||
default: 0.25
|
||||
description: "Recovery Point Objective in hours"
|
||||
sla_target:
|
||||
type: string
|
||||
required: true
|
||||
default: "99.95%"
|
||||
description: "Target availability SLA"
|
||||
performance:
|
||||
response_time_p95_ms:
|
||||
type: integer
|
||||
required: false
|
||||
description: "P95 response time target in milliseconds"
|
||||
throughput_tps:
|
||||
type: integer
|
||||
required: false
|
||||
description: "Target transactions per second"
|
||||
concurrent_users:
|
||||
type: integer
|
||||
required: false
|
||||
description: "Peak concurrent users"
|
||||
scalability:
|
||||
growth_annual_pct:
|
||||
type: float
|
||||
required: false
|
||||
default: 15
|
||||
description: "Expected annual growth percentage"
|
||||
peak_multiplier:
|
||||
type: float
|
||||
required: false
|
||||
default: 1.5
|
||||
description: "Peak load as multiplier of baseline (e.g., 3.0 for Black Friday)"
|
||||
scaling_speed:
|
||||
type: enum
|
||||
values: [immediate, minutes, hours]
|
||||
required: false
|
||||
default: "minutes"
|
||||
description: "How fast scaling needs to respond"
|
||||
migration:
|
||||
downtime_tolerance:
|
||||
type: string
|
||||
required: false
|
||||
default: "4 hours"
|
||||
description: "Acceptable migration downtime window"
|
||||
migration_timeline:
|
||||
type: string
|
||||
required: false
|
||||
description: "Target migration timeline (e.g., '6 months')"
|
||||
parallel_run_needed:
|
||||
type: boolean
|
||||
required: false
|
||||
default: false
|
||||
description: "Whether old and new systems must run in parallel during cutover"
|
||||
|
||||
# --- People & Process (ECAL Current State expansion) ---
|
||||
people:
|
||||
team_size:
|
||||
type: integer
|
||||
required: false
|
||||
description: "Total IT team size relevant to the engagement"
|
||||
roles:
|
||||
type: list
|
||||
item_type: string
|
||||
required: false
|
||||
default: []
|
||||
description: "Team roles (e.g., ['dba', 'cloud_engineer', 'devops', 'security', 'network'])"
|
||||
skill_gaps:
|
||||
type: list
|
||||
item_type: string
|
||||
required: false
|
||||
default: []
|
||||
description: "Skills the team lacks for the proposed solution (e.g., ['kubernetes', 'terraform', 'oci_console'])"
|
||||
managed_services_preference:
|
||||
type: enum
|
||||
values: [self_managed, co_managed, fully_managed]
|
||||
required: false
|
||||
default: "co_managed"
|
||||
description: "How much operational responsibility the customer wants to retain"
|
||||
change_readiness:
|
||||
type: enum
|
||||
values: [resistant, cautious, open, eager]
|
||||
required: false
|
||||
default: "cautious"
|
||||
description: "Organizational readiness for change"
|
||||
|
||||
process:
|
||||
deployment_process:
|
||||
type: enum
|
||||
values: [manual, scripted, ci_cd_basic, ci_cd_advanced, gitops]
|
||||
required: false
|
||||
default: "manual"
|
||||
description: "Current deployment maturity"
|
||||
change_management:
|
||||
type: enum
|
||||
values: [none, informal, cab_based, automated]
|
||||
required: false
|
||||
default: "informal"
|
||||
description: "Change approval process"
|
||||
incident_response:
|
||||
type: enum
|
||||
values: [none, ad_hoc, on_call_rotation, noc_24x7, outsourced]
|
||||
required: false
|
||||
default: "ad_hoc"
|
||||
description: "Current incident response model"
|
||||
backup_testing_frequency:
|
||||
type: enum
|
||||
values: [never, annually, quarterly, monthly]
|
||||
required: false
|
||||
default: "never"
|
||||
description: "How often backup/recovery is tested"
|
||||
|
||||
decision_drivers:
|
||||
primary:
|
||||
type: enum
|
||||
values: [cost_reduction, modernization, performance, compliance, hardware_eol, contract_expiry, consolidation]
|
||||
required: false
|
||||
description: "Primary motivation for the engagement"
|
||||
budget_sensitivity:
|
||||
type: enum
|
||||
values: [low, medium, high]
|
||||
required: false
|
||||
default: "medium"
|
||||
licensing:
|
||||
type: enum
|
||||
values: [BYOL, new_licenses, ULA, reduce_oracle_footprint]
|
||||
required: false
|
||||
default: "new_licenses"
|
||||
description: "Oracle licensing strategy"
|
||||
team_skills:
|
||||
type: list
|
||||
item_type: string
|
||||
required: false
|
||||
default: []
|
||||
description: "Team's existing skills (e.g., ['terraform', 'kubernetes', 'oracle_dba'])"
|
||||
political_constraints:
|
||||
type: string
|
||||
required: false
|
||||
description: "Non-technical constraints (e.g., 'board wants results by Q3', 'CTO prefers AWS')"
|
||||
|
||||
# Derived flags — auto-computed from the profile, not user-entered
|
||||
derived_flags:
|
||||
description: "Boolean flags computed from the workload profile for use by the WA validation engine"
|
||||
flags:
|
||||
- name: has_databases
|
||||
computed_from: "any entry in current_state.databases[]"
|
||||
- name: has_autonomous_database
|
||||
computed_from: "architecture includes ADB-S or ADB-D"
|
||||
- name: has_production_databases
|
||||
computed_from: "has_databases AND criticality in [mission_critical, business_critical]"
|
||||
- name: has_compute_instances
|
||||
computed_from: "architecture includes VM, BM, or OKE"
|
||||
- name: has_production_workloads
|
||||
computed_from: "any application with criticality in [mission_critical, business_critical]"
|
||||
- name: has_internet_facing_services
|
||||
computed_from: "architecture includes public subnet with LB or WAF"
|
||||
- name: has_fastconnect
|
||||
computed_from: "connectivity in [dedicated, hybrid]"
|
||||
- name: has_variable_workloads
|
||||
computed_from: "any compute with scaling_pattern != 'steady'"
|
||||
- name: requires_dr
|
||||
computed_from: "requirements.availability.rto_hours < 4 or explicit DR requirement"
|
||||
- name: enterprise_customer
|
||||
computed_from: "compliance list is not empty OR team has > 3 members"
|
||||
- name: has_oracle_licensed_services
|
||||
computed_from: "licensing in [BYOL, ULA]"
|
||||
- name: distributed_cloud_applicable
|
||||
computed_from: "identity_and_security.compliance includes data residency or sovereign requirements"
|
||||
Reference in New Issue
Block a user