dojo.md 0.2.0 → 0.2.2
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/hcl-syntax-errors.yaml +65 -0
- package/courses/terraform-infrastructure-setup/scenarios/level-1/provider-configuration.yaml +62 -0
- package/courses/terraform-infrastructure-setup/scenarios/level-1/terraform-init-errors.yaml +72 -0
- package/courses/terraform-infrastructure-setup/scenarios/level-1/variable-and-output-errors.yaml +78 -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 +3 -2
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: observability-platform-design
|
|
3
|
+
level: 4
|
|
4
|
+
course: aws-lambda-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design serverless observability platform — implement comprehensive monitoring, alerting, and debugging infrastructure for Lambda applications at enterprise scale"
|
|
7
|
+
tags: [AWS, Lambda, observability, monitoring, alerting, platform, expert]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your organization runs 200+ Lambda functions across 5 AWS accounts.
|
|
13
|
+
Current monitoring is fragmented:
|
|
14
|
+
|
|
15
|
+
- Each team uses different tools (some CloudWatch, some Datadog,
|
|
16
|
+
some New Relic, some nothing)
|
|
17
|
+
- No standard for structured logging or metrics
|
|
18
|
+
- Debugging cross-function issues requires checking logs in
|
|
19
|
+
multiple accounts and regions manually
|
|
20
|
+
- Last month's incident took 2 hours to diagnose because nobody
|
|
21
|
+
could trace the request across 6 Lambda functions
|
|
22
|
+
|
|
23
|
+
Management asks: "Build a unified observability platform that
|
|
24
|
+
lets any engineer debug any issue in under 15 minutes."
|
|
25
|
+
|
|
26
|
+
Architecture proposal:
|
|
27
|
+
|
|
28
|
+
Logging Layer:
|
|
29
|
+
All functions → Powertools Logger (structured JSON) →
|
|
30
|
+
CloudWatch Logs → Subscription Filter → Kinesis Firehose →
|
|
31
|
+
OpenSearch (centralized) + S3 (archive)
|
|
32
|
+
|
|
33
|
+
Metrics Layer:
|
|
34
|
+
Lambda system metrics + Custom EMF metrics →
|
|
35
|
+
CloudWatch Metrics (cross-account aggregation) →
|
|
36
|
+
Grafana dashboards (unified view)
|
|
37
|
+
|
|
38
|
+
Tracing Layer:
|
|
39
|
+
All functions → X-Ray Active Tracing →
|
|
40
|
+
X-Ray Groups (per-service views) →
|
|
41
|
+
Cross-account trace access
|
|
42
|
+
|
|
43
|
+
Alerting Layer:
|
|
44
|
+
CloudWatch Alarms → SNS → PagerDuty/Slack
|
|
45
|
+
Business metric alarms alongside technical alarms
|
|
46
|
+
|
|
47
|
+
Cost considerations:
|
|
48
|
+
- CloudWatch Logs: $0.50/GB ingested (at 200+ functions, this adds up)
|
|
49
|
+
- OpenSearch cluster: $500-2000/month
|
|
50
|
+
- Datadog alternative: $5 per host/month but Lambda is per-invocation
|
|
51
|
+
- X-Ray: $5/million traces
|
|
52
|
+
|
|
53
|
+
Task: Design the observability platform. Write: standardized
|
|
54
|
+
logging (format, correlation), centralized log aggregation,
|
|
55
|
+
custom metrics and dashboards, distributed tracing across accounts,
|
|
56
|
+
alert strategy (technical + business), and cost management for
|
|
57
|
+
observability at scale.
|
|
58
|
+
|
|
59
|
+
assertions:
|
|
60
|
+
- type: llm_judge
|
|
61
|
+
criteria: "Standardized logging is explained — mandatory standard: all functions use Powertools Logger with JSON format. Required fields: service name, function name, request ID, trace ID, log level, timestamp. Business context: order ID, customer ID, etc. Log levels: ERROR and WARN in all environments, INFO in staging/production, DEBUG only in development. Structured logging enables: CloudWatch Logs Insights queries across all functions, automated parsing in OpenSearch, correlation via trace ID and business IDs"
|
|
62
|
+
weight: 0.35
|
|
63
|
+
description: "Standardized logging"
|
|
64
|
+
- type: llm_judge
|
|
65
|
+
criteria: "Centralized aggregation and tracing are covered — log aggregation: CloudWatch Subscription Filters → Kinesis Firehose → OpenSearch for searchable logs. Cross-account: CloudWatch Logs destination in a central observability account. X-Ray cross-account: centralized trace viewing via X-Ray groups and sampling rules. Alternative: Grafana Loki for logs (cheaper than OpenSearch), Grafana Tempo for traces. Service map: X-Ray service map shows all service dependencies and latency. Correlation: trace ID links logs and traces for any request across all services"
|
|
66
|
+
weight: 0.35
|
|
67
|
+
description: "Aggregation and tracing"
|
|
68
|
+
- type: llm_judge
|
|
69
|
+
criteria: "Alerting and cost management are practical — alert tiers: P1 (customer-impacting, page immediately), P2 (degraded performance, page during business hours), P3 (warning, ticket). Technical alerts: error rate, duration p99, throttles, OOM, cold start rate. Business alerts: order completion rate, payment success rate, user signup rate. Cost management: log sampling for high-volume functions, log retention policy (7 days hot, 30 days warm, 1 year cold S3), X-Ray sampling rules (reduce trace volume), eliminate unused metrics. Budget: observability should be 5-10% of total infrastructure cost. Track: MTTD (time to detect) and MTTR as key observability success metrics"
|
|
70
|
+
weight: 0.30
|
|
71
|
+
description: "Alerting and cost"
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: serverless-architecture-design
|
|
3
|
+
level: 4
|
|
4
|
+
course: aws-lambda-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design serverless architecture — evaluate event-driven patterns, service boundaries, and Lambda-based system design for enterprise applications"
|
|
7
|
+
tags: [AWS, Lambda, architecture, serverless, event-driven, design, expert]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your company is building a new order management system. The CTO
|
|
13
|
+
wants "serverless-first" but the team has concerns about Lambda
|
|
14
|
+
for complex business logic. You need to design the architecture.
|
|
15
|
+
|
|
16
|
+
Requirements:
|
|
17
|
+
- Process 1,000 orders/minute at peak
|
|
18
|
+
- Sub-second API response time
|
|
19
|
+
- Complex order workflow: validate → inventory check → payment →
|
|
20
|
+
fulfillment → notification (5-15 minute total processing)
|
|
21
|
+
- ACID transactions for payment processing
|
|
22
|
+
- Real-time dashboard showing order status
|
|
23
|
+
- 99.95% availability SLA
|
|
24
|
+
|
|
25
|
+
Architecture options debated:
|
|
26
|
+
|
|
27
|
+
Option A — Pure Lambda:
|
|
28
|
+
API Gateway → Lambda for every operation. Each step is a Lambda
|
|
29
|
+
function. State managed in DynamoDB.
|
|
30
|
+
Concern: complex state management, cold start latency, debugging
|
|
31
|
+
distributed transactions.
|
|
32
|
+
|
|
33
|
+
Option B — Lambda + Step Functions:
|
|
34
|
+
API Gateway → Lambda (sync response) → Step Functions (async workflow).
|
|
35
|
+
Step Functions orchestrates the multi-step process with built-in
|
|
36
|
+
error handling, retries, and state tracking.
|
|
37
|
+
Concern: Step Functions cost at volume ($25/million state transitions),
|
|
38
|
+
15-minute standard execution history limit for Express workflows.
|
|
39
|
+
|
|
40
|
+
Option C — Hybrid (Lambda + ECS):
|
|
41
|
+
Lambda for API endpoints and event processing.
|
|
42
|
+
ECS Fargate for the payment processing service (needs persistent
|
|
43
|
+
database connections, complex business logic).
|
|
44
|
+
Concern: operational complexity of managing two compute platforms.
|
|
45
|
+
|
|
46
|
+
Task: Design the serverless architecture. Write: when Lambda is
|
|
47
|
+
the right choice vs containers/EC2, event-driven design patterns
|
|
48
|
+
(choreography vs orchestration), state management strategies
|
|
49
|
+
(DynamoDB, Step Functions), handling distributed transactions
|
|
50
|
+
(saga pattern), and the architecture decision record with trade-offs.
|
|
51
|
+
|
|
52
|
+
assertions:
|
|
53
|
+
- type: llm_judge
|
|
54
|
+
criteria: "Architecture decision is justified — Lambda best for: event-driven processing, API endpoints, data transformation, scheduled tasks, glue logic. Not ideal for: long-running processes (> 15 min), persistent connections, heavy computation, real-time bidirectional communication. Recommended: hybrid — Lambda for APIs + event handlers, Step Functions for workflow orchestration, DynamoDB for state. Payment service: Lambda with idempotency (not ECS) unless complex persistent connection requirements. Step Functions Express for high-volume (cheaper, synchronous), Standard for long-running workflows"
|
|
55
|
+
weight: 0.35
|
|
56
|
+
description: "Architecture decision"
|
|
57
|
+
- type: llm_judge
|
|
58
|
+
criteria: "Event-driven patterns are covered — choreography: services emit events, other services react independently (EventBridge). Pros: loosely coupled, scalable. Cons: hard to trace, no central workflow view. Orchestration: central coordinator (Step Functions) manages the workflow. Pros: visible state, built-in retry/error handling. Cons: central point of control. Recommendation: orchestration for critical business workflows (orders), choreography for cross-domain events (analytics, notifications). Saga pattern for distributed transactions: each step has a compensating action for rollback"
|
|
59
|
+
weight: 0.35
|
|
60
|
+
description: "Event-driven patterns"
|
|
61
|
+
- type: llm_judge
|
|
62
|
+
criteria: "Scalability and reliability are practical — 1,000 orders/minute: Lambda handles easily (configure concurrency appropriately). Sub-second API: provisioned concurrency for user-facing endpoints. DynamoDB: on-demand capacity for variable load, or provisioned with auto-scaling. 99.95% SLA: multi-region active-passive with Route53 failover. Real-time dashboard: DynamoDB Streams → Lambda → WebSocket API (API Gateway). Cost estimate at 1,000 orders/min: Lambda (~$50/month), Step Functions (~$75/month), DynamoDB (~$200/month). Total significantly less than ECS/EC2 equivalent"
|
|
63
|
+
weight: 0.30
|
|
64
|
+
description: "Scalability and reliability"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: serverless-data-architecture
|
|
3
|
+
level: 4
|
|
4
|
+
course: aws-lambda-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design serverless data architecture — implement data storage, processing, and analytics patterns using Lambda with DynamoDB, S3, and streaming services"
|
|
7
|
+
tags: [AWS, Lambda, data-architecture, DynamoDB, analytics, ETL, expert]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your serverless application needs a data architecture that handles:
|
|
13
|
+
- Transactional data (orders, users, payments)
|
|
14
|
+
- Analytical queries (daily reports, trend analysis)
|
|
15
|
+
- Real-time processing (event streams, notifications)
|
|
16
|
+
- Data lake integration (historical data for ML)
|
|
17
|
+
|
|
18
|
+
Current mess:
|
|
19
|
+
- Everything in DynamoDB (including analytical queries)
|
|
20
|
+
- Full table scans costing $2K/month in read capacity
|
|
21
|
+
- No data lake — analytics team exports CSV files manually
|
|
22
|
+
- Lambda functions with embedded SQL-like logic for reporting
|
|
23
|
+
|
|
24
|
+
Proposed architecture:
|
|
25
|
+
|
|
26
|
+
Transactional layer:
|
|
27
|
+
DynamoDB for OLTP (key-value, high throughput, low latency).
|
|
28
|
+
Design: single-table design with GSIs for access patterns.
|
|
29
|
+
Lambda reads/writes with DynamoDB SDK.
|
|
30
|
+
|
|
31
|
+
Change data capture:
|
|
32
|
+
DynamoDB Streams → Lambda → Kinesis Firehose → S3 (data lake).
|
|
33
|
+
All changes replicated to S3 in near-real-time for analytics.
|
|
34
|
+
|
|
35
|
+
Analytics layer:
|
|
36
|
+
S3 (Parquet format) → Athena for SQL queries.
|
|
37
|
+
QuickSight for dashboards. No separate analytics database needed.
|
|
38
|
+
Lambda for ETL transformations between formats.
|
|
39
|
+
|
|
40
|
+
Real-time:
|
|
41
|
+
Kinesis Data Streams → Lambda → processed events →
|
|
42
|
+
EventBridge → downstream consumers.
|
|
43
|
+
|
|
44
|
+
ML pipeline:
|
|
45
|
+
S3 data lake → SageMaker for model training →
|
|
46
|
+
Lambda for inference (or Bedrock for LLM).
|
|
47
|
+
|
|
48
|
+
Task: Design the serverless data architecture. Write: DynamoDB
|
|
49
|
+
design patterns for Lambda (single-table, access patterns),
|
|
50
|
+
change data capture pipeline, analytics with Athena/S3, ETL
|
|
51
|
+
with Lambda (and its limitations for large datasets), real-time
|
|
52
|
+
processing patterns, and cost optimization for data workloads.
|
|
53
|
+
|
|
54
|
+
assertions:
|
|
55
|
+
- type: llm_judge
|
|
56
|
+
criteria: "DynamoDB design for Lambda is explained — single-table design: model multiple entity types in one table, access patterns drive GSI design. Lambda + DynamoDB: use DocumentClient, batch operations for efficiency, handle ProvisionedThroughputExceededException with exponential backoff. On-demand capacity for unpredictable workloads, provisioned with auto-scaling for steady patterns. Connection reuse: keep SDK client outside handler. TTL for automatic data expiration. Transactions for multi-item atomicity. Avoid: full table scans (use query with partition key), storing large items (max 400KB)"
|
|
57
|
+
weight: 0.35
|
|
58
|
+
description: "DynamoDB design"
|
|
59
|
+
- type: llm_judge
|
|
60
|
+
criteria: "Data pipeline and analytics are covered — CDC: DynamoDB Streams → Lambda → transform → Kinesis Firehose → S3 (Parquet). Firehose handles batching and compression automatically. S3 data lake: partition by date for efficient Athena queries (year=2024/month=12/day=01/). Athena: serverless SQL on S3, pay per query ($5/TB scanned). Reduce cost: use Parquet (columnar, compressed), partition pruning. Lambda for ETL limitations: 15-minute timeout, 10GB memory max. For large ETL: use AWS Glue or Step Functions with distributed map"
|
|
61
|
+
weight: 0.35
|
|
62
|
+
description: "Pipeline and analytics"
|
|
63
|
+
- type: llm_judge
|
|
64
|
+
criteria: "Cost optimization is practical — DynamoDB: right-size read/write capacity, use on-demand for variable workloads (avoid over-provisioning). S3: use lifecycle policies (Standard → IA → Glacier). Athena: partition data and use columnar formats to reduce scan cost. Lambda ETL: cost-effective for small transformations but expensive for large datasets (use Glue instead). Data architecture principle: OLTP in DynamoDB, OLAP in Athena/S3, don't mix (DynamoDB scans are expensive). Monitor: DynamoDB consumed capacity, Athena query costs, S3 storage growth. Set budgets per data pipeline"
|
|
65
|
+
weight: 0.30
|
|
66
|
+
description: "Cost optimization"
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: serverless-migration-strategy
|
|
3
|
+
level: 4
|
|
4
|
+
course: aws-lambda-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design serverless migration strategy — plan migration from monolithic/container applications to Lambda with risk mitigation and team enablement"
|
|
7
|
+
tags: [AWS, Lambda, migration, monolith, strangler-fig, modernization, expert]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your company runs a monolithic Node.js API on EC2 Auto Scaling
|
|
13
|
+
Groups. The infrastructure costs $25K/month with 3 ops engineers
|
|
14
|
+
managing servers, patching, and scaling. The CTO wants to migrate
|
|
15
|
+
to serverless to reduce costs and operational burden.
|
|
16
|
+
|
|
17
|
+
Current state:
|
|
18
|
+
- Monolith: 150K lines of code, Express.js, PostgreSQL
|
|
19
|
+
- 45 API endpoints, 12 background jobs
|
|
20
|
+
- 2M requests/day, peak at 500 req/s
|
|
21
|
+
- Average response time: 200ms
|
|
22
|
+
- EC2: 8 c5.xlarge instances + RDS Multi-AZ
|
|
23
|
+
- Team: 15 developers, 3 ops engineers
|
|
24
|
+
|
|
25
|
+
Migration approaches:
|
|
26
|
+
|
|
27
|
+
Option A — Lift and shift (Lambda Web Adapter):
|
|
28
|
+
Wrap the existing Express.js app in Lambda using Lambda Web Adapter.
|
|
29
|
+
Minimal code changes. But: cold starts with 150K LOC = 10+ seconds,
|
|
30
|
+
15-minute timeout limit for background jobs, connection pooling
|
|
31
|
+
issues with RDS.
|
|
32
|
+
|
|
33
|
+
Option B — Strangler Fig pattern:
|
|
34
|
+
Migrate one endpoint at a time. New Lambda function per endpoint,
|
|
35
|
+
API Gateway routes traffic. Old and new run simultaneously.
|
|
36
|
+
Timeline: 6-12 months for full migration.
|
|
37
|
+
|
|
38
|
+
Option C — Rewrite:
|
|
39
|
+
Rebuild from scratch as serverless-native. Best architecture
|
|
40
|
+
but highest risk and longest timeline (12-18 months).
|
|
41
|
+
|
|
42
|
+
Recommended: Option B with selective rewrites. Start with:
|
|
43
|
+
1. Background jobs → Lambda + EventBridge (quick win, no user impact)
|
|
44
|
+
2. Read-heavy endpoints → Lambda + DynamoDB (low risk)
|
|
45
|
+
3. Write-heavy endpoints → Lambda + RDS Proxy (medium risk)
|
|
46
|
+
4. Complex business logic → last (highest risk)
|
|
47
|
+
|
|
48
|
+
Task: Design the serverless migration strategy. Write: assessment
|
|
49
|
+
criteria (what migrates well vs poorly), strangler fig approach,
|
|
50
|
+
database strategy (RDS to DynamoDB vs RDS Proxy), team enablement,
|
|
51
|
+
risk mitigation, and success metrics.
|
|
52
|
+
|
|
53
|
+
assertions:
|
|
54
|
+
- type: llm_judge
|
|
55
|
+
criteria: "Migration assessment is structured — good Lambda candidates: stateless API endpoints, event-driven processing, scheduled tasks, data transformation, webhooks. Poor candidates: long-running processes (> 15 min), WebSocket connections (use API Gateway WebSocket), heavy computation (consider Fargate), tight database coupling (needs refactoring). Assessment matrix: score each component on statelessness, execution time, dependencies, business criticality, and team readiness. Start with low-risk, high-value candidates"
|
|
56
|
+
weight: 0.35
|
|
57
|
+
description: "Migration assessment"
|
|
58
|
+
- type: llm_judge
|
|
59
|
+
criteria: "Strangler fig and database strategy are covered — strangler fig: API Gateway routes specific paths to new Lambda functions, everything else to existing monolith via HTTP proxy. Gradually migrate endpoints until monolith is empty. Database: keep RDS initially (Lambda + RDS Proxy for connection pooling), migrate to DynamoDB only for tables that benefit from it (high read, key-value access patterns). Don't force DynamoDB for relational data. Keep PostgreSQL for complex queries. Dual-write period during migration for validation"
|
|
60
|
+
weight: 0.35
|
|
61
|
+
description: "Strangler fig"
|
|
62
|
+
- type: llm_judge
|
|
63
|
+
criteria: "Team and risk management are practical — team enablement: training program (Lambda basics → event-driven design → testing → operations). Pair experienced serverless developers with migration teams. Start with a pilot team of 3-4 developers. Risk mitigation: keep monolith running until migration is validated (6+ months), implement feature flags for switching between old and new, comprehensive testing at each migration step. Success metrics: infrastructure cost reduction (target: 40-60%), deployment frequency (target: 10x), MTTR (target: 50% reduction), developer velocity (features shipped per sprint)"
|
|
64
|
+
weight: 0.30
|
|
65
|
+
description: "Team and risk"
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: serverless-security-design
|
|
3
|
+
level: 4
|
|
4
|
+
course: aws-lambda-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design serverless security architecture — implement defense-in-depth for Lambda applications including IAM, API authentication, data protection, and compliance"
|
|
7
|
+
tags: [AWS, Lambda, security, IAM, authentication, compliance, expert]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
A penetration test on your serverless application found several
|
|
13
|
+
vulnerabilities:
|
|
14
|
+
|
|
15
|
+
Finding 1 — Overly permissive IAM:
|
|
16
|
+
Lambda execution role has AdministratorAccess. The tester could
|
|
17
|
+
use the function to access ANY resource in the account.
|
|
18
|
+
"From inside the Lambda, I called sts:AssumeRole to escalate to
|
|
19
|
+
any role in the account."
|
|
20
|
+
|
|
21
|
+
Finding 2 — Injection through event data:
|
|
22
|
+
The function constructs a DynamoDB query using unsanitized input:
|
|
23
|
+
const result = await dynamo.query({
|
|
24
|
+
KeyConditionExpression: `userId = ${event.userId}`
|
|
25
|
+
});
|
|
26
|
+
NoSQL injection: userId = "1 OR 1=1" returns all records.
|
|
27
|
+
|
|
28
|
+
Finding 3 — Sensitive data in logs:
|
|
29
|
+
console.log(JSON.stringify(event));
|
|
30
|
+
Logs contain: credit card numbers, SSN, passwords from the
|
|
31
|
+
API request body. CloudWatch Logs retained for 30 days.
|
|
32
|
+
|
|
33
|
+
Finding 4 — No API authentication:
|
|
34
|
+
API Gateway endpoints have no authorizer. Anyone can invoke
|
|
35
|
+
any endpoint with any data.
|
|
36
|
+
|
|
37
|
+
Finding 5 — Dependencies with known CVEs:
|
|
38
|
+
24 npm packages with known vulnerabilities, including a CRITICAL
|
|
39
|
+
RCE in a JSON parsing library.
|
|
40
|
+
|
|
41
|
+
Task: Design serverless security architecture. Write: IAM least
|
|
42
|
+
privilege for Lambda (per-function roles), API authentication
|
|
43
|
+
(Cognito, custom authorizers), input validation and injection
|
|
44
|
+
prevention, sensitive data handling (no logging PII, encryption),
|
|
45
|
+
dependency security scanning, and compliance frameworks for
|
|
46
|
+
serverless (SOC2, HIPAA).
|
|
47
|
+
|
|
48
|
+
assertions:
|
|
49
|
+
- type: llm_judge
|
|
50
|
+
criteria: "IAM and authentication are explained — per-function IAM roles: each Lambda gets its own role with only the permissions it needs. Never use AdministratorAccess or AmazonDynamoDBFullAccess. Specify exact resources (not Resource: *). API authentication: Cognito user pools (managed auth), Lambda authorizers (custom logic), IAM authorization (for service-to-service). API keys for rate limiting (not security). Use AWS WAF on API Gateway for common attack protection (SQL injection, XSS)"
|
|
51
|
+
weight: 0.35
|
|
52
|
+
description: "IAM and authentication"
|
|
53
|
+
- type: llm_judge
|
|
54
|
+
criteria: "Data protection and input validation are covered — input validation: validate all event data at the function entry point. Use schema validation (Zod, Joi, JSON Schema). Never construct queries with string concatenation — use parameterized queries. Sensitive data: never log PII (use Powertools Logger with data masking). Encrypt sensitive data at rest (KMS). Use Secrets Manager for credentials (not environment variables). CloudWatch Logs: set retention policy, encrypt with KMS. Use AWS Macie to detect PII in logs/S3"
|
|
55
|
+
weight: 0.35
|
|
56
|
+
description: "Data protection"
|
|
57
|
+
- type: llm_judge
|
|
58
|
+
criteria: "Dependency security and compliance are practical — dependency scanning: npm audit, Snyk, or GitHub Dependabot in CI/CD. Block deployments with CRITICAL CVEs. Keep dependencies updated (automated PRs for patches). Compliance: SOC2 requires audit logging (CloudTrail), access control (IAM), encryption (KMS). HIPAA: BAA with AWS, encrypt PHI, restrict access, audit all data access. PCI-DSS: network segmentation (VPC), encryption, logging, vulnerability management. Serverless advantage: no server patching, no OS hardening. Serverless risk: larger attack surface through event sources, more IAM complexity"
|
|
59
|
+
weight: 0.30
|
|
60
|
+
description: "Dependencies and compliance"
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: serverless-testing-strategy
|
|
3
|
+
level: 4
|
|
4
|
+
course: aws-lambda-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design serverless testing strategy — implement unit, integration, and end-to-end testing for Lambda applications with mock services and contract testing"
|
|
7
|
+
tags: [AWS, Lambda, testing, unit-test, integration, mocking, expert]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your serverless application has 50 Lambda functions but only 15%
|
|
13
|
+
test coverage. Bugs frequently reach production because:
|
|
14
|
+
|
|
15
|
+
1. Developers don't know how to test Lambda functions locally
|
|
16
|
+
2. Integration tests require deploying to AWS (slow, expensive)
|
|
17
|
+
3. No testing strategy for event-driven flows (events are "fire
|
|
18
|
+
and forget" — how do you verify the chain worked?)
|
|
19
|
+
4. Mocking AWS services is complex (DynamoDB, SQS, S3)
|
|
20
|
+
|
|
21
|
+
Last week, a DynamoDB schema change broke 3 downstream functions.
|
|
22
|
+
No tests caught it because each function was tested in isolation.
|
|
23
|
+
|
|
24
|
+
Testing pyramid for serverless:
|
|
25
|
+
|
|
26
|
+
Layer 1 — Unit Tests (70% of tests):
|
|
27
|
+
Test business logic in isolation. Mock AWS SDK calls.
|
|
28
|
+
$ npm test # runs in milliseconds, no AWS needed
|
|
29
|
+
|
|
30
|
+
Layer 2 — Integration Tests (20% of tests):
|
|
31
|
+
Test Lambda handler with real AWS services (or local emulation).
|
|
32
|
+
$ sam local invoke -e event.json # local Lambda + local DynamoDB
|
|
33
|
+
Or: deploy to a test account and run against real services.
|
|
34
|
+
|
|
35
|
+
Layer 3 — End-to-End Tests (10% of tests):
|
|
36
|
+
Deploy full stack to a test environment, send real HTTP requests,
|
|
37
|
+
verify the complete flow works including async processing.
|
|
38
|
+
$ sam deploy --stack-name test-stack && npm run e2e
|
|
39
|
+
|
|
40
|
+
Contract testing: when Function A writes to DynamoDB and Function B
|
|
41
|
+
reads from it, test that A's output matches B's expected input
|
|
42
|
+
schema (using shared TypeScript types or JSON Schema).
|
|
43
|
+
|
|
44
|
+
Task: Design the serverless testing strategy. Write: the testing
|
|
45
|
+
pyramid for serverless, unit testing Lambda (mocking AWS SDK),
|
|
46
|
+
integration testing (SAM local, LocalStack, real AWS), end-to-end
|
|
47
|
+
testing for event-driven flows, contract testing between services,
|
|
48
|
+
and CI/CD test automation.
|
|
49
|
+
|
|
50
|
+
assertions:
|
|
51
|
+
- type: llm_judge
|
|
52
|
+
criteria: "Testing pyramid is adapted for serverless — unit tests: test pure business logic functions (no Lambda handler), mock AWS SDK calls (aws-sdk-client-mock for v3), test input validation, error handling. Integration tests: test Lambda handler with event payloads, use SAM local or deploy to test account. E2E tests: deploy full stack, trigger real events, verify end-to-end flow including async processing (poll for results). Ratio: 70% unit, 20% integration, 10% E2E. Key difference from traditional: more integration tests needed because serverless glue code interacts heavily with AWS services"
|
|
53
|
+
weight: 0.35
|
|
54
|
+
description: "Testing pyramid"
|
|
55
|
+
- type: llm_judge
|
|
56
|
+
criteria: "Mocking and integration testing are covered — unit test mocking: aws-sdk-client-mock (TypeScript/JavaScript), moto (Python), use dependency injection for testability. Integration: SAM local invoke for Lambda, DynamoDB Local for database, LocalStack for full AWS emulation. Real AWS testing: deploy to dedicated test account with ephemeral stacks (create stack → test → delete). Event testing: generate sample events (sam local generate-event), test with real SQS/EventBridge events. Contract testing: share TypeScript types between producer and consumer, validate schemas in CI"
|
|
57
|
+
weight: 0.35
|
|
58
|
+
description: "Mocking and integration"
|
|
59
|
+
- type: llm_judge
|
|
60
|
+
criteria: "CI/CD automation is practical — CI pipeline stages: (1) unit tests (fast, every commit), (2) sam build + deploy to test account, (3) integration tests against deployed stack, (4) e2e tests, (5) deploy to staging, (6) smoke tests, (7) deploy to production with canary. Testing async flows: after triggering event, poll DynamoDB/S3 for expected result with timeout. Contract testing in CI: validate shared schemas haven't changed incompatibly. Cost: unit tests are free, integration tests cost a few cents per run. Clean up: delete test stacks after tests to avoid cost. Flaky test mitigation: retry async assertions, use eventually-consistent assertions with polling"
|
|
61
|
+
weight: 0.30
|
|
62
|
+
description: "CI/CD automation"
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: board-serverless-strategy
|
|
3
|
+
level: 5
|
|
4
|
+
course: aws-lambda-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Board-level serverless strategy — present Lambda technology investment to the board with business outcomes, competitive advantage, and risk analysis"
|
|
7
|
+
tags: [AWS, Lambda, board, strategy, business-outcomes, executive, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
The board of directors wants to understand the company's serverless
|
|
13
|
+
investment. You (VP Engineering) present at the quarterly board
|
|
14
|
+
meeting. Board members include: a former Fortune 100 CEO, a
|
|
15
|
+
venture capitalist, an industry domain expert, and the company
|
|
16
|
+
founder.
|
|
17
|
+
|
|
18
|
+
Business outcomes since serverless adoption (18 months):
|
|
19
|
+
|
|
20
|
+
Engineering velocity:
|
|
21
|
+
- Deployment frequency: 2/week → 15/day (7.5x increase)
|
|
22
|
+
- Lead time for changes: 3 weeks → 2 days (10x faster)
|
|
23
|
+
- Mean time to recovery: 4 hours → 25 minutes (10x faster)
|
|
24
|
+
- Change failure rate: 15% → 3%
|
|
25
|
+
|
|
26
|
+
Financial impact:
|
|
27
|
+
- Infrastructure cost: $300K/year → $180K/year (40% reduction)
|
|
28
|
+
- Operations team: 8 people → 3 (5 redeployed to product dev)
|
|
29
|
+
- Time to launch new product features: 8 weeks → 2 weeks
|
|
30
|
+
- Estimated revenue from faster feature delivery: +$2M/year
|
|
31
|
+
|
|
32
|
+
Competitive advantage:
|
|
33
|
+
- Launched a real-time pricing feature in 2 weeks that competitors
|
|
34
|
+
took 3 months to match
|
|
35
|
+
- Auto-scaling during Black Friday handled 10x normal traffic
|
|
36
|
+
with zero manual intervention (competitors had outages)
|
|
37
|
+
- Developer satisfaction survey: 8.2/10 (was 5.5/10)
|
|
38
|
+
|
|
39
|
+
Board questions expected:
|
|
40
|
+
1. "What's the risk of being dependent on AWS?"
|
|
41
|
+
2. "What if AWS raises Lambda prices significantly?"
|
|
42
|
+
3. "How does this compare to what our competitors are doing?"
|
|
43
|
+
4. "What's the next big investment needed?"
|
|
44
|
+
|
|
45
|
+
Task: Prepare the board presentation. Write: the executive
|
|
46
|
+
narrative (business outcomes, not technology), DORA metrics
|
|
47
|
+
translation for the board, risk analysis (vendor lock-in,
|
|
48
|
+
pricing), competitive positioning, and the investment roadmap
|
|
49
|
+
for the next 2 years.
|
|
50
|
+
|
|
51
|
+
assertions:
|
|
52
|
+
- type: llm_judge
|
|
53
|
+
criteria: "Executive narrative is non-technical — frame serverless as 'on-demand computing that automatically scales and only charges for actual usage.' Focus on business outcomes: faster feature delivery → revenue growth, lower infrastructure costs → margin improvement, automatic scaling → reliability during peak events, smaller ops team → more engineers building product. Avoid: Lambda, API Gateway, DynamoDB, CloudWatch. Instead: 'automated infrastructure,' 'usage-based pricing,' 'self-healing systems.' Use analogies: 'like electricity — pay for what you use, don't maintain a generator'"
|
|
54
|
+
weight: 0.35
|
|
55
|
+
description: "Executive narrative"
|
|
56
|
+
- type: llm_judge
|
|
57
|
+
criteria: "Risk analysis and competitive positioning are balanced — vendor lock-in: mitigate with clean architecture (business logic is portable, only infrastructure integration code is AWS-specific, ~15% of codebase). AWS pricing risk: historical trend is price reductions, Compute Savings Plans provide price stability. Multi-cloud: not recommended (complexity outweighs benefit) but maintain the ability to migrate if needed. Competitive: serverless is mainstream (60% of AWS customers use Lambda). Competitors on older infrastructure are slower to market. First-mover advantage in serverless competency is a hiring advantage for top talent"
|
|
58
|
+
weight: 0.35
|
|
59
|
+
description: "Risk and competitive"
|
|
60
|
+
- type: llm_judge
|
|
61
|
+
criteria: "Investment roadmap is forward-looking — next 2 years: (1) AI/ML integration: Lambda for inference endpoints, SageMaker for model training. (2) Edge computing: Lambda@Edge for latency-sensitive features. (3) Real-time processing: Kinesis + Lambda for streaming analytics. (4) Global expansion: multi-region active-active for international markets. Investment ask: maintain current platform team (3 engineers, $540K/year), add $100K/year for tooling, $50K for training. Expected return: additional $3M revenue from faster feature delivery, $50K infrastructure savings from continued optimization. Present as competitive moat, not just cost savings"
|
|
62
|
+
weight: 0.30
|
|
63
|
+
description: "Investment roadmap"
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: consulting-serverless-adoption
|
|
3
|
+
level: 5
|
|
4
|
+
course: aws-lambda-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Consulting engagement — design a serverless adoption strategy for an enterprise transitioning from traditional infrastructure to event-driven Lambda architecture"
|
|
7
|
+
tags: [AWS, Lambda, consulting, adoption, enterprise, strategy, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
A Fortune 500 insurance company wants to modernize their claims
|
|
13
|
+
processing system. Currently running on on-premise WebSphere
|
|
14
|
+
application servers with Oracle databases. They've chosen AWS
|
|
15
|
+
and want to evaluate serverless.
|
|
16
|
+
|
|
17
|
+
Current state:
|
|
18
|
+
- 2,000 claims processed daily (peak: 10,000 during natural disasters)
|
|
19
|
+
- Average claim processing: 15 steps over 5-7 business days
|
|
20
|
+
- 200 business rules for claim validation
|
|
21
|
+
- 50+ integrations with external systems (hospitals, repair shops)
|
|
22
|
+
- Regulated: state insurance regulations, NAIC guidelines
|
|
23
|
+
- Team: 80 Java developers, 20 infrastructure ops, 0 cloud experience
|
|
24
|
+
|
|
25
|
+
Stakeholder concerns:
|
|
26
|
+
- CTO: "Can Lambda handle our volume and complexity?"
|
|
27
|
+
- VP Claims: "We can't have ANY downtime during claims season."
|
|
28
|
+
- CISO: "Our data can never leave these 3 regions."
|
|
29
|
+
- CFO: "What's the business case? WebSphere works fine."
|
|
30
|
+
- Dev team lead: "We're Java developers. How do we learn serverless?"
|
|
31
|
+
|
|
32
|
+
Key questions to address:
|
|
33
|
+
1. Is serverless appropriate for complex, long-running workflows?
|
|
34
|
+
2. How do regulated industries use Lambda safely?
|
|
35
|
+
3. What's the migration path from WebSphere + Oracle?
|
|
36
|
+
4. How do we upskill 80 Java developers?
|
|
37
|
+
5. What's the ROI vs maintaining current infrastructure?
|
|
38
|
+
|
|
39
|
+
Task: Design the consulting engagement deliverable. Write: the
|
|
40
|
+
serverless readiness assessment, architecture recommendation
|
|
41
|
+
(what goes to Lambda vs Fargate vs EC2), migration roadmap,
|
|
42
|
+
regulatory compliance approach, team transformation plan, ROI
|
|
43
|
+
model, and risk analysis.
|
|
44
|
+
|
|
45
|
+
assertions:
|
|
46
|
+
- type: llm_judge
|
|
47
|
+
criteria: "Readiness assessment is thorough — evaluate each component: claims intake (Lambda — event-driven, good fit), claims processing workflow (Step Functions — multi-step, long-running), business rules engine (Lambda — stateless logic), document processing (Lambda with S3 triggers), external integrations (Lambda with SQS for buffering), reporting/analytics (Lambda + Athena or Fargate for heavy queries), database (Aurora Serverless or DynamoDB depending on access patterns). Not everything should be Lambda: batch reporting → Fargate, real-time dashboards → EC2/ECS"
|
|
48
|
+
weight: 0.35
|
|
49
|
+
description: "Readiness assessment"
|
|
50
|
+
- type: llm_judge
|
|
51
|
+
criteria: "Migration and compliance are covered — migration: strangler fig pattern, 18-24 month timeline. Phase 1 (6 months): new features as serverless, integrate with existing WebSphere. Phase 2 (6 months): migrate high-value workflows. Phase 3 (6-12 months): migrate remaining, decommission WebSphere. Database: Oracle to Aurora PostgreSQL (compatible, managed), or DynamoDB for appropriate workloads. Compliance: data residency via region selection, encryption (KMS), audit logging (CloudTrail), access control (IAM + Cognito). SOC2/HIPAA: Lambda is compliant, but your implementation must be configured correctly"
|
|
52
|
+
weight: 0.35
|
|
53
|
+
description: "Migration and compliance"
|
|
54
|
+
- type: llm_judge
|
|
55
|
+
criteria: "Team transformation and ROI are practical — Java developers: Lambda supports Java (SnapStart for cold starts), Quarkus/Micronaut for Lambda-optimized frameworks. Training: 3-month program (AWS fundamentals → Lambda → event-driven design → operations). Pilot team of 10 developers leads, then train-the-trainer. ROI: infrastructure savings (40-60%), operational savings (reduce 20 ops staff to 5 platform engineers), developer productivity (faster deployments). Total 3-year ROI: $3-5M net savings. Risk: timeline slippage (mitigate with phased approach), skill gaps (mitigate with training + hiring 3-5 cloud architects), vendor lock-in (mitigate with clean architecture patterns)"
|
|
56
|
+
weight: 0.30
|
|
57
|
+
description: "Team and ROI"
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: industry-serverless-patterns
|
|
3
|
+
level: 5
|
|
4
|
+
course: aws-lambda-debugging
|
|
5
|
+
type: output
|
|
6
|
+
description: "Analyze industry serverless patterns — evaluate serverless adoption across fintech, healthcare, e-commerce, and IoT with maturity models and benchmarks"
|
|
7
|
+
tags: [AWS, Lambda, industry, patterns, maturity, benchmarks, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're writing a whitepaper: "Serverless in Production: Patterns
|
|
13
|
+
Across Industries." Research from 200+ serverless deployments reveals:
|
|
14
|
+
|
|
15
|
+
Industry-specific patterns:
|
|
16
|
+
|
|
17
|
+
Fintech:
|
|
18
|
+
- Lambda for transaction processing (payment events, fraud detection)
|
|
19
|
+
- Step Functions for compliance workflows (KYC, AML checks)
|
|
20
|
+
- Challenge: strict latency requirements (p99 < 100ms for payment APIs)
|
|
21
|
+
- Solution: provisioned concurrency for payment endpoints
|
|
22
|
+
- Regulatory: audit trail via CloudTrail, data encryption mandatory
|
|
23
|
+
|
|
24
|
+
Healthcare:
|
|
25
|
+
- Lambda for HL7/FHIR message processing
|
|
26
|
+
- S3 → Lambda for medical image analysis (with Bedrock/SageMaker)
|
|
27
|
+
- Challenge: HIPAA compliance (BAA, encryption, access control)
|
|
28
|
+
- Solution: VPC Lambda with private endpoints, no PII in logs
|
|
29
|
+
- Data residency: region-locked deployments
|
|
30
|
+
|
|
31
|
+
E-commerce:
|
|
32
|
+
- Lambda for product catalog APIs, recommendation engines
|
|
33
|
+
- EventBridge for order events across microservices
|
|
34
|
+
- Challenge: 10-100x traffic spikes during sales (Black Friday)
|
|
35
|
+
- Solution: pre-scaled provisioned concurrency, DynamoDB on-demand
|
|
36
|
+
- Cost: Lambda is cheaper than EC2 for spiky traffic patterns
|
|
37
|
+
|
|
38
|
+
IoT:
|
|
39
|
+
- Lambda for device event processing (millions of events/day)
|
|
40
|
+
- Kinesis → Lambda for real-time telemetry
|
|
41
|
+
- Challenge: high volume at low cost per event
|
|
42
|
+
- Solution: batch processing (Kinesis batch window), ARM architecture
|
|
43
|
+
- Edge: Greengrass Lambda for on-device processing
|
|
44
|
+
|
|
45
|
+
Task: Analyze industry serverless patterns. Write: industry-specific
|
|
46
|
+
use cases and constraints, maturity model for serverless adoption,
|
|
47
|
+
common pitfalls by industry, performance benchmarks, and strategic
|
|
48
|
+
guidance for each vertical.
|
|
49
|
+
|
|
50
|
+
assertions:
|
|
51
|
+
- type: llm_judge
|
|
52
|
+
criteria: "Industry patterns are specific — fintech: Lambda ideal for event-driven payment processing, Step Functions for multi-step compliance. Key requirement: sub-100ms latency for synchronous APIs, complete audit trail. Healthcare: HIPAA compliance drives architecture (encryption, access logging, data residency). Lambda for processing, not for storing PHI. E-commerce: spiky traffic patterns make Lambda cost-effective (scales to zero between events). IoT: massive volume at low cost — optimize for efficiency (batch, ARM, minimal memory). Each industry has unique regulatory and performance constraints that shape the Lambda architecture"
|
|
53
|
+
weight: 0.35
|
|
54
|
+
description: "Industry patterns"
|
|
55
|
+
- type: llm_judge
|
|
56
|
+
criteria: "Maturity model is actionable — Stage 1 (Experiment): single Lambda function, manual deployment, basic logging. Stage 2 (Foundation): IaC, CI/CD, structured logging, event-driven design. Stage 3 (Scale): multi-function architectures, Step Functions, cross-account, observability platform. Stage 4 (Optimize): cost optimization, security hardening, multi-region, automated remediation. Stage 5 (Transform): serverless-first organization, platform team, self-service, industry-leading practices. Most organizations are at Stage 2-3. Advancing requires investment in people and process, not just technology"
|
|
57
|
+
weight: 0.35
|
|
58
|
+
description: "Maturity model"
|
|
59
|
+
- type: llm_judge
|
|
60
|
+
criteria: "Benchmarks and guidance are data-driven — performance benchmarks: median cold start across industries (Node.js: 200ms, Python: 300ms, Java: 3s, Java+SnapStart: 200ms). Cost benchmarks: $0.001-0.01 per transaction is typical for well-optimized Lambda. Availability: 99.95% with single-region, 99.99% with multi-region. Common pitfalls by industry: fintech (ignoring cold starts for payment APIs), healthcare (PII in CloudWatch Logs), e-commerce (not pre-scaling for known events), IoT (not batching events). Strategic guidance: start with event-driven use cases, expand to APIs, consider containers for steady-state compute"
|
|
61
|
+
weight: 0.30
|
|
62
|
+
description: "Benchmarks and guidance"
|