dojo.md 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/courses/GENERATION_LOG.md +45 -0
- package/courses/aws-lambda-debugging/course.yaml +11 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/api-gateway-integration.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/cloudwatch-logs-basics.yaml +64 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/cold-start-basics.yaml +70 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/environment-variable-issues.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/first-debugging-shift.yaml +73 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/handler-import-errors.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/iam-permission-errors.yaml +68 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/invocation-errors.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/lambda-timeout-errors.yaml +65 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/memory-and-oom.yaml +70 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/async-invocation-failures.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/cold-start-optimization.yaml +76 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/dynamodb-streams-debugging.yaml +70 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/intermediate-debugging-shift.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/lambda-concurrency-management.yaml +70 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/lambda-layers-debugging.yaml +76 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/sam-local-debugging.yaml +74 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/sqs-event-source.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/vpc-networking-issues.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/xray-tracing.yaml +62 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/advanced-debugging-shift.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/container-image-lambda.yaml +79 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/cross-account-invocation.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/eventbridge-patterns.yaml +79 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/iac-deployment-debugging.yaml +68 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/kinesis-stream-processing.yaml +64 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/lambda-at-edge.yaml +64 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/lambda-extensions-debugging.yaml +67 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/powertools-observability.yaml +79 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/step-functions-debugging.yaml +80 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/cost-optimization-strategy.yaml +67 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/expert-debugging-shift.yaml +62 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/incident-management-serverless.yaml +61 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/multi-region-serverless.yaml +67 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/observability-platform-design.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-architecture-design.yaml +64 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-data-architecture.yaml +66 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-migration-strategy.yaml +65 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-security-design.yaml +60 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-testing-strategy.yaml +62 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/board-serverless-strategy.yaml +63 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/consulting-serverless-adoption.yaml +57 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/industry-serverless-patterns.yaml +62 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/ma-serverless-integration.yaml +75 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/master-debugging-shift.yaml +61 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/organizational-serverless-transformation.yaml +65 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/regulatory-serverless.yaml +61 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/serverless-economics.yaml +65 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/serverless-future-technology.yaml +66 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/serverless-platform-design.yaml +71 -0
- package/courses/docker-container-debugging/course.yaml +11 -0
- package/courses/docker-container-debugging/scenarios/level-1/container-exit-codes.yaml +59 -0
- package/courses/docker-container-debugging/scenarios/level-1/container-networking-basics.yaml +69 -0
- package/courses/docker-container-debugging/scenarios/level-1/docker-logs-debugging.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-1/dockerfile-build-failures.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-1/environment-variable-issues.yaml +74 -0
- package/courses/docker-container-debugging/scenarios/level-1/first-debugging-shift.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-1/image-pull-failures.yaml +68 -0
- package/courses/docker-container-debugging/scenarios/level-1/port-mapping-issues.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-1/resource-limits-oom.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-1/volume-mount-problems.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-2/container-health-checks.yaml +73 -0
- package/courses/docker-container-debugging/scenarios/level-2/docker-compose-debugging.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-2/docker-exec-debugging.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-2/image-layer-optimization.yaml +81 -0
- package/courses/docker-container-debugging/scenarios/level-2/intermediate-debugging-shift.yaml +73 -0
- package/courses/docker-container-debugging/scenarios/level-2/logging-and-log-rotation.yaml +76 -0
- package/courses/docker-container-debugging/scenarios/level-2/multi-stage-build-debugging.yaml +76 -0
- package/courses/docker-container-debugging/scenarios/level-2/network-debugging-tools.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-2/pid1-signal-handling.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-2/security-scanning-basics.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-3/advanced-debugging-shift.yaml +77 -0
- package/courses/docker-container-debugging/scenarios/level-3/buildkit-optimization.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-3/container-filesystem-debugging.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-3/container-security-hardening.yaml +74 -0
- package/courses/docker-container-debugging/scenarios/level-3/disk-space-management.yaml +74 -0
- package/courses/docker-container-debugging/scenarios/level-3/docker-api-automation.yaml +72 -0
- package/courses/docker-container-debugging/scenarios/level-3/docker-daemon-issues.yaml +73 -0
- package/courses/docker-container-debugging/scenarios/level-3/docker-in-docker-ci.yaml +69 -0
- package/courses/docker-container-debugging/scenarios/level-3/overlay-network-debugging.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-3/production-container-ops.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-4/cicd-pipeline-design.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-4/container-monitoring-observability.yaml +63 -0
- package/courses/docker-container-debugging/scenarios/level-4/container-orchestration-strategy.yaml +62 -0
- package/courses/docker-container-debugging/scenarios/level-4/container-performance-engineering.yaml +64 -0
- package/courses/docker-container-debugging/scenarios/level-4/container-security-architecture.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-4/enterprise-image-management.yaml +58 -0
- package/courses/docker-container-debugging/scenarios/level-4/expert-debugging-shift.yaml +63 -0
- package/courses/docker-container-debugging/scenarios/level-4/incident-response-containers.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-4/multi-environment-management.yaml +65 -0
- package/courses/docker-container-debugging/scenarios/level-4/stateful-service-containers.yaml +65 -0
- package/courses/docker-container-debugging/scenarios/level-5/board-infrastructure-strategy.yaml +58 -0
- package/courses/docker-container-debugging/scenarios/level-5/consulting-container-strategy.yaml +61 -0
- package/courses/docker-container-debugging/scenarios/level-5/container-platform-architecture.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-5/container-platform-economics.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-5/container-technology-evolution.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-5/disaster-recovery-containers.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-5/industry-container-patterns.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-5/master-debugging-shift.yaml +62 -0
- package/courses/docker-container-debugging/scenarios/level-5/organizational-transformation.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-5/regulatory-compliance-containers.yaml +61 -0
- package/courses/kubernetes-deployment-troubleshooting/course.yaml +12 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/configmap-secret-issues.yaml +69 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/crashloopbackoff.yaml +68 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/deployment-rollout.yaml +56 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/first-troubleshooting-shift.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/health-probe-failures.yaml +70 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/imagepullbackoff.yaml +57 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/kubectl-debugging-basics.yaml +56 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/oomkilled.yaml +70 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/pending-pods.yaml +68 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/service-not-reachable.yaml +66 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/dns-resolution-failures.yaml +63 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/helm-deployment-failures.yaml +63 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/hpa-scaling-issues.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/ingress-routing-issues.yaml +63 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/init-container-failures.yaml +63 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/intermediate-troubleshooting-shift.yaml +66 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/network-policy-blocking.yaml +67 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/persistent-volume-issues.yaml +69 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/rbac-permission-denied.yaml +57 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/resource-quota-limits.yaml +64 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/advanced-troubleshooting-shift.yaml +69 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/cluster-upgrade-failures.yaml +71 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/gitops-drift-detection.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/job-cronjob-failures.yaml +67 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/monitoring-alerting-gaps.yaml +64 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/multi-container-debugging.yaml +68 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/node-pressure-evictions.yaml +70 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/pod-disruption-budgets.yaml +59 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/service-mesh-debugging.yaml +64 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/statefulset-troubleshooting.yaml +69 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/capacity-planning.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/cost-optimization.yaml +57 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/disaster-recovery-design.yaml +56 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/executive-communication.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/expert-troubleshooting-shift.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/incident-management-process.yaml +59 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/multi-cluster-operations.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/multi-tenancy-design.yaml +55 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/platform-engineering.yaml +59 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/security-hardening.yaml +58 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/behavioral-science.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/board-strategy.yaml +61 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/cloud-native-future.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/comprehensive-platform.yaml +57 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/consulting-engagement.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/industry-benchmarks.yaml +58 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/ma-integration.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/master-troubleshooting-shift.yaml +73 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/product-development.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/regulatory-compliance.yaml +76 -0
- package/courses/mysql-query-optimization/course.yaml +11 -0
- package/courses/mysql-query-optimization/scenarios/level-1/buffer-pool-basics.yaml +65 -0
- package/courses/mysql-query-optimization/scenarios/level-1/explain-basics.yaml +66 -0
- package/courses/mysql-query-optimization/scenarios/level-1/first-optimization-shift.yaml +78 -0
- package/courses/mysql-query-optimization/scenarios/level-1/innodb-index-fundamentals.yaml +68 -0
- package/courses/mysql-query-optimization/scenarios/level-1/join-basics.yaml +66 -0
- package/courses/mysql-query-optimization/scenarios/level-1/n-plus-one-queries.yaml +67 -0
- package/courses/mysql-query-optimization/scenarios/level-1/query-rewriting-basics.yaml +66 -0
- package/courses/mysql-query-optimization/scenarios/level-1/select-star-problems.yaml +68 -0
- package/courses/mysql-query-optimization/scenarios/level-1/slow-query-diagnosis.yaml +65 -0
- package/courses/mysql-query-optimization/scenarios/level-1/where-clause-optimization.yaml +65 -0
- package/courses/mysql-query-optimization/scenarios/level-2/buffer-pool-tuning.yaml +64 -0
- package/courses/mysql-query-optimization/scenarios/level-2/composite-index-design.yaml +71 -0
- package/courses/mysql-query-optimization/scenarios/level-2/covering-and-invisible-indexes.yaml +69 -0
- package/courses/mysql-query-optimization/scenarios/level-2/cte-and-window-functions.yaml +78 -0
- package/courses/mysql-query-optimization/scenarios/level-2/intermediate-optimization-shift.yaml +68 -0
- package/courses/mysql-query-optimization/scenarios/level-2/join-optimization.yaml +67 -0
- package/courses/mysql-query-optimization/scenarios/level-2/performance-schema-analysis.yaml +69 -0
- package/courses/mysql-query-optimization/scenarios/level-2/query-optimizer-hints.yaml +74 -0
- package/courses/mysql-query-optimization/scenarios/level-2/subquery-optimization.yaml +70 -0
- package/courses/mysql-query-optimization/scenarios/level-2/write-optimization.yaml +63 -0
- package/courses/mysql-query-optimization/scenarios/level-3/advanced-optimization-shift.yaml +71 -0
- package/courses/mysql-query-optimization/scenarios/level-3/connection-management.yaml +67 -0
- package/courses/mysql-query-optimization/scenarios/level-3/full-text-search.yaml +77 -0
- package/courses/mysql-query-optimization/scenarios/level-3/json-optimization.yaml +87 -0
- package/courses/mysql-query-optimization/scenarios/level-3/lock-contention-analysis.yaml +68 -0
- package/courses/mysql-query-optimization/scenarios/level-3/monitoring-alerting.yaml +63 -0
- package/courses/mysql-query-optimization/scenarios/level-3/online-schema-changes.yaml +79 -0
- package/courses/mysql-query-optimization/scenarios/level-3/partitioning-strategies.yaml +83 -0
- package/courses/mysql-query-optimization/scenarios/level-3/query-profiling-deep-dive.yaml +84 -0
- package/courses/mysql-query-optimization/scenarios/level-3/replication-optimization.yaml +66 -0
- package/courses/mysql-query-optimization/scenarios/level-4/aurora-vs-rds-evaluation.yaml +61 -0
- package/courses/mysql-query-optimization/scenarios/level-4/data-architecture.yaml +62 -0
- package/courses/mysql-query-optimization/scenarios/level-4/database-migration-planning.yaml +59 -0
- package/courses/mysql-query-optimization/scenarios/level-4/enterprise-governance.yaml +50 -0
- package/courses/mysql-query-optimization/scenarios/level-4/executive-communication.yaml +54 -0
- package/courses/mysql-query-optimization/scenarios/level-4/expert-optimization-shift.yaml +67 -0
- package/courses/mysql-query-optimization/scenarios/level-4/high-availability-architecture.yaml +60 -0
- package/courses/mysql-query-optimization/scenarios/level-4/optimizer-internals.yaml +62 -0
- package/courses/mysql-query-optimization/scenarios/level-4/performance-sla-design.yaml +52 -0
- package/courses/mysql-query-optimization/scenarios/level-4/read-replica-scaling.yaml +51 -0
- package/courses/mysql-query-optimization/scenarios/level-5/ai-database-future.yaml +45 -0
- package/courses/mysql-query-optimization/scenarios/level-5/behavioral-science.yaml +44 -0
- package/courses/mysql-query-optimization/scenarios/level-5/benchmark-design.yaml +47 -0
- package/courses/mysql-query-optimization/scenarios/level-5/board-strategy.yaml +48 -0
- package/courses/mysql-query-optimization/scenarios/level-5/comprehensive-platform.yaml +49 -0
- package/courses/mysql-query-optimization/scenarios/level-5/consulting-engagement.yaml +52 -0
- package/courses/mysql-query-optimization/scenarios/level-5/ma-database-integration.yaml +47 -0
- package/courses/mysql-query-optimization/scenarios/level-5/master-optimization-shift.yaml +56 -0
- package/courses/mysql-query-optimization/scenarios/level-5/product-development.yaml +48 -0
- package/courses/mysql-query-optimization/scenarios/level-5/regulatory-compliance.yaml +48 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/comprehensive-database-system.yaml +70 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-ai-future.yaml +81 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-behavioral-science.yaml +63 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-board-strategy.yaml +77 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-consulting-engagement.yaml +61 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-industry-benchmarks.yaml +64 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-ma-integration.yaml +71 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-product-development.yaml +72 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-regulatory-landscape.yaml +76 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/master-optimization-shift.yaml +66 -0
- package/courses/terraform-infrastructure-setup/course.yaml +11 -0
- package/courses/terraform-infrastructure-setup/scenarios/level-1/terraform-init-errors.yaml +72 -0
- package/dist/mcp/session-manager.d.ts +7 -4
- package/dist/mcp/session-manager.d.ts.map +1 -1
- package/dist/mcp/session-manager.js +23 -8
- package/dist/mcp/session-manager.js.map +1 -1
- package/package.json +1 -1
package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/industry-benchmarks.yaml
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: industry-benchmarks
|
|
3
|
+
level: 5
|
|
4
|
+
course: kubernetes-deployment-troubleshooting
|
|
5
|
+
type: output
|
|
6
|
+
description: "Kubernetes platform benchmarking — compare organizational maturity against industry standards, DORA metrics, and CNCF maturity model"
|
|
7
|
+
tags: [Kubernetes, benchmarking, DORA, CNCF, maturity-model, industry-standards, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're asked to benchmark your organization's Kubernetes platform
|
|
13
|
+
maturity against industry standards. The board wants to know: "Are
|
|
14
|
+
we best-in-class, average, or behind?"
|
|
15
|
+
|
|
16
|
+
Your organization's metrics:
|
|
17
|
+
| Metric | Your Org | Industry Avg | Elite |
|
|
18
|
+
|-------------------------------|-----------|--------------|----------|
|
|
19
|
+
| Deployment frequency | 50/week | 10/week | 500/week |
|
|
20
|
+
| Lead time (commit to prod) | 4 hours | 1 week | < 1 hour |
|
|
21
|
+
| Change failure rate | 12% | 15% | < 5% |
|
|
22
|
+
| Mean time to recovery (MTTR) | 30 min | 4 hours | < 10 min |
|
|
23
|
+
| Availability | 99.9% | 99.5% | 99.99% |
|
|
24
|
+
| Container adoption | 75% | 60% | 95% |
|
|
25
|
+
| GitOps adoption | 40% | 25% | 90% |
|
|
26
|
+
| Automated canary deployments | 10% | 5% | 60% |
|
|
27
|
+
| Security scan in CI/CD | 30% | 20% | 95% |
|
|
28
|
+
| Platform team ratio | 1:50 | 1:25 | 1:75 |
|
|
29
|
+
|
|
30
|
+
Your organization is above average but significantly behind elite
|
|
31
|
+
performers in several areas. The biggest gaps are in security scanning,
|
|
32
|
+
GitOps adoption, automated canary deployments, and MTTR.
|
|
33
|
+
|
|
34
|
+
The board asks:
|
|
35
|
+
1. What would it take to reach "Elite" in 18 months?
|
|
36
|
+
2. Where should we focus investment for maximum impact?
|
|
37
|
+
3. How do we compare to specific competitors?
|
|
38
|
+
4. What's the business value of each improvement?
|
|
39
|
+
|
|
40
|
+
Task: Write the benchmarking report with recommendations. Include:
|
|
41
|
+
maturity assessment against CNCF cloud-native maturity model, DORA
|
|
42
|
+
metrics analysis, gap prioritization (impact vs effort matrix),
|
|
43
|
+
investment roadmap to reach elite level, competitive positioning
|
|
44
|
+
analysis, and the business case for each improvement area.
|
|
45
|
+
|
|
46
|
+
assertions:
|
|
47
|
+
- type: llm_judge
|
|
48
|
+
criteria: "Maturity assessment is structured — use CNCF Cloud Native Maturity Model levels (Level 1-5: Build, Operate, Scale, Improve, Optimize). Organization is at Level 3 (Scale) for most dimensions, Level 2 (Operate) for security and observability. DORA metrics show High performer level (not Elite). Gap analysis identifies specific areas holding back each dimension"
|
|
49
|
+
weight: 0.35
|
|
50
|
+
description: "Maturity assessment"
|
|
51
|
+
- type: llm_judge
|
|
52
|
+
criteria: "Prioritization uses impact vs effort — highest ROI investments: (1) GitOps adoption (high impact, medium effort — standardizes deployments, reduces MTTR), (2) security scanning (high impact, low effort — integrate Trivy into CI/CD), (3) automated canary deployments (high impact, high effort — reduces change failure rate). Each priority has a business value quantification (reduced downtime $ impact, faster feature delivery)"
|
|
53
|
+
weight: 0.35
|
|
54
|
+
description: "Investment prioritization"
|
|
55
|
+
- type: llm_judge
|
|
56
|
+
criteria: "Roadmap and competitive framing are practical — 18-month roadmap: Q1 (GitOps + security scanning), Q2 (canary deployments + MTTR reduction), Q3 (platform self-service maturity), Q4-6 (advanced observability + chaos engineering). Competitive positioning: focus on areas that differentiate (deployment velocity directly impacts time-to-market). Don't compare to FAANG — compare to similar-sized companies in the same industry"
|
|
57
|
+
weight: 0.30
|
|
58
|
+
description: "Roadmap and framing"
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: ma-integration
|
|
3
|
+
level: 5
|
|
4
|
+
course: kubernetes-deployment-troubleshooting
|
|
5
|
+
type: output
|
|
6
|
+
description: "M&A Kubernetes platform integration — evaluate and merge acquired company's infrastructure with your platform"
|
|
7
|
+
tags: [Kubernetes, M&A, integration, migration, platform-consolidation, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your company (running multi-cluster Kubernetes on AWS) just acquired
|
|
13
|
+
a competitor running on Azure with a completely different stack:
|
|
14
|
+
|
|
15
|
+
Your platform:
|
|
16
|
+
- AWS EKS across 3 regions, 200+ microservices
|
|
17
|
+
- GitOps with ArgoCD, Istio service mesh
|
|
18
|
+
- Go and Java services, gRPC + REST APIs
|
|
19
|
+
- PostgreSQL on RDS, Redis on ElastiCache
|
|
20
|
+
- Prometheus + Grafana monitoring stack
|
|
21
|
+
|
|
22
|
+
Acquired company (AcquireCo):
|
|
23
|
+
- Azure AKS single region, 80 microservices
|
|
24
|
+
- Jenkins CI/CD, no GitOps
|
|
25
|
+
- Python and Node.js services, REST-only APIs
|
|
26
|
+
- MongoDB Atlas, Azure Cache for Redis
|
|
27
|
+
- Datadog for monitoring
|
|
28
|
+
|
|
29
|
+
Integration challenges:
|
|
30
|
+
1. Services need to communicate cross-platform during transition
|
|
31
|
+
2. Different authentication systems (AWS IAM vs Azure AD)
|
|
32
|
+
3. Different monitoring stacks create visibility gaps
|
|
33
|
+
4. Cultural: AcquireCo team used to full Azure access, now must follow
|
|
34
|
+
your RBAC and GitOps policies
|
|
35
|
+
5. Data residency: AcquireCo has EU customers, data must stay in EU
|
|
36
|
+
6. Combined customer base requires 99.99% availability (was 99.9%)
|
|
37
|
+
7. Timeline pressure: CEO wants "fully integrated" in 12 months
|
|
38
|
+
8. Budget: $2M for integration project
|
|
39
|
+
|
|
40
|
+
The CTO asks you to develop the integration strategy and lead
|
|
41
|
+
execution. 40 AcquireCo engineers need to be productive on your
|
|
42
|
+
platform within 3 months.
|
|
43
|
+
|
|
44
|
+
Task: Design the M&A platform integration strategy. Write: the
|
|
45
|
+
assessment framework for evaluating AcquireCo's platform, the phased
|
|
46
|
+
migration approach (coexistence → migration → consolidation),
|
|
47
|
+
cross-cloud connectivity during transition, team onboarding plan,
|
|
48
|
+
data migration strategy, risk analysis, and timeline with milestones.
|
|
49
|
+
|
|
50
|
+
assertions:
|
|
51
|
+
- type: llm_judge
|
|
52
|
+
criteria: "Assessment and phased approach are defined — Phase 1 (months 1-3): Coexistence — establish cross-cloud connectivity (VPN/peering), unified monitoring (ship AcquireCo metrics to your Prometheus), single incident management process. Phase 2 (months 4-8): Migration — migrate AcquireCo services to your EKS clusters one by one, starting with stateless services. Phase 3 (months 9-12): Consolidation — decommission AKS, unified platform. Don't rush: premature migration causes outages"
|
|
53
|
+
weight: 0.35
|
|
54
|
+
description: "Phased approach"
|
|
55
|
+
- type: llm_judge
|
|
56
|
+
criteria: "Cross-cloud and data challenges are addressed — connectivity: site-to-site VPN or cloud interconnect (AWS-Azure), DNS delegation for service discovery. Authentication: federate Azure AD into AWS IAM or use platform-level auth (OIDC). Data residency: maintain EU region for AcquireCo EU data (EU EKS cluster), migrate MongoDB to PostgreSQL or run MongoDB on Kubernetes. Data migration must be carefully planned with rollback capability"
|
|
57
|
+
weight: 0.35
|
|
58
|
+
description: "Technical challenges"
|
|
59
|
+
- type: llm_judge
|
|
60
|
+
criteria: "Team and risk management are practical — onboarding plan: 2-week intensive on your platform (GitOps, ArgoCD, Istio), pair programming with your engineers, gradual RBAC permission expansion as comfort grows. Risk: rushing migration causes outages affecting combined customer base. Mitigation: feature-flag traffic routing to enable instant rollback to AKS. Budget allocation: $800K infrastructure, $600K team augmentation, $400K tooling, $200K contingency"
|
|
61
|
+
weight: 0.30
|
|
62
|
+
description: "Team and risk"
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: master-troubleshooting-shift
|
|
3
|
+
level: 5
|
|
4
|
+
course: kubernetes-deployment-troubleshooting
|
|
5
|
+
type: output
|
|
6
|
+
description: "Master-level troubleshooting shift — manage a global multi-cluster crisis combining technical failures, organizational challenges, and strategic decisions"
|
|
7
|
+
tags: [Kubernetes, troubleshooting, combined, shift-simulation, global-crisis, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're the VP of Platform Engineering. It's 2:00 AM and you receive
|
|
13
|
+
a call: "We're having a global incident affecting all regions."
|
|
14
|
+
|
|
15
|
+
The situation (unfolding over the next 4 hours):
|
|
16
|
+
|
|
17
|
+
2:00 AM — Initial alert:
|
|
18
|
+
- prod-us-1: 30% of pods OOMKilled after a memory leak in a shared
|
|
19
|
+
library updated 6 hours ago. HPA scaling rapidly.
|
|
20
|
+
- prod-eu-1: healthy but seeing 2x traffic as users retry failed US
|
|
21
|
+
requests through CDN failover
|
|
22
|
+
|
|
23
|
+
2:15 AM — Escalation:
|
|
24
|
+
- The shared library was updated by 15 different services via
|
|
25
|
+
automated dependency bot (Renovate) — all merged without human
|
|
26
|
+
review
|
|
27
|
+
- Rollback requires coordinating 15 service teams
|
|
28
|
+
- The memory leak is slow: pods run fine for 1-2 hours then OOMKill
|
|
29
|
+
- HPA is scaling to max, exhausting cluster capacity
|
|
30
|
+
|
|
31
|
+
2:45 AM — Cascade begins:
|
|
32
|
+
- prod-us-1 runs out of cluster capacity. New pods can't schedule.
|
|
33
|
+
- Cluster autoscaler hits AWS account EC2 limit (quota reached)
|
|
34
|
+
- prod-eu-1 starting to see memory growth in the same services
|
|
35
|
+
- EU compliance officer: "US traffic hitting EU cluster may violate
|
|
36
|
+
GDPR for certain customers"
|
|
37
|
+
|
|
38
|
+
3:15 AM — Decision point:
|
|
39
|
+
- Board member calls: "I saw on Twitter we're having an outage. What's
|
|
40
|
+
the customer impact and when will it be resolved?"
|
|
41
|
+
- Customer success: "Our top 3 enterprise accounts are escalating.
|
|
42
|
+
One is threatening to invoke the SLA penalty clause ($500K)."
|
|
43
|
+
- Engineering: "We can rollback the library but it requires CI builds
|
|
44
|
+
for all 15 services — estimated 90 minutes"
|
|
45
|
+
- Security: "The dependency bot shouldn't have auto-merged. This is
|
|
46
|
+
a supply chain risk."
|
|
47
|
+
|
|
48
|
+
4:00 AM — Resolution path:
|
|
49
|
+
You need to simultaneously: contain the blast radius, communicate
|
|
50
|
+
to all stakeholders, make strategic decisions about GDPR exposure,
|
|
51
|
+
and plan the remediation.
|
|
52
|
+
|
|
53
|
+
Task: Walk through managing this global crisis end-to-end. Write:
|
|
54
|
+
the technical incident response (contain → triage → remediate),
|
|
55
|
+
the multi-stakeholder communication strategy (board, customers,
|
|
56
|
+
teams, compliance), the strategic decisions required and their
|
|
57
|
+
trade-offs, the organizational failures that enabled this incident,
|
|
58
|
+
the post-incident improvement program, and how this incident shapes
|
|
59
|
+
future platform architecture and governance.
|
|
60
|
+
|
|
61
|
+
assertions:
|
|
62
|
+
- type: llm_judge
|
|
63
|
+
criteria: "Technical response is immediate and effective — containment: set memory limits on affected pods (kill early, restart fresh to buy time), disable HPA scaling to prevent cluster exhaustion, request AWS quota increase. Triage: identify the shared library as root cause, determine which services are affected. Remediate: pin the library to previous version in dependency bot, trigger CI builds for all 15 services, deploy rollbacks as they complete. Meanwhile: rate-limit CDN failover to prevent GDPR exposure"
|
|
64
|
+
weight: 0.35
|
|
65
|
+
description: "Technical response"
|
|
66
|
+
- type: llm_judge
|
|
67
|
+
criteria: "Communication is multi-layered and timely — board member: concise impact statement, ETA, reassurance of response capability (2 min update). Enterprise accounts: personal outreach from customer success with honest ETA, proactive SLA credit offer before they ask. Engineering teams: clear incident channel, assigned rollback owners per service, 15-min status updates. Compliance: document GDPR exposure window, assess if EU data was actually processed in wrong region, prepare breach assessment if needed"
|
|
68
|
+
weight: 0.35
|
|
69
|
+
description: "Stakeholder communication"
|
|
70
|
+
- type: llm_judge
|
|
71
|
+
criteria: "Organizational failures and improvements are systemic — failures: automated dependency updates without human review for critical libraries, no canary period for shared library updates, no memory limit enforcement, AWS quota not sized for surge, GDPR traffic routing not enforced at CDN level. Improvements: require human review for shared/transitive dependencies, implement dependency update canary (1 service first, monitor 24h), enforce memory limits as admission policy, implement traffic geo-fencing, regular capacity stress tests. Frame as governance evolution, not blame"
|
|
72
|
+
weight: 0.30
|
|
73
|
+
description: "Failures and improvements"
|
package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/product-development.yaml
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: product-development
|
|
3
|
+
level: 5
|
|
4
|
+
course: kubernetes-deployment-troubleshooting
|
|
5
|
+
type: output
|
|
6
|
+
description: "Build a Kubernetes troubleshooting product — design a commercial platform for automated root cause analysis and remediation"
|
|
7
|
+
tags: [Kubernetes, product-development, troubleshooting-tool, automation, AI-ops, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're founding a startup that automates Kubernetes troubleshooting.
|
|
13
|
+
Your thesis: "80% of Kubernetes incidents have patterns that can be
|
|
14
|
+
detected and remediated automatically."
|
|
15
|
+
|
|
16
|
+
Market research:
|
|
17
|
+
- 78% of organizations report Kubernetes troubleshooting as their
|
|
18
|
+
#1 operational pain point
|
|
19
|
+
- Average MTTR for Kubernetes incidents: 2 hours
|
|
20
|
+
- $50K-500K cost per hour of downtime depending on company size
|
|
21
|
+
- Existing tools (Komodor, Robusta, Kubecost) address pieces but no
|
|
22
|
+
unified automated remediation platform
|
|
23
|
+
|
|
24
|
+
Product vision: An AI-powered platform that:
|
|
25
|
+
1. Continuously monitors cluster health
|
|
26
|
+
2. Detects anomalies before they become incidents
|
|
27
|
+
3. Automatically diagnoses root cause using knowledge graph
|
|
28
|
+
4. Suggests or auto-executes remediation
|
|
29
|
+
5. Learns from past incidents to prevent recurrence
|
|
30
|
+
|
|
31
|
+
Technical challenges:
|
|
32
|
+
- How to access cluster state without excessive permissions
|
|
33
|
+
- How to distinguish normal behavior from anomalies
|
|
34
|
+
- How to safely auto-remediate without making things worse
|
|
35
|
+
- How to work across different Kubernetes distributions (EKS, GKE, AKS,
|
|
36
|
+
on-prem)
|
|
37
|
+
- How to handle the blast radius of automated actions
|
|
38
|
+
- How to build trust — engineers won't let automation touch production
|
|
39
|
+
without confidence
|
|
40
|
+
|
|
41
|
+
Your advisor asks:
|
|
42
|
+
- "What's the minimum viable product?"
|
|
43
|
+
- "How do you differentiate from kubectl + Prometheus + PagerDuty?"
|
|
44
|
+
- "What's the GTM strategy for selling to platform teams?"
|
|
45
|
+
- "How do you handle the 'it deleted my pod' support ticket?"
|
|
46
|
+
|
|
47
|
+
Task: Design the product and go-to-market strategy. Write: the
|
|
48
|
+
product architecture (data collection, analysis engine, remediation
|
|
49
|
+
framework), the MVP scope and features, differentiation and moat,
|
|
50
|
+
the trust-building approach (observe → suggest → auto-remediate
|
|
51
|
+
progression), pricing model, and go-to-market strategy.
|
|
52
|
+
|
|
53
|
+
assertions:
|
|
54
|
+
- type: llm_judge
|
|
55
|
+
criteria: "Product architecture is technically sound — data collection: read-only agent (DaemonSet) collecting events, logs, metrics, resource state via K8s API and node-level telemetry. Analysis engine: pattern matching against known failure modes (CrashLoopBackOff + specific log patterns), ML for anomaly detection on resource usage trends, knowledge graph linking symptoms to root causes. Remediation: runbook automation engine with approval workflows and blast radius controls"
|
|
56
|
+
weight: 0.35
|
|
57
|
+
description: "Product architecture"
|
|
58
|
+
- type: llm_judge
|
|
59
|
+
criteria: "Trust and GTM strategy are realistic — trust progression: Phase 1 (observe) just dashboards and alerts, Phase 2 (suggest) recommended actions with explanation, Phase 3 (auto-remediate) automated actions with undo capability and audit log. MVP: focus on top 10 failure patterns (CrashLoopBackOff, OOMKilled, Pending, ImagePullBackOff, etc.) with automated diagnosis. GTM: target platform engineering teams at 50-500 engineer companies, freemium for < 3 clusters, land-and-expand pricing"
|
|
60
|
+
weight: 0.35
|
|
61
|
+
description: "Trust and GTM"
|
|
62
|
+
- type: llm_judge
|
|
63
|
+
criteria: "Differentiation and business model are compelling — moat: incident knowledge graph grows with each customer (network effects), cross-cluster pattern detection impossible with single-cluster tools. Differentiation from kubectl+Prometheus: automated root cause analysis (not just alerting), cross-signal correlation (logs + events + metrics), remediation automation. Pricing: per-node or per-cluster SaaS ($X/node/month). Competitive positioning: 'reduce MTTR by 80%' with measurable before/after metrics"
|
|
64
|
+
weight: 0.30
|
|
65
|
+
description: "Differentiation and model"
|
package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/regulatory-compliance.yaml
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: regulatory-compliance
|
|
3
|
+
level: 5
|
|
4
|
+
course: kubernetes-deployment-troubleshooting
|
|
5
|
+
type: output
|
|
6
|
+
description: "Kubernetes regulatory compliance — navigate SOC2, PCI-DSS, HIPAA, and GDPR requirements in Kubernetes environments"
|
|
7
|
+
tags: [Kubernetes, compliance, SOC2, PCI-DSS, HIPAA, GDPR, regulatory, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your company's Kubernetes platform must pass audits for multiple
|
|
13
|
+
compliance frameworks simultaneously. The compliance team has flagged
|
|
14
|
+
gaps that must be addressed before the next audit cycle (90 days).
|
|
15
|
+
|
|
16
|
+
Framework requirements and Kubernetes implications:
|
|
17
|
+
|
|
18
|
+
SOC2 (all services):
|
|
19
|
+
- Access control: Who can access what in the cluster?
|
|
20
|
+
- Change management: How are changes tracked and approved?
|
|
21
|
+
- Monitoring: Is there continuous monitoring and alerting?
|
|
22
|
+
- Incident response: Is there a documented process?
|
|
23
|
+
- Data protection: Are secrets and data encrypted?
|
|
24
|
+
|
|
25
|
+
PCI-DSS (payment services):
|
|
26
|
+
- Network segmentation: Payment services isolated from other workloads
|
|
27
|
+
- Encryption in transit: All communication encrypted (mTLS)
|
|
28
|
+
- Access logging: Every API call logged and auditable
|
|
29
|
+
- Vulnerability scanning: Container images scanned before deployment
|
|
30
|
+
- Penetration testing: Regular pen testing of the infrastructure
|
|
31
|
+
|
|
32
|
+
HIPAA (health services):
|
|
33
|
+
- PHI encryption: Patient data encrypted at rest and in transit
|
|
34
|
+
- Access controls: Minimum necessary access to PHI
|
|
35
|
+
- Audit trails: All access to PHI logged
|
|
36
|
+
- BAA with cloud provider: Business Associate Agreement
|
|
37
|
+
- Breach notification: Process for breach detection and notification
|
|
38
|
+
|
|
39
|
+
GDPR (EU customers):
|
|
40
|
+
- Data residency: EU customer data processed in EU region
|
|
41
|
+
- Data minimization: Only collect necessary data
|
|
42
|
+
- Right to deletion: Ability to purge user data across all services
|
|
43
|
+
- Data processing records: Document all data flows
|
|
44
|
+
- DPO appointment: Data Protection Officer
|
|
45
|
+
|
|
46
|
+
Current gaps (from pre-audit assessment):
|
|
47
|
+
1. RBAC is too permissive (cluster-admin granted broadly)
|
|
48
|
+
2. No network segmentation between namespaces
|
|
49
|
+
3. Kubernetes audit logging not enabled
|
|
50
|
+
4. Secrets not encrypted at rest in etcd
|
|
51
|
+
5. No image vulnerability scanning
|
|
52
|
+
6. No documented change management process
|
|
53
|
+
7. EU data sometimes processed in US clusters (GDPR violation)
|
|
54
|
+
8. No data deletion workflow across microservices
|
|
55
|
+
|
|
56
|
+
Task: Design the compliance remediation plan. Write: the mapping of
|
|
57
|
+
each compliance requirement to Kubernetes controls, the technical
|
|
58
|
+
implementation for each gap (RBAC tightening, NetworkPolicy, audit
|
|
59
|
+
logging, encryption, scanning), the organizational processes needed
|
|
60
|
+
(change management, incident response documentation), how to maintain
|
|
61
|
+
compliance continuously (not just for audits), and the evidence
|
|
62
|
+
collection automation for audit readiness.
|
|
63
|
+
|
|
64
|
+
assertions:
|
|
65
|
+
- type: llm_judge
|
|
66
|
+
criteria: "Compliance-to-Kubernetes control mapping is comprehensive — RBAC maps to SOC2 access control + PCI-DSS access + HIPAA minimum necessary. NetworkPolicy maps to PCI-DSS segmentation + HIPAA access controls. Kubernetes audit logging maps to SOC2 monitoring + PCI-DSS logging + HIPAA audit trails. etcd encryption maps to SOC2 + PCI-DSS + HIPAA data protection. Image scanning maps to PCI-DSS vulnerability management. Data residency controls map to GDPR requirements"
|
|
67
|
+
weight: 0.35
|
|
68
|
+
description: "Control mapping"
|
|
69
|
+
- type: llm_judge
|
|
70
|
+
criteria: "Technical implementations are specific — RBAC: namespace-scoped roles, remove cluster-admin, implement just-in-time access for emergency. NetworkPolicy: default-deny + explicit allow between payment services. Audit logging: configure kube-apiserver audit policy (log all write operations, log read operations on sensitive resources). etcd encryption: enable encryption provider with KMS integration. Image scanning: Trivy in CI/CD + admission controller blocking vulnerable images"
|
|
71
|
+
weight: 0.35
|
|
72
|
+
description: "Technical implementations"
|
|
73
|
+
- type: llm_judge
|
|
74
|
+
criteria: "Continuous compliance and automation are addressed — shift from point-in-time audits to continuous compliance. Implement: OPA/Kyverno policies enforcing compliance rules (prevent non-compliant resources), automated compliance dashboards (policy violations, RBAC drift, unscanned images), evidence collection automation (export audit logs, RBAC reports, scan results to compliance platform). Regular compliance reviews (monthly), automated drift detection. GDPR: implement data flow tracking, build cross-service data deletion API"
|
|
75
|
+
weight: 0.30
|
|
76
|
+
description: "Continuous compliance"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
id: mysql-query-optimization
|
|
2
|
+
name: "Database Query Optimization (MySQL)"
|
|
3
|
+
description: >
|
|
4
|
+
Master MySQL query optimization from reading execution plans to
|
|
5
|
+
enterprise database architecture. Learn InnoDB internals, indexing
|
|
6
|
+
strategies, JOIN optimization, partitioning, replication, connection
|
|
7
|
+
management, write optimization, monitoring, and high-availability
|
|
8
|
+
configurations for large-scale MySQL deployments.
|
|
9
|
+
levels: 5
|
|
10
|
+
scenarios_per_level: 10
|
|
11
|
+
tags: [development, MySQL, database, query-optimization, performance, SQL, InnoDB, DevOps]
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: buffer-pool-basics
|
|
3
|
+
level: 1
|
|
4
|
+
course: mysql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "Understand InnoDB buffer pool — learn how MySQL caches data in memory, why buffer pool size matters, and how to monitor hit ratios"
|
|
7
|
+
tags: [MySQL, InnoDB, buffer-pool, memory, caching, beginner]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your MySQL server has 64GB of RAM but the InnoDB buffer pool is set
|
|
13
|
+
to the default 128MB. The server is hitting disk for almost every
|
|
14
|
+
query. A colleague says "just set innodb_buffer_pool_size to 48GB"
|
|
15
|
+
but you want to understand what that actually does before changing a
|
|
16
|
+
production setting.
|
|
17
|
+
|
|
18
|
+
Current state:
|
|
19
|
+
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%';
|
|
20
|
+
+-------------------------------------+----------+
|
|
21
|
+
| Variable_name | Value |
|
|
22
|
+
+-------------------------------------+----------+
|
|
23
|
+
| Innodb_buffer_pool_read_requests | 50000000 |
|
|
24
|
+
| Innodb_buffer_pool_reads | 15000000 |
|
|
25
|
+
| Innodb_buffer_pool_pages_total | 8192 |
|
|
26
|
+
| Innodb_buffer_pool_pages_data | 8100 |
|
|
27
|
+
| Innodb_buffer_pool_pages_dirty | 200 |
|
|
28
|
+
| Innodb_buffer_pool_pages_free | 12 |
|
|
29
|
+
+-------------------------------------+----------+
|
|
30
|
+
|
|
31
|
+
Calculations from this data:
|
|
32
|
+
- Buffer pool hit ratio: (50M - 15M) / 50M = 70% (terrible — should be 99%+)
|
|
33
|
+
- Buffer pool is full: only 12 free pages out of 8,192
|
|
34
|
+
- 200 dirty pages waiting to be flushed to disk
|
|
35
|
+
- Total data in buffer pool: 8,100 × 16KB = ~126MB (matches 128MB setting)
|
|
36
|
+
|
|
37
|
+
Database size: 30GB of data + 10GB of indexes = 40GB total
|
|
38
|
+
Available RAM: 64GB (OS and other processes need ~8GB)
|
|
39
|
+
|
|
40
|
+
Questions to answer:
|
|
41
|
+
1. What is the buffer pool and why is it critical for InnoDB?
|
|
42
|
+
2. What should innodb_buffer_pool_size be set to?
|
|
43
|
+
3. What happens when data isn't in the buffer pool (disk read)?
|
|
44
|
+
4. How does InnoDB decide what to evict (LRU algorithm)?
|
|
45
|
+
5. What are dirty pages and how does flushing work?
|
|
46
|
+
|
|
47
|
+
Task: Explain the InnoDB buffer pool. Write: what it is (in-memory
|
|
48
|
+
cache for data and indexes), how to size it (rule of thumb and
|
|
49
|
+
monitoring approach), how the LRU eviction works (midpoint insertion),
|
|
50
|
+
what dirty pages are and how checkpoint/flushing works, and how to
|
|
51
|
+
monitor buffer pool health.
|
|
52
|
+
|
|
53
|
+
assertions:
|
|
54
|
+
- type: llm_judge
|
|
55
|
+
criteria: "Buffer pool is correctly explained — InnoDB's main memory cache holding both data pages and index pages (16KB each). All reads and writes go through the buffer pool first. A read request either finds the page in memory (cache hit) or reads from disk (cache miss). The 70% hit ratio is correctly identified as terrible and the 128MB setting is identified as far too small"
|
|
56
|
+
weight: 0.35
|
|
57
|
+
description: "Buffer pool basics"
|
|
58
|
+
- type: llm_judge
|
|
59
|
+
criteria: "Sizing recommendation is practical — suggests 70-80% of total RAM for dedicated MySQL servers (so ~48-50GB for this 64GB server), explains why the working set (40GB) should ideally fit in the buffer pool, mentions innodb_buffer_pool_instances for multi-core efficiency (1 instance per GB, up to 64), and notes that changing requires a restart in older versions but is dynamic in MySQL 8.0"
|
|
60
|
+
weight: 0.35
|
|
61
|
+
description: "Sizing recommendation"
|
|
62
|
+
- type: llm_judge
|
|
63
|
+
criteria: "LRU and flushing are explained — InnoDB uses a modified LRU with midpoint insertion (new pages go to midpoint, not head, to prevent one-time full table scans from evicting hot data), dirty pages are modified pages not yet written to disk, and checkpoint/flushing writes dirty pages back to tablespace files (controlled by innodb_io_capacity)"
|
|
64
|
+
weight: 0.30
|
|
65
|
+
description: "LRU and flushing explained"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: explain-basics
|
|
3
|
+
level: 1
|
|
4
|
+
course: mysql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "Read MySQL EXPLAIN output — understand execution plans, access types, key usage, and rows examined to diagnose slow queries"
|
|
7
|
+
tags: [MySQL, EXPLAIN, execution-plan, access-types, beginner]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're a backend developer and your team lead asks you to investigate
|
|
13
|
+
why the product listing page takes 8 seconds to load. You've traced
|
|
14
|
+
it to this query:
|
|
15
|
+
|
|
16
|
+
SELECT p.*, c.name AS category_name, b.name AS brand_name
|
|
17
|
+
FROM products p
|
|
18
|
+
JOIN categories c ON c.id = p.category_id
|
|
19
|
+
JOIN brands b ON b.id = p.brand_id
|
|
20
|
+
WHERE p.status = 'active'
|
|
21
|
+
AND p.price BETWEEN 10 AND 100
|
|
22
|
+
ORDER BY p.created_at DESC
|
|
23
|
+
LIMIT 20;
|
|
24
|
+
|
|
25
|
+
You run EXPLAIN and get:
|
|
26
|
+
|
|
27
|
+
+----+------+-------+------+----------+------+----------+-----------+
|
|
28
|
+
| id | type | table | type | key | rows | filtered | Extra |
|
|
29
|
+
+----+------+-------+------+----------+------+----------+-----------+
|
|
30
|
+
| 1 | SIMPLE| p | ALL | NULL | 2M | 5.00 | Using where; Using filesort |
|
|
31
|
+
| 1 | SIMPLE| c | eq_ref| PRIMARY | 1 | 100.00 | NULL |
|
|
32
|
+
| 1 | SIMPLE| b | eq_ref| PRIMARY | 1 | 100.00 | NULL |
|
|
33
|
+
+----+------+-------+------+----------+------+----------+-----------+
|
|
34
|
+
|
|
35
|
+
The products table has 2 million rows. The EXPLAIN shows:
|
|
36
|
+
- type=ALL for products (full table scan)
|
|
37
|
+
- "Using filesort" in Extra (sorting on disk)
|
|
38
|
+
- rows=2M (examining all rows)
|
|
39
|
+
- filtered=5.00 (only 5% of rows match the WHERE)
|
|
40
|
+
|
|
41
|
+
Available indexes on products:
|
|
42
|
+
- PRIMARY (id)
|
|
43
|
+
- idx_category_id (category_id)
|
|
44
|
+
- idx_brand_id (brand_id)
|
|
45
|
+
|
|
46
|
+
No index covers the status + price + created_at combination.
|
|
47
|
+
|
|
48
|
+
Task: Explain what the EXPLAIN output means. Write: what each column
|
|
49
|
+
tells you (id, select_type, table, type, possible_keys, key, rows,
|
|
50
|
+
filtered, Extra), why this query is slow (full table scan + filesort),
|
|
51
|
+
what the access type hierarchy means (system > const > eq_ref > ref >
|
|
52
|
+
range > index > ALL), and what index you would add to fix this query.
|
|
53
|
+
|
|
54
|
+
assertions:
|
|
55
|
+
- type: llm_judge
|
|
56
|
+
criteria: "EXPLAIN columns are correctly explained — id (query identifier), select_type (SIMPLE, SUBQUERY, DERIVED, etc.), table (which table), type (access method), possible_keys (candidate indexes), key (chosen index), rows (estimated rows examined), filtered (percentage matching WHERE), Extra (additional information like Using index, Using filesort, Using temporary)"
|
|
57
|
+
weight: 0.35
|
|
58
|
+
description: "EXPLAIN columns explained"
|
|
59
|
+
- type: llm_judge
|
|
60
|
+
criteria: "Access type hierarchy is explained — from best to worst: system (1 row), const (unique index lookup), eq_ref (unique index per join row), ref (non-unique index), range (index range scan), index (full index scan), ALL (full table scan). The current ALL type is identified as the problem, and the eq_ref for categories/brands is correctly identified as optimal"
|
|
61
|
+
weight: 0.35
|
|
62
|
+
description: "Access type hierarchy"
|
|
63
|
+
- type: llm_judge
|
|
64
|
+
criteria: "Fix is correct — recommends a composite index like (status, price, created_at) or (status, created_at) to eliminate both the full table scan and the filesort. Explains why column order matters in the index (equality columns first, then range, then sort)"
|
|
65
|
+
weight: 0.30
|
|
66
|
+
description: "Correct index fix"
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: first-optimization-shift
|
|
3
|
+
level: 1
|
|
4
|
+
course: mysql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "First optimization shift — diagnose and fix a slow e-commerce checkout combining multiple beginner optimization techniques"
|
|
7
|
+
tags: [MySQL, shift-simulation, checkout, diagnosis, beginner]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
It's your first on-call shift as a junior DBA. The checkout page is
|
|
13
|
+
loading slowly (8 seconds) and the engineering manager asks you to
|
|
14
|
+
investigate. You have access to the MySQL server and the application
|
|
15
|
+
logs.
|
|
16
|
+
|
|
17
|
+
Step 1 — You check SHOW PROCESSLIST and see 15 queries related to
|
|
18
|
+
the checkout endpoint, all from the same user session.
|
|
19
|
+
|
|
20
|
+
Step 2 — You enable the slow query log and capture these queries
|
|
21
|
+
from a single checkout request:
|
|
22
|
+
|
|
23
|
+
Query A (2 seconds):
|
|
24
|
+
SELECT * FROM products WHERE id IN (101, 205, 308, 412, 567);
|
|
25
|
+
-- EXPLAIN: type=range, key=PRIMARY, rows=5, Extra=NULL
|
|
26
|
+
-- Fast! Not the problem.
|
|
27
|
+
|
|
28
|
+
Query B (3 seconds):
|
|
29
|
+
SELECT * FROM inventory
|
|
30
|
+
WHERE product_id IN (101, 205, 308, 412, 567)
|
|
31
|
+
AND warehouse_id = 3
|
|
32
|
+
AND CAST(quantity AS CHAR) > '0';
|
|
33
|
+
-- EXPLAIN: type=ALL, rows=2M, Extra=Using where
|
|
34
|
+
-- Full table scan! The CAST prevents index usage.
|
|
35
|
+
|
|
36
|
+
Query C (0.5ms each, but called 5 times):
|
|
37
|
+
SELECT * FROM shipping_rates
|
|
38
|
+
WHERE zone_id = (SELECT zone_id FROM addresses WHERE user_id = 42);
|
|
39
|
+
-- Not slow individually, but it's an N+1 pattern (called per item)
|
|
40
|
+
|
|
41
|
+
Query D (2 seconds):
|
|
42
|
+
SELECT p.name, p.price, COUNT(r.id) AS review_count,
|
|
43
|
+
AVG(r.rating) AS avg_rating
|
|
44
|
+
FROM products p
|
|
45
|
+
LEFT JOIN reviews r ON r.product_id = p.id
|
|
46
|
+
WHERE p.id IN (101, 205, 308, 412, 567)
|
|
47
|
+
GROUP BY p.id;
|
|
48
|
+
-- EXPLAIN: reviews table type=ALL, rows=5M, Using temporary; Using filesort
|
|
49
|
+
-- No index on reviews.product_id!
|
|
50
|
+
|
|
51
|
+
Query E (1 second):
|
|
52
|
+
SELECT * FROM promotions
|
|
53
|
+
WHERE NOW() BETWEEN start_date AND end_date
|
|
54
|
+
AND minimum_order > 0
|
|
55
|
+
ORDER BY discount_percent DESC;
|
|
56
|
+
-- EXPLAIN: type=ALL, rows=50K
|
|
57
|
+
-- Function NOW() on every comparison prevents range scan optimization
|
|
58
|
+
|
|
59
|
+
Total: ~8 seconds across these queries.
|
|
60
|
+
|
|
61
|
+
Task: Diagnose and fix each slow query. Write: the root cause of each
|
|
62
|
+
query's performance problem, the specific fix (index, query rewrite,
|
|
63
|
+
or both), the expected improvement, and the priority order for
|
|
64
|
+
implementing fixes (which fix gives the biggest improvement first).
|
|
65
|
+
|
|
66
|
+
assertions:
|
|
67
|
+
- type: llm_judge
|
|
68
|
+
criteria: "All root causes identified — Query B: CAST() on indexed column prevents index usage (SARGable violation), Query C: N+1 pattern (should be single query with JOIN), Query D: missing index on reviews.product_id, Query E: function wrapping issue with NOW(). Query A is correctly identified as not a problem"
|
|
69
|
+
weight: 0.35
|
|
70
|
+
description: "Root causes identified"
|
|
71
|
+
- type: llm_judge
|
|
72
|
+
criteria: "Fixes are correct — Query B: change to quantity > 0 (no CAST needed for numeric comparison), Query C: rewrite as single JOIN query, Query D: ADD INDEX idx_product_id (product_id) on reviews, Query E: rewrite WHERE clause to compare dates directly or add composite index on (end_date, start_date). Priority order puts highest-impact fixes first"
|
|
73
|
+
weight: 0.35
|
|
74
|
+
description: "Correct fixes"
|
|
75
|
+
- type: llm_judge
|
|
76
|
+
criteria: "Expected improvements are realistic — quantifies improvement for each fix (e.g., Query B from 3s to <10ms with proper index, Query D from 2s to <50ms with index on reviews.product_id). Total checkout time reduction from 8s to well under 1 second"
|
|
77
|
+
weight: 0.30
|
|
78
|
+
description: "Realistic improvement estimates"
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: innodb-index-fundamentals
|
|
3
|
+
level: 1
|
|
4
|
+
course: mysql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "Understand InnoDB indexing — learn clustered indexes, secondary indexes, and how InnoDB's B+tree structure affects query performance"
|
|
7
|
+
tags: [MySQL, InnoDB, indexes, B-tree, clustered-index, beginner]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your team is debating whether to use UUID or auto-increment INT as
|
|
13
|
+
the primary key for a new high-traffic table. A senior engineer says
|
|
14
|
+
"UUIDs will kill insert performance in InnoDB." You need to understand
|
|
15
|
+
why.
|
|
16
|
+
|
|
17
|
+
Context:
|
|
18
|
+
- Table: user_events (expected 100M rows in first year)
|
|
19
|
+
- Current schema option A (auto-increment):
|
|
20
|
+
CREATE TABLE user_events (
|
|
21
|
+
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
22
|
+
user_id BIGINT UNSIGNED NOT NULL,
|
|
23
|
+
event_type VARCHAR(50) NOT NULL,
|
|
24
|
+
payload JSON,
|
|
25
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
26
|
+
INDEX idx_user_events (user_id, created_at)
|
|
27
|
+
) ENGINE=InnoDB;
|
|
28
|
+
|
|
29
|
+
- Current schema option B (UUID):
|
|
30
|
+
CREATE TABLE user_events (
|
|
31
|
+
id CHAR(36) PRIMARY KEY,
|
|
32
|
+
user_id BIGINT UNSIGNED NOT NULL,
|
|
33
|
+
event_type VARCHAR(50) NOT NULL,
|
|
34
|
+
payload JSON,
|
|
35
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
36
|
+
INDEX idx_user_events (user_id, created_at)
|
|
37
|
+
) ENGINE=InnoDB;
|
|
38
|
+
|
|
39
|
+
Your measurements after inserting 10M rows:
|
|
40
|
+
- Option A: 15 minutes, 2GB on disk, sequential I/O during inserts
|
|
41
|
+
- Option B: 45 minutes, 3.5GB on disk, random I/O during inserts
|
|
42
|
+
|
|
43
|
+
The team wants to understand:
|
|
44
|
+
1. What is a clustered index and why does InnoDB always have one?
|
|
45
|
+
2. Why do UUIDs cause random I/O on insert?
|
|
46
|
+
3. Why is Option B 75% larger on disk?
|
|
47
|
+
4. How do secondary indexes work in InnoDB (why do they store the PK)?
|
|
48
|
+
5. What is a "covering index" and how does it avoid table lookups?
|
|
49
|
+
|
|
50
|
+
Task: Explain InnoDB's indexing architecture. Write: how the clustered
|
|
51
|
+
index works (data stored in PK order), why UUIDs cause page splits
|
|
52
|
+
and random I/O, how secondary indexes reference the primary key (not
|
|
53
|
+
row pointers), what a covering index is (index-only scan), and your
|
|
54
|
+
recommendation for the primary key choice.
|
|
55
|
+
|
|
56
|
+
assertions:
|
|
57
|
+
- type: llm_judge
|
|
58
|
+
criteria: "Clustered index is correctly explained — InnoDB stores table data in primary key order (the clustered index IS the table), inserts with auto-increment append to the end (sequential I/O), while random UUIDs insert into random positions causing page splits and fragmentation"
|
|
59
|
+
weight: 0.35
|
|
60
|
+
description: "Clustered index explanation"
|
|
61
|
+
- type: llm_judge
|
|
62
|
+
criteria: "Secondary indexes are explained — InnoDB secondary indexes store the primary key value (not a row pointer), so lookups via secondary index require a 'bookmark lookup' back to the clustered index. This means larger PKs (UUID=36 bytes vs BIGINT=8 bytes) make every secondary index larger, explaining the 75% size difference"
|
|
63
|
+
weight: 0.35
|
|
64
|
+
description: "Secondary index mechanics"
|
|
65
|
+
- type: llm_judge
|
|
66
|
+
criteria: "Recommendation is practical — recommends auto-increment BIGINT for this use case (high insert volume), or if UUIDs are needed, suggests UUID_TO_BIN() with swap flag (ordered UUID) or ULID/UUIDv7 (time-sorted) as a compromise that preserves insert performance while maintaining uniqueness"
|
|
67
|
+
weight: 0.30
|
|
68
|
+
description: "Practical PK recommendation"
|