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/docker-container-debugging/scenarios/level-4/multi-environment-management.yaml
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: multi-environment-management
|
|
3
|
+
level: 4
|
|
4
|
+
course: docker-container-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design multi-environment container management — implement dev/staging/prod parity, environment-specific configuration, and promotion workflows"
|
|
7
|
+
tags: [Docker, environments, dev-prod-parity, configuration, promotion, expert]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
"It works in dev but not in production" — your team's most common
|
|
13
|
+
incident cause. Investigation reveals massive environment drift:
|
|
14
|
+
|
|
15
|
+
Development:
|
|
16
|
+
- docker compose up (all services on laptop)
|
|
17
|
+
- Uses :latest tags, builds locally
|
|
18
|
+
- Mounts source code as volumes (hot reload)
|
|
19
|
+
- Single instance of everything
|
|
20
|
+
- SQLite instead of PostgreSQL
|
|
21
|
+
- No resource limits, no health checks
|
|
22
|
+
|
|
23
|
+
Staging:
|
|
24
|
+
- docker compose -f docker-compose.staging.yml up
|
|
25
|
+
- Some services use :latest, some use specific tags
|
|
26
|
+
- Different Compose file with staging overrides
|
|
27
|
+
- PostgreSQL but different version than production
|
|
28
|
+
- Health checks defined but not enforced
|
|
29
|
+
|
|
30
|
+
Production:
|
|
31
|
+
- docker compose -f docker-compose.prod.yml up on 3 servers
|
|
32
|
+
- Manually tagged images (sometimes wrong tag)
|
|
33
|
+
- nginx reverse proxy manually configured
|
|
34
|
+
- PostgreSQL 15 with replication
|
|
35
|
+
- Resource limits, health checks, log rotation
|
|
36
|
+
|
|
37
|
+
Three separate Compose files that have diverged significantly.
|
|
38
|
+
Config values hardcoded differently in each environment.
|
|
39
|
+
|
|
40
|
+
Proposed solution architecture:
|
|
41
|
+
- Single docker-compose.yml with environment-specific overrides
|
|
42
|
+
- Identical images across all environments (config via env vars)
|
|
43
|
+
- Environment parity: same database engine, same service versions
|
|
44
|
+
- Promotion: same image SHA moves dev → staging → production
|
|
45
|
+
- Configuration management via .env files per environment
|
|
46
|
+
|
|
47
|
+
Task: Design multi-environment container management. Write: the
|
|
48
|
+
12-factor app approach to configuration, Compose override files
|
|
49
|
+
(docker-compose.override.yml), environment parity strategies,
|
|
50
|
+
image promotion workflows (same SHA across environments), secrets
|
|
51
|
+
per environment, and debugging environment-specific issues.
|
|
52
|
+
|
|
53
|
+
assertions:
|
|
54
|
+
- type: llm_judge
|
|
55
|
+
criteria: "Environment parity is explained — the 12-factor app: same image in all environments, configuration via environment variables only. Docker Compose overrides: base docker-compose.yml + docker-compose.override.yml (dev defaults) + docker-compose.prod.yml (production overrides). Use docker compose -f base.yml -f prod.yml up. Keep dev close to prod: same database engine (not SQLite vs PostgreSQL), same service versions, same network topology. Dev additions: volume mounts for hot reload, debug ports"
|
|
56
|
+
weight: 0.35
|
|
57
|
+
description: "Environment parity"
|
|
58
|
+
- type: llm_judge
|
|
59
|
+
criteria: "Image promotion workflow is covered — build once, deploy everywhere: CI builds image with git SHA tag, same image moves through environments. Never rebuild for different environments — configuration changes, not the image. Promotion: dev (auto-deploy on merge) → staging (auto-deploy, run integration tests) → production (manual approval, same SHA). Image tags: git SHA for traceability, semantic version for releases, never :latest in staging/production. Registry as the source of truth for promoted images"
|
|
60
|
+
weight: 0.35
|
|
61
|
+
description: "Promotion workflow"
|
|
62
|
+
- type: llm_judge
|
|
63
|
+
criteria: "Configuration and debugging are practical — configuration hierarchy: defaults in image → .env file per environment → runtime environment variables. Secrets: Docker secrets for production, .env file for development (gitignored). Debugging environment-specific issues: compare docker inspect output between environments, diff effective configuration, check resource limits (may only manifest under production load), verify network topology matches. Common gotchas: DNS resolution differs, filesystem case sensitivity (Mac vs Linux), time zones, locale settings"
|
|
64
|
+
weight: 0.30
|
|
65
|
+
description: "Configuration and debugging"
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: stateful-service-containers
|
|
3
|
+
level: 4
|
|
4
|
+
course: docker-container-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design stateful service container strategies — implement database containers, persistent storage, backup/restore, and data migration for containerized databases"
|
|
7
|
+
tags: [Docker, stateful, databases, volumes, backup, persistence, expert]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your team wants to containerize production databases (PostgreSQL,
|
|
13
|
+
Redis, Elasticsearch). The DBA team objects: "Databases don't belong
|
|
14
|
+
in containers — we'll lose data." You need to design a bulletproof
|
|
15
|
+
strategy.
|
|
16
|
+
|
|
17
|
+
Current concerns:
|
|
18
|
+
|
|
19
|
+
1. Data persistence — container removal must NOT delete data:
|
|
20
|
+
$ docker rm postgres-prod
|
|
21
|
+
# Without named volumes, all data is gone!
|
|
22
|
+
|
|
23
|
+
Solution: named volumes with explicit volume drivers:
|
|
24
|
+
docker run -v pgdata:/var/lib/postgresql/data postgres:15
|
|
25
|
+
|
|
26
|
+
2. Backup strategy — can't just copy files while database is running:
|
|
27
|
+
$ docker exec postgres pg_dump -U app mydb > backup.sql
|
|
28
|
+
# Logical backup — portable, but slow for large databases
|
|
29
|
+
|
|
30
|
+
$ docker run --volumes-from postgres -v /backups:/backup \
|
|
31
|
+
ubuntu tar czf /backup/pgdata.tar.gz /var/lib/postgresql/data
|
|
32
|
+
# Physical backup — fast, but must stop writes first
|
|
33
|
+
|
|
34
|
+
3. Performance — default volume driver (local) may have overhead:
|
|
35
|
+
$ docker run -v pgdata:/data --mount type=tmpfs,target=/tmp \
|
|
36
|
+
--shm-size=256m postgres:15
|
|
37
|
+
# SHM size affects PostgreSQL shared memory for sorting/hashing
|
|
38
|
+
|
|
39
|
+
4. High availability — single container is single point of failure:
|
|
40
|
+
- PostgreSQL: streaming replication with pg_basebackup
|
|
41
|
+
- Redis: Sentinel for automatic failover
|
|
42
|
+
- Elasticsearch: cluster across multiple containers
|
|
43
|
+
|
|
44
|
+
5. Version upgrades — PostgreSQL major version requires data migration:
|
|
45
|
+
$ docker run -v pgdata-old:/old -v pgdata-new:/new \
|
|
46
|
+
tianon/postgres-upgrade pg_upgrade --old-datadir /old ...
|
|
47
|
+
|
|
48
|
+
Task: Design stateful container strategy. Write: volume management
|
|
49
|
+
for databases, backup/restore procedures, performance tuning for
|
|
50
|
+
containerized databases, high availability patterns, version upgrade
|
|
51
|
+
strategies, and when NOT to containerize databases.
|
|
52
|
+
|
|
53
|
+
assertions:
|
|
54
|
+
- type: llm_judge
|
|
55
|
+
criteria: "Volume management is thorough — always use named volumes (not bind mounts) for database data. Volume drivers: local (default, good for single host), NFS (shared across hosts), cloud-specific (EBS, Azure Disk). Never use anonymous volumes for important data. docker volume inspect shows mount point. Backup the volume directory on host. Consider: volume permissions (database runs as specific UID), volume labels for organization, volume cleanup policies (never auto-prune database volumes)"
|
|
56
|
+
weight: 0.35
|
|
57
|
+
description: "Volume management"
|
|
58
|
+
- type: llm_judge
|
|
59
|
+
criteria: "Backup and HA are covered — logical backups: pg_dump (portable, slow), mysqldump, redis-cli BGSAVE. Physical backups: volume snapshot (requires write quiescing), filesystem-level backup. Schedule: daily full + continuous WAL archiving for point-in-time recovery. HA patterns: primary-replica with volume per instance, automated failover (PgBouncer + Patroni for PostgreSQL, Redis Sentinel, Elasticsearch cluster). Test restore regularly — backup without tested restore is not a backup"
|
|
60
|
+
weight: 0.35
|
|
61
|
+
description: "Backup and HA"
|
|
62
|
+
- type: llm_judge
|
|
63
|
+
criteria: "Trade-offs and guidance are practical — when to containerize databases: development/testing (always), stateless caches (Redis without persistence), small-medium production databases with proper volume management. When NOT to: very large databases (multi-TB), extreme I/O requirements, when managed database services are available (RDS, Cloud SQL). Performance tuning: --shm-size for PostgreSQL, dedicated CPU/memory limits, SSD-backed volumes, tune database config for container environment (not bare-metal defaults)"
|
|
64
|
+
weight: 0.30
|
|
65
|
+
description: "Trade-offs"
|
package/courses/docker-container-debugging/scenarios/level-5/board-infrastructure-strategy.yaml
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: board-infrastructure-strategy
|
|
3
|
+
level: 5
|
|
4
|
+
course: docker-container-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Board-level infrastructure strategy — present container technology investment to the board of directors with business outcomes, risk analysis, and competitive positioning"
|
|
7
|
+
tags: [Docker, board, strategy, business-outcomes, investment, executive, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
The board of directors wants to understand the company's container
|
|
13
|
+
platform investment. The CEO asks you (VP Engineering) to present
|
|
14
|
+
at the next board meeting. Board members are non-technical but
|
|
15
|
+
business-savvy.
|
|
16
|
+
|
|
17
|
+
Key metrics to present:
|
|
18
|
+
|
|
19
|
+
Business outcomes (last 12 months since container adoption):
|
|
20
|
+
- Deployment frequency: 4/month → 50/day (300x increase)
|
|
21
|
+
- Time to market for new features: 6 weeks → 1 week (6x faster)
|
|
22
|
+
- System availability: 99.7% → 99.95% ($1.2M saved in downtime)
|
|
23
|
+
- Infrastructure costs: $3.8M → $2.75M (28% reduction)
|
|
24
|
+
- Developer onboarding: 2 weeks → 2 days
|
|
25
|
+
- Incident recovery time: 4 hours → 25 minutes
|
|
26
|
+
|
|
27
|
+
Investment to date:
|
|
28
|
+
- Platform team (5 engineers): $900K/year
|
|
29
|
+
- Tooling and cloud: $1.85M/year
|
|
30
|
+
- Training: $25K/year
|
|
31
|
+
- Total: $2.75M/year
|
|
32
|
+
|
|
33
|
+
Questions the board will ask:
|
|
34
|
+
1. "What's the 3-year ROI?" (Cumulative savings + revenue acceleration)
|
|
35
|
+
2. "What are the risks?" (Vendor lock-in, skill dependency, security)
|
|
36
|
+
3. "How does this compare to competitors?"
|
|
37
|
+
4. "What happens if we stop investing?"
|
|
38
|
+
5. "What's the next phase and what will it cost?"
|
|
39
|
+
|
|
40
|
+
Task: Prepare the board presentation. Write: the executive narrative
|
|
41
|
+
(why containers matter for business outcomes), metrics that resonate
|
|
42
|
+
with board members, risk analysis with mitigations, competitive
|
|
43
|
+
positioning, investment roadmap for next 3 years, and the business
|
|
44
|
+
case for continued investment.
|
|
45
|
+
|
|
46
|
+
assertions:
|
|
47
|
+
- type: llm_judge
|
|
48
|
+
criteria: "Executive narrative is non-technical — frame containers as 'standardized, portable application packaging that automates deployment.' Avoid jargon (no 'Docker,' 'Kubernetes,' 'orchestration'). Focus on outcomes: faster time to market enables revenue growth, higher availability protects revenue, lower infrastructure costs improve margins, faster developer onboarding supports hiring growth. Use analogies: containers are like shipping containers — standardized boxes that work everywhere"
|
|
49
|
+
weight: 0.35
|
|
50
|
+
description: "Executive narrative"
|
|
51
|
+
- type: llm_judge
|
|
52
|
+
criteria: "Metrics and ROI are compelling — 3-year ROI calculation: investment ($8.25M over 3 years) vs savings (infrastructure: $3.15M, downtime prevention: $3.6M, developer productivity: $5M+). Net ROI: positive within 18 months. Present metrics the board cares about: revenue impact (features shipped faster = revenue sooner), risk reduction (availability, security posture), competitive advantage (faster than competitors). Benchmarks: compare deployment frequency and MTTR to industry standards (DORA report)"
|
|
53
|
+
weight: 0.35
|
|
54
|
+
description: "Metrics and ROI"
|
|
55
|
+
- type: llm_judge
|
|
56
|
+
criteria: "Risk and forward strategy are balanced — risks: key person dependency (mitigate with documentation and cross-training), cloud vendor risk (mitigate with multi-cloud strategy), security (mitigate with defense-in-depth). What happens if we stop investing: technical debt accumulates, competitors gain advantage, talent retention suffers (engineers want modern tools). Next phase: AI/ML workloads on container platform, edge computing, developer experience improvements. Investment ask: maintain current spending + 15% growth for new capabilities. Present as continued competitive advantage, not just cost savings"
|
|
57
|
+
weight: 0.30
|
|
58
|
+
description: "Risk and strategy"
|
package/courses/docker-container-debugging/scenarios/level-5/consulting-container-strategy.yaml
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: consulting-container-strategy
|
|
3
|
+
level: 5
|
|
4
|
+
course: docker-container-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Consulting engagement — design a container adoption strategy for a traditional enterprise migrating from VMs to containers"
|
|
7
|
+
tags: [Docker, consulting, strategy, migration, enterprise, VM-to-container, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
A Fortune 500 manufacturing company with 500+ applications running
|
|
13
|
+
on VMware wants to containerize. Their CTO has heard "containers
|
|
14
|
+
are the future" but the organization has zero container experience.
|
|
15
|
+
|
|
16
|
+
Current state:
|
|
17
|
+
- 2,000+ VMs across 3 data centers
|
|
18
|
+
- 500+ applications (Java, .NET, Python, legacy C++)
|
|
19
|
+
- 50-person IT operations team skilled in VMware/Linux admin
|
|
20
|
+
- Compliance: SOX, ITAR (defense contracts), HIPAA (employee health)
|
|
21
|
+
- Budget: $2M over 2 years for modernization
|
|
22
|
+
- Recent incidents: 3 outages from VM sprawl (overprovisioned hosts)
|
|
23
|
+
|
|
24
|
+
Stakeholder concerns:
|
|
25
|
+
- CTO: "How fast can we containerize everything?"
|
|
26
|
+
- VP Engineering: "My teams can barely keep up with current work"
|
|
27
|
+
- CISO: "Containers are less secure than VMs" (misconception to address)
|
|
28
|
+
- CFO: "What's the ROI? VMs work fine."
|
|
29
|
+
- Operations: "We'll lose our jobs if we automate everything"
|
|
30
|
+
|
|
31
|
+
You need to deliver:
|
|
32
|
+
1. Application portfolio assessment (what to containerize first)
|
|
33
|
+
2. Platform architecture recommendation
|
|
34
|
+
3. Team transformation plan
|
|
35
|
+
4. Risk-adjusted timeline
|
|
36
|
+
5. Business case with ROI projections
|
|
37
|
+
|
|
38
|
+
Not all 500 applications should be containerized:
|
|
39
|
+
- Good candidates: stateless web apps, microservices, batch jobs
|
|
40
|
+
- Poor candidates: legacy mainframe connectors, GUI applications,
|
|
41
|
+
apps with hardware dependencies, some databases
|
|
42
|
+
- Never: real-time control systems, kernel-dependent applications
|
|
43
|
+
|
|
44
|
+
Task: Design the consulting engagement deliverable. Write: the
|
|
45
|
+
assessment framework (containerization readiness scoring), platform
|
|
46
|
+
recommendation, migration strategy (strangler fig for legacy),
|
|
47
|
+
organizational change management, ROI model, and risk mitigation.
|
|
48
|
+
|
|
49
|
+
assertions:
|
|
50
|
+
- type: llm_judge
|
|
51
|
+
criteria: "Assessment framework is structured — score applications on: architecture (stateless vs stateful), dependencies (external hardware, specific OS), compliance requirements, team capability, business criticality. Categorize: containerize now (stateless web apps, APIs), containerize with refactoring (monoliths needing decomposition), containerize later (stateful with complex data), don't containerize (legacy, hardware-dependent). Start with low-risk, high-value candidates for quick wins"
|
|
52
|
+
weight: 0.35
|
|
53
|
+
description: "Assessment framework"
|
|
54
|
+
- type: llm_judge
|
|
55
|
+
criteria: "Platform and migration strategy are covered — platform: managed Kubernetes (EKS/AKS/GKE) unless air-gapped (then Rancher/OpenShift on-prem). Container runtime: Docker/containerd. Registry: Harbor for on-prem, ECR/GCR for cloud. CI/CD: GitLab or GitHub Actions with container pipeline. Migration: strangler fig pattern — new features as containers, gradually extract from monolith. Lift-and-shift first (containerize as-is), then optimize (refactor for cloud-native). Timeline: 6-month pilot, 18-month primary migration, ongoing optimization"
|
|
56
|
+
weight: 0.35
|
|
57
|
+
description: "Platform and migration"
|
|
58
|
+
- type: llm_judge
|
|
59
|
+
criteria: "Change management and ROI are practical — team transformation: upskill operations team (they become platform engineers, not eliminated). Training plan: Docker basics → Kubernetes → CI/CD. Hire 3-5 container specialists to lead and mentor. Address CISO: containers with proper hardening have smaller attack surface than VMs. ROI model: infrastructure cost reduction (higher density than VMs: 3-5x), operational efficiency (automated deployments, reduced MTTR), developer velocity (consistent environments, faster CI). Risks: timeline slippage, skill gaps, legacy app compatibility. Mitigation: phased approach, pilot first, keep VM fallback"
|
|
60
|
+
weight: 0.30
|
|
61
|
+
description: "Change management and ROI"
|
package/courses/docker-container-debugging/scenarios/level-5/container-platform-architecture.yaml
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: container-platform-architecture
|
|
3
|
+
level: 5
|
|
4
|
+
course: docker-container-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design enterprise container platform architecture — build an internal developer platform with self-service container deployment, governance, and operational excellence"
|
|
7
|
+
tags: [Docker, platform, architecture, IDP, self-service, governance, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your company (2,000 engineers, 300+ services) needs an Internal
|
|
13
|
+
Developer Platform (IDP) built on containers. The goal: developers
|
|
14
|
+
deploy services without understanding infrastructure details.
|
|
15
|
+
|
|
16
|
+
Requirements from stakeholders:
|
|
17
|
+
|
|
18
|
+
Engineering VP: "Developers should deploy in under 5 minutes with
|
|
19
|
+
zero infrastructure knowledge. Current process takes 2 weeks
|
|
20
|
+
involving 3 teams."
|
|
21
|
+
|
|
22
|
+
CISO: "Every deployment must be scanned, signed, and compliant.
|
|
23
|
+
We need audit trails for SOC2."
|
|
24
|
+
|
|
25
|
+
SRE Director: "We need 99.95% platform availability. Current
|
|
26
|
+
container infrastructure has 99.7% (26 hours downtime/year)."
|
|
27
|
+
|
|
28
|
+
CFO: "Platform team costs $3M/year. Justify every dollar."
|
|
29
|
+
|
|
30
|
+
Platform architecture layers:
|
|
31
|
+
|
|
32
|
+
Layer 1 — Infrastructure:
|
|
33
|
+
Multi-region Kubernetes clusters (managed), container runtime,
|
|
34
|
+
CNI networking, storage classes, ingress controllers.
|
|
35
|
+
|
|
36
|
+
Layer 2 — Platform Services:
|
|
37
|
+
Service mesh (Istio/Linkerd), centralized logging (ELK/Loki),
|
|
38
|
+
monitoring (Prometheus/Grafana), secrets management (Vault),
|
|
39
|
+
CI/CD (ArgoCD/Flux), registry (Harbor).
|
|
40
|
+
|
|
41
|
+
Layer 3 — Developer Interface:
|
|
42
|
+
Self-service portal (Backstage), templated service creation,
|
|
43
|
+
one-click deployments, environment management, cost dashboards.
|
|
44
|
+
|
|
45
|
+
Layer 4 — Governance:
|
|
46
|
+
Policy engine (OPA/Kyverno), security scanning gates,
|
|
47
|
+
resource quotas, network policies, compliance reporting.
|
|
48
|
+
|
|
49
|
+
Task: Design the platform architecture. Write: each layer with
|
|
50
|
+
component selection rationale, the developer experience journey
|
|
51
|
+
(from code to production), governance automation, platform team
|
|
52
|
+
structure and responsibilities, SLO/SLA framework, and how to
|
|
53
|
+
measure platform success (adoption, developer satisfaction, MTTR).
|
|
54
|
+
|
|
55
|
+
assertions:
|
|
56
|
+
- type: llm_judge
|
|
57
|
+
criteria: "Platform layers are well-designed — Infrastructure: managed K8s for reduced operational burden, multi-region for HA, storage classes for different workload needs. Platform services: service mesh for traffic management and mTLS, centralized observability, GitOps (ArgoCD/Flux) for declarative deployments. Developer interface: Backstage or similar portal for service catalog, templated creation (golden paths), self-service environments. Each layer has clear ownership and SLOs"
|
|
58
|
+
weight: 0.35
|
|
59
|
+
description: "Platform layers"
|
|
60
|
+
- type: llm_judge
|
|
61
|
+
criteria: "Developer experience is frictionless — golden path: developer creates service from template (Backstage), CI automatically builds/scans/signs, CD deploys to staging, promotion to production with one click. Time from commit to production: < 30 minutes. Self-service: developers manage their own services without tickets. Guard rails, not gates: policies enforced automatically, not by manual review. Documentation: runbooks auto-generated, dashboards pre-configured per service template"
|
|
62
|
+
weight: 0.35
|
|
63
|
+
description: "Developer experience"
|
|
64
|
+
- type: llm_judge
|
|
65
|
+
criteria: "Success metrics are measurable — platform adoption: % of services on platform (target: 80% in year 1). Developer satisfaction: quarterly survey (NPS > 50). MTTR: < 15 minutes for platform issues. Deployment frequency: daily (from weekly). Change failure rate: < 5%. Cost per service: decreasing trend. Platform team efficiency: services per platform engineer ratio (target: 50:1). SLA: 99.95% platform availability with error budget policy. Track and report these metrics monthly to stakeholders"
|
|
66
|
+
weight: 0.30
|
|
67
|
+
description: "Success metrics"
|
package/courses/docker-container-debugging/scenarios/level-5/container-platform-economics.yaml
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: container-platform-economics
|
|
3
|
+
level: 5
|
|
4
|
+
course: docker-container-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Analyze container platform economics — evaluate total cost of ownership, resource optimization, and financial models for containerized infrastructure"
|
|
7
|
+
tags: [Docker, economics, TCO, FinOps, cost-optimization, ROI, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
The CFO wants a comprehensive financial analysis of your container
|
|
13
|
+
platform before approving the next year's infrastructure budget.
|
|
14
|
+
|
|
15
|
+
Current container platform costs (annual):
|
|
16
|
+
- Cloud compute (EC2/GCE instances): $1.2M
|
|
17
|
+
- Container registry (ECR): $15K
|
|
18
|
+
- Load balancers (ALB/NLB): $85K
|
|
19
|
+
- Storage (EBS volumes, S3 for backups): $180K
|
|
20
|
+
- Monitoring (Datadog): $240K
|
|
21
|
+
- Security tools (Snyk, Falco): $60K
|
|
22
|
+
- CI/CD (GitHub Actions): $48K
|
|
23
|
+
- Personnel: 5 platform engineers × $180K = $900K
|
|
24
|
+
- Training and certification: $25K
|
|
25
|
+
Total: ~$2.75M
|
|
26
|
+
|
|
27
|
+
Compared to the previous VM-based infrastructure: $3.8M
|
|
28
|
+
Container platform saves $1.05M/year (28% reduction).
|
|
29
|
+
|
|
30
|
+
But the CFO challenges:
|
|
31
|
+
1. "Monitoring costs tripled — why is Datadog $240K?"
|
|
32
|
+
Container environments generate 10x more metrics/logs.
|
|
33
|
+
|
|
34
|
+
2. "We have 40% average CPU utilization — we're over-provisioned"
|
|
35
|
+
Containers are sized for peak, not average. Right-sizing
|
|
36
|
+
could save $300-400K.
|
|
37
|
+
|
|
38
|
+
3. "Can we use spot/preemptible instances for containers?"
|
|
39
|
+
Stateless containers are perfect for spot instances at
|
|
40
|
+
60-90% discount, but need graceful shutdown handling.
|
|
41
|
+
|
|
42
|
+
4. "What about reserved instances vs on-demand?"
|
|
43
|
+
Base load on reserved (1-3 year commitment for 30-60% savings),
|
|
44
|
+
burst on spot, safety net on on-demand.
|
|
45
|
+
|
|
46
|
+
5. "Alternative: what would self-hosted cost?"
|
|
47
|
+
Hardware amortization, colo, hiring more ops staff.
|
|
48
|
+
|
|
49
|
+
Task: Analyze container platform economics. Write: TCO model
|
|
50
|
+
(compute, storage, networking, tooling, personnel), optimization
|
|
51
|
+
strategies (right-sizing, spot instances, reserved capacity),
|
|
52
|
+
monitoring cost management, build vs buy decisions, and how to
|
|
53
|
+
present infrastructure ROI to finance stakeholders.
|
|
54
|
+
|
|
55
|
+
assertions:
|
|
56
|
+
- type: llm_judge
|
|
57
|
+
criteria: "TCO model is comprehensive — include all cost categories: compute (instances/servers), storage (volumes, snapshots, backups), networking (load balancers, data transfer, VPN), tooling (registry, CI/CD, monitoring, security), personnel (platform team, on-call, training), and hidden costs (incident remediation, technical debt, compliance audits). Compare: cloud vs on-prem vs hybrid. Account for opportunity cost — what could engineers build instead of managing infrastructure?"
|
|
58
|
+
weight: 0.35
|
|
59
|
+
description: "TCO model"
|
|
60
|
+
- type: llm_judge
|
|
61
|
+
criteria: "Optimization strategies are actionable — right-sizing: analyze CPU/memory usage percentiles (p95, not average) to set container limits. Use Vertical Pod Autoscaler recommendations. Spot instances: 60-90% savings for stateless, fault-tolerant workloads. Reserved instances: 1-year or 3-year commitments for baseline capacity. Monitoring costs: reduce metric cardinality, sample logs instead of collecting all, use open-source alternatives (Prometheus + Grafana instead of Datadog for $200K savings). Multi-cloud or serverless for specific workloads"
|
|
62
|
+
weight: 0.35
|
|
63
|
+
description: "Optimization strategies"
|
|
64
|
+
- type: llm_judge
|
|
65
|
+
criteria: "Financial communication is stakeholder-appropriate — present to CFO in business terms: ROI percentage, payback period, cost per transaction/user, comparison with industry benchmarks. Show trends: cost per container decreasing as platform matures. Avoid technical jargon — translate 'right-sizing containers' to 'eliminating waste in compute resources.' Include risk-adjusted scenarios: optimistic (40% savings), realistic (25%), conservative (15%). Demonstrate continuous improvement: quarterly cost reviews, automated rightsizing recommendations"
|
|
66
|
+
weight: 0.30
|
|
67
|
+
description: "Financial communication"
|
package/courses/docker-container-debugging/scenarios/level-5/container-technology-evolution.yaml
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: container-technology-evolution
|
|
3
|
+
level: 5
|
|
4
|
+
course: docker-container-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Analyze container technology evolution — evaluate emerging technologies like WebAssembly, eBPF, unikernels, and serverless containers and their impact on Docker"
|
|
7
|
+
tags: [Docker, WebAssembly, eBPF, serverless, evolution, future, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your company's technology radar review asks: "Is Docker still the
|
|
13
|
+
right bet? What's coming next in containerization?"
|
|
14
|
+
|
|
15
|
+
You need to evaluate emerging technologies and their relationship
|
|
16
|
+
to Docker:
|
|
17
|
+
|
|
18
|
+
1. WebAssembly (Wasm) Containers:
|
|
19
|
+
Docker co-founder Solomon Hykes: "If WASM+WASI existed in 2008,
|
|
20
|
+
we wouldn't have needed to create Docker."
|
|
21
|
+
|
|
22
|
+
Wasm advantages: ~1ms cold start (vs seconds for containers),
|
|
23
|
+
near-native performance, language-agnostic, smaller binaries (KBs
|
|
24
|
+
vs MBs), sandboxed by design. Docker Desktop can already run Wasm
|
|
25
|
+
workloads via containerd's Wasm shims (spin, wasmtime).
|
|
26
|
+
|
|
27
|
+
But: limited system access, no filesystem by default, ecosystem
|
|
28
|
+
still maturing, not suitable for all workloads (databases, legacy apps).
|
|
29
|
+
|
|
30
|
+
2. eBPF for Container Networking/Security:
|
|
31
|
+
Cilium replaces iptables with eBPF for container networking —
|
|
32
|
+
10x better performance for service mesh. Tetragon provides
|
|
33
|
+
kernel-level runtime security without sidecar containers.
|
|
34
|
+
|
|
35
|
+
3. Serverless Containers (AWS Fargate, Google Cloud Run):
|
|
36
|
+
Run containers without managing servers. Pay per second of
|
|
37
|
+
compute. No cluster management, no node scaling.
|
|
38
|
+
Trade-off: less control, cold starts, vendor lock-in, higher
|
|
39
|
+
per-unit cost at scale.
|
|
40
|
+
|
|
41
|
+
4. Unikernels and MicroVMs (Firecracker):
|
|
42
|
+
VM-level isolation with container-like density. Firecracker
|
|
43
|
+
(powers Lambda/Fargate): boots a microVM in 125ms, 5MB memory
|
|
44
|
+
overhead. Kata Containers: run each container in its own microVM.
|
|
45
|
+
|
|
46
|
+
5. OCI Runtime Alternatives:
|
|
47
|
+
containerd replacing Docker daemon. crun (C-based, faster than
|
|
48
|
+
runc). youki (Rust-based). gVisor (kernel-level sandboxing).
|
|
49
|
+
|
|
50
|
+
Task: Evaluate container technology evolution. Write: assessment
|
|
51
|
+
of each technology (maturity, use cases, limitations), impact on
|
|
52
|
+
Docker's role, migration considerations, timeline predictions,
|
|
53
|
+
and strategic recommendations for technology adoption.
|
|
54
|
+
|
|
55
|
+
assertions:
|
|
56
|
+
- type: llm_judge
|
|
57
|
+
criteria: "Technology assessments are balanced — Wasm: production-ready for edge/serverless workloads, not ready to replace general-purpose containers. Excellent for plugins, edge computing, serverless functions. eBPF: production-ready (Cilium, Tetragon), revolutionizing container networking and security. Serverless containers: production-ready, ideal for variable workloads and small teams. MicroVMs: production-ready (Firecracker), used by major cloud providers, good for multi-tenant isolation. Each technology complements rather than replaces Docker"
|
|
58
|
+
weight: 0.35
|
|
59
|
+
description: "Technology assessments"
|
|
60
|
+
- type: llm_judge
|
|
61
|
+
criteria: "Docker's evolving role is explained — Docker is no longer just a runtime — it's a developer experience layer. containerd is the actual container runtime in most Kubernetes clusters. Docker's value: developer workflow (build, test, local development), Dockerfile as standard build format, Docker Desktop as development environment, Docker Hub as distribution platform. Docker won't disappear but its role shifts from 'the container platform' to 'the developer tool for containers.' OCI standards ensure interoperability"
|
|
62
|
+
weight: 0.35
|
|
63
|
+
description: "Docker's role"
|
|
64
|
+
- type: llm_judge
|
|
65
|
+
criteria: "Strategic recommendations are practical — don't chase every new technology. Adopt based on: maturity (production-ready?), team capability (learning curve), ROI (real problems it solves), ecosystem (tooling, community). Timeline: eBPF/Cilium — adopt now for networking. Serverless containers — use for appropriate workloads now. Wasm — pilot for edge/plugin use cases, watch for general workloads. MicroVMs — let cloud providers manage. Key principle: containers (OCI) remain the packaging format; the runtime and orchestration evolve underneath"
|
|
66
|
+
weight: 0.30
|
|
67
|
+
description: "Strategic recommendations"
|
package/courses/docker-container-debugging/scenarios/level-5/disaster-recovery-containers.yaml
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: disaster-recovery-containers
|
|
3
|
+
level: 5
|
|
4
|
+
course: docker-container-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design container disaster recovery — implement backup strategies, multi-region failover, RPO/RTO targets, and chaos engineering for containerized applications"
|
|
7
|
+
tags: [Docker, disaster-recovery, multi-region, RPO-RTO, chaos-engineering, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your container platform experienced a catastrophic failure: a cloud
|
|
13
|
+
provider region outage took down all services for 6 hours. Revenue
|
|
14
|
+
impact: $2.4M. The board demands a disaster recovery plan.
|
|
15
|
+
|
|
16
|
+
Current state (single region):
|
|
17
|
+
- All containers in us-east-1
|
|
18
|
+
- Database backups: daily SQL dumps to S3 (same region)
|
|
19
|
+
- No automated failover
|
|
20
|
+
- Recovery process: manual, undocumented, took 6 hours
|
|
21
|
+
- RPO: 24 hours (last backup could be 24h old)
|
|
22
|
+
- RTO: 6 hours (how long it took to restore)
|
|
23
|
+
|
|
24
|
+
Business requirements:
|
|
25
|
+
- RPO target: < 1 hour (max 1 hour of data loss)
|
|
26
|
+
- RTO target: < 15 minutes (max 15 minutes of downtime)
|
|
27
|
+
- Cost constraint: DR infrastructure < 30% of primary cost
|
|
28
|
+
|
|
29
|
+
Proposed DR architecture:
|
|
30
|
+
|
|
31
|
+
Tier 1 — Critical services (payment, auth, core API):
|
|
32
|
+
Active-active across 2 regions. Database: multi-region replication.
|
|
33
|
+
RPO: ~0 (synchronous replication). RTO: ~0 (automatic failover).
|
|
34
|
+
Cost: 100% duplication.
|
|
35
|
+
|
|
36
|
+
Tier 2 — Important services (user dashboard, notifications):
|
|
37
|
+
Active-passive with warm standby. Database: async replication.
|
|
38
|
+
RPO: < 5 minutes. RTO: < 15 minutes.
|
|
39
|
+
Cost: 30-50% of primary.
|
|
40
|
+
|
|
41
|
+
Tier 3 — Non-critical (analytics, reporting, batch jobs):
|
|
42
|
+
Backup and restore. Database: daily backups to DR region.
|
|
43
|
+
RPO: < 24 hours. RTO: < 4 hours.
|
|
44
|
+
Cost: 10% of primary (storage only).
|
|
45
|
+
|
|
46
|
+
Validation: quarterly DR drills + continuous chaos engineering.
|
|
47
|
+
|
|
48
|
+
Task: Design the container DR strategy. Write: the tiered approach
|
|
49
|
+
with RPO/RTO definitions, multi-region container deployment,
|
|
50
|
+
database replication for containerized databases, automated
|
|
51
|
+
failover mechanisms, DR testing (chaos engineering, game days),
|
|
52
|
+
and cost optimization for DR infrastructure.
|
|
53
|
+
|
|
54
|
+
assertions:
|
|
55
|
+
- type: llm_judge
|
|
56
|
+
criteria: "Tiered DR architecture is justified — not all services need the same DR level. Tier by business impact: revenue-generating services get active-active, supporting services get warm standby, internal tools get backup/restore. RPO (Recovery Point Objective): maximum acceptable data loss. RTO (Recovery Time Objective): maximum acceptable downtime. Cost scales with RPO/RTO: near-zero requires full duplication, longer RPO/RTO uses cheaper strategies. Service dependency mapping determines which services must fail over together"
|
|
57
|
+
weight: 0.35
|
|
58
|
+
description: "Tiered DR"
|
|
59
|
+
- type: llm_judge
|
|
60
|
+
criteria: "Container-specific DR is covered — containers are inherently portable: same image runs anywhere. Stateless containers: deploy to DR region from registry (no data migration needed). Stateful containers: need data replication strategy (database replication, volume snapshots, S3 cross-region replication). Multi-region deployment: global load balancer (Route53/CloudFront), container images replicated to DR region registry, infrastructure-as-code (Terraform) for consistent DR environment. DNS failover: health check based, automatic redirect to DR region"
|
|
61
|
+
weight: 0.35
|
|
62
|
+
description: "Container DR"
|
|
63
|
+
- type: llm_judge
|
|
64
|
+
criteria: "Testing and chaos engineering are practical — DR plan is worthless without testing. Quarterly DR drills: simulate region failure, measure actual RTO/RPO. Chaos engineering: Netflix Chaos Monkey approach — randomly terminate containers in production to verify resilience. Tools: Chaos Monkey, Litmus, Pumba (Docker-specific chaos). Game days: scheduled full-team DR exercises with stakeholder communication practice. Document and improve after each drill. Automated chaos tests in CI/CD pipeline for critical services. Track: actual RTO vs target RTO across drills"
|
|
65
|
+
weight: 0.30
|
|
66
|
+
description: "Testing and chaos"
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: industry-container-patterns
|
|
3
|
+
level: 5
|
|
4
|
+
course: docker-container-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Analyze industry container patterns — evaluate container adoption patterns, anti-patterns, and maturity models across different industries and organization sizes"
|
|
7
|
+
tags: [Docker, industry, patterns, maturity-model, adoption, benchmarks, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're presenting at a container conference on "Container Adoption:
|
|
13
|
+
What We've Learned From 1,000 Deployments." Your research across
|
|
14
|
+
companies of all sizes reveals common patterns:
|
|
15
|
+
|
|
16
|
+
Maturity Model — Container Adoption Stages:
|
|
17
|
+
|
|
18
|
+
Stage 1 — Exploration (6-12 months):
|
|
19
|
+
- Docker on developer laptops for consistent environments
|
|
20
|
+
- One team pilots containerization for a single service
|
|
21
|
+
- Pain point: "it works on my machine" solved immediately
|
|
22
|
+
- Risk: containers treated as "lightweight VMs" (anti-pattern)
|
|
23
|
+
|
|
24
|
+
Stage 2 — Foundation (6-12 months):
|
|
25
|
+
- CI/CD pipeline builds container images
|
|
26
|
+
- Private registry, basic security scanning
|
|
27
|
+
- Docker Compose for staging environments
|
|
28
|
+
- Pain point: deployment consistency, environment parity
|
|
29
|
+
- Risk: lack of orchestration, manual scaling
|
|
30
|
+
|
|
31
|
+
Stage 3 — Scaling (12-18 months):
|
|
32
|
+
- Container orchestration (Kubernetes/Swarm) in production
|
|
33
|
+
- Centralized logging and monitoring
|
|
34
|
+
- Multiple teams containerizing services
|
|
35
|
+
- Pain point: operational complexity, skill gaps
|
|
36
|
+
- Risk: over-engineering, premature microservice decomposition
|
|
37
|
+
|
|
38
|
+
Stage 4 — Optimization (ongoing):
|
|
39
|
+
- Platform team provides self-service container platform
|
|
40
|
+
- GitOps, automated security, cost optimization
|
|
41
|
+
- Containers are default deployment target
|
|
42
|
+
- Pain point: legacy applications, cultural resistance
|
|
43
|
+
- Risk: platform team becomes bottleneck
|
|
44
|
+
|
|
45
|
+
Common anti-patterns observed:
|
|
46
|
+
- "Docker as a package manager" — complex Dockerfiles that replicate
|
|
47
|
+
system configuration instead of building cloud-native apps
|
|
48
|
+
- "Pet containers" — treating containers like servers (ssh in, fix,
|
|
49
|
+
don't restart)
|
|
50
|
+
- "Premature Kubernetes" — choosing K8s when 10 containers on
|
|
51
|
+
Compose would suffice
|
|
52
|
+
|
|
53
|
+
Task: Analyze industry container patterns. Write: the maturity model
|
|
54
|
+
stages with indicators, common anti-patterns and how to avoid them,
|
|
55
|
+
industry-specific considerations (healthcare, finance, government),
|
|
56
|
+
organization size impact on container strategy, and predictions for
|
|
57
|
+
container technology evolution.
|
|
58
|
+
|
|
59
|
+
assertions:
|
|
60
|
+
- type: llm_judge
|
|
61
|
+
criteria: "Maturity model is actionable — each stage should have: indicators (how to know you're at this stage), goals (what to achieve before moving on), risks (what goes wrong at this stage), timeline expectations. Key insight: companies that skip stages fail — you can't adopt Kubernetes effectively without first mastering Docker and CI/CD. Maturity assessment should drive investment decisions. Most organizations are at Stage 2-3, even those who think they're at Stage 4"
|
|
62
|
+
weight: 0.35
|
|
63
|
+
description: "Maturity model"
|
|
64
|
+
- type: llm_judge
|
|
65
|
+
criteria: "Anti-patterns are explained with solutions — pet containers: treat containers as cattle, not pets (immutable infrastructure). Docker as VM: refactor applications for container-native patterns (12-factor, health checks, graceful shutdown). Premature Kubernetes: match orchestration complexity to actual needs. Monolith-in-a-container: valid first step, but plan decomposition. YAML engineering: spending more time on deployment config than application code. Tool sprawl: standardize on a curated set of tools"
|
|
66
|
+
weight: 0.35
|
|
67
|
+
description: "Anti-patterns"
|
|
68
|
+
- type: llm_judge
|
|
69
|
+
criteria: "Industry and evolution perspectives are insightful — healthcare: HIPAA requires encryption at rest/in transit, audit logging, access controls. Finance: PCI-DSS, SOX compliance, air-gapped environments. Government: FedRAMP, data sovereignty, FIPS-validated cryptography. Small companies (< 50 engineers): Docker Compose is often sufficient, don't over-engineer. Enterprise (500+ engineers): platform team is essential. Evolution: WebAssembly (Wasm) containers, serverless containers (Fargate, Cloud Run), eBPF for container networking/security, Unikernels for specialized workloads"
|
|
70
|
+
weight: 0.30
|
|
71
|
+
description: "Industry and evolution"
|