@umacloud/knowledge 1.0.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/00-governance/governance-capabilities.md +557 -0
- package/00-governance/knowledge-map.md +39 -0
- package/00-governance/maintenance-policy.md +76 -0
- package/00-governance/review-checklist.md +81 -0
- package/README.md +13 -0
- package/ai/01-standards/agent-development-complete.md +691 -0
- package/ai/01-standards/llm-application-complete.md +488 -0
- package/ai/01-standards/mlops-complete.md +798 -0
- package/ai/01-standards/prompt-engineering-complete.md +646 -0
- package/ai/01-standards/rag-architecture-complete.md +649 -0
- package/ai/02-playbooks/llm-evaluation-playbook.md +847 -0
- package/ai/03-checklists/ai-project-checklist.md +215 -0
- package/ai/04-antipatterns/ai-antipatterns.md +661 -0
- package/ai/05-cases/case-rag-production.md +147 -0
- package/ai/06-glossary/ai-glossary.md +162 -0
- package/ai/agent-evaluation-benchmark.md +53 -0
- package/ai/ai-agent-memory-context-management.md +41 -0
- package/ai/ai-cost-capacity-optimization-playbook.md +42 -0
- package/ai/ai-data-security-and-compliance-playbook.md +37 -0
- package/ai/ai-domain-index-and-checklist.md +40 -0
- package/ai/ai-governance-maturity-model.md +50 -0
- package/ai/ai-model-selection-and-routing-strategy.md +47 -0
- package/ai/ai-observability-and-oncall-runbook.md +52 -0
- package/ai/ai-rag-engineering-playbook.md +42 -0
- package/ai/ai-red-team-and-safety-evaluation.md +42 -0
- package/ai/ai-release-readiness-and-rollback-gate.md +42 -0
- package/ai/llm-agent-engineering-deep-dive.md +57 -0
- package/ai/prompt-and-tool-guardrails.md +52 -0
- package/api/01-standards/enterprise-api-standards.md +198 -0
- package/api/01-standards/rest-api-design-guide.md +63 -0
- package/api/02-playbooks/api-pagination-playbook.md +93 -0
- package/api/02-playbooks/graphql-production-playbook.md +176 -0
- package/api/03-checklists/api-review-checklist.md +55 -0
- package/api/04-antipatterns/api-antipatterns.md +112 -0
- package/architecture/01-standards/api-gateway-patterns.md +496 -0
- package/architecture/01-standards/cloud-native-patterns.md +644 -0
- package/architecture/01-standards/distributed-systems-patterns.md +591 -0
- package/architecture/01-standards/event-driven-architecture.md +595 -0
- package/architecture/01-standards/microservices-patterns-complete.md +968 -0
- package/architecture/01-standards/microservices-patterns.md +495 -0
- package/architecture/01-standards/system-design-interview.md +664 -0
- package/architecture/02-playbooks/microservices-patterns-playbook.md +137 -0
- package/architecture/02-playbooks/migration-playbook.md +780 -0
- package/architecture/02-playbooks/system-design-playbook.md +779 -0
- package/architecture/03-checklists/architecture-decision-checklist.md +297 -0
- package/architecture/04-antipatterns/architecture-antipatterns.md +417 -0
- package/architecture/05-cases/case-netflix-microservices.md +413 -0
- package/architecture/06-glossary/architecture-glossary.md +164 -0
- package/architecture/adr-template-and-examples.md +38 -0
- package/architecture/api-gateway-deep-dive.md +1291 -0
- package/architecture/configuration-management.md +1162 -0
- package/architecture/distributed-transactions.md +1220 -0
- package/architecture/microservices-complete.md +735 -0
- package/architecture/resilience-and-disaster-patterns.md +37 -0
- package/architecture/service-governance.md +1198 -0
- package/architecture/system-architecture-deep-dive.md +37 -0
- package/backend/01-standards/analytics-and-growth.md +65 -0
- package/backend/01-standards/api-and-error-conventions.md +120 -0
- package/backend/01-standards/application-layering-and-packaging.md +160 -0
- package/backend/01-standards/auth-implementation.md +104 -0
- package/backend/01-standards/backend-framework-idioms.md +74 -0
- package/backend/01-standards/background-jobs-and-async.md +66 -0
- package/backend/01-standards/caching-strategies-complete.md +390 -0
- package/backend/01-standards/config-and-observability.md +77 -0
- package/backend/01-standards/data-modeling-and-persistence.md +94 -0
- package/backend/01-standards/django-complete.md +1765 -0
- package/backend/01-standards/email-and-notifications.md +64 -0
- package/backend/01-standards/fastapi-complete.md +925 -0
- package/backend/01-standards/file-upload-and-storage.md +66 -0
- package/backend/01-standards/graphql-api-complete.md +416 -0
- package/backend/01-standards/llm-application-standard.md +78 -0
- package/backend/01-standards/message-queue-patterns.md +379 -0
- package/backend/01-standards/microservices-and-distributed.md +78 -0
- package/backend/01-standards/nestjs-complete.md +2167 -0
- package/backend/01-standards/payment-integration.md +80 -0
- package/backend/01-standards/rate-limiting-complete.md +451 -0
- package/backend/01-standards/realtime-and-websocket.md +65 -0
- package/backend/01-standards/search-and-filtering.md +64 -0
- package/backend/01-standards/spring-boot-complete.md +445 -0
- package/backend/02-playbooks/api-design-playbook.md +718 -0
- package/backend/02-playbooks/email-send-playbook.md +130 -0
- package/backend/02-playbooks/file-upload-s3-playbook.md +153 -0
- package/backend/02-playbooks/typescript-enterprise-playbook.md +133 -0
- package/backend/02-playbooks/websocket-realtime-playbook.md +154 -0
- package/backend/03-checklists/api-launch-checklist.md +189 -0
- package/backend/04-antipatterns/backend-antipatterns.md +1051 -0
- package/blockchain/01-standards/blockchain-basics.md +557 -0
- package/blockchain/01-standards/smart-contract-development.md +1315 -0
- package/cicd/01-standards/deployment-and-delivery-standard.md +96 -0
- package/cicd/01-standards/github-actions-complete.md +473 -0
- package/cicd/01-standards/release-and-store-submission.md +75 -0
- package/cicd/02-playbooks/cicd-pipeline-playbook.md +144 -0
- package/cicd/02-playbooks/release-management-playbook.md +605 -0
- package/cicd/03-checklists/pipeline-security-checklist.md +168 -0
- package/cicd/04-antipatterns/cicd-antipatterns.md +589 -0
- package/cicd/05-cases/case-deployment-automation.md +221 -0
- package/cicd/05-cases/case-gitops-transformation.md +212 -0
- package/cicd/06-glossary/cicd-glossary.md +114 -0
- package/cicd/cicd-blueprint-deep-dive.md +38 -0
- package/cicd/release-readiness-gate.md +37 -0
- package/cloud-native/01-standards/container-security.md +741 -0
- package/cloud-native/01-standards/kubernetes-complete.md +812 -0
- package/cloud-native/02-playbooks/api-gateway-playbook.md +155 -0
- package/cloud-native/02-playbooks/gitops-with-argocd.md +760 -0
- package/cloud-native/02-playbooks/k8s-troubleshooting-playbook.md +1942 -0
- package/cloud-native/02-playbooks/message-queue-playbook.md +129 -0
- package/cloud-native/02-playbooks/multicloud-governance.md +726 -0
- package/cloud-native/02-playbooks/serverless-patterns.md +788 -0
- package/cloud-native/02-playbooks/service-mesh-playbook.md +612 -0
- package/cloud-native/02-playbooks/terraform-iac-playbook.md +143 -0
- package/cloud-native/03-checklists/container-security-checklist.md +431 -0
- package/cloud-native/03-checklists/k8s-production-readiness-checklist.md +460 -0
- package/cloud-native/04-antipatterns/container-antipatterns.md +660 -0
- package/cloud-native/04-antipatterns/k8s-antipatterns.md +743 -0
- package/cloud-native/05-cases/case-k8s-migration.md +478 -0
- package/cloud-native/05-cases/case-k8s-scaling.md +642 -0
- package/cloud-native/05-cases/case-k8s-security-incident.md +397 -0
- package/cloud-native/06-glossary/cloud-native-glossary.md +337 -0
- package/cross-platform/01-standards/cross-platform-frameworks.md +83 -0
- package/cross-platform/01-standards/platform-selection-and-architecture.md +77 -0
- package/data/01-standards/elasticsearch-complete.md +2098 -0
- package/data/01-standards/postgresql-complete.md +1613 -0
- package/data/01-standards/redis-complete.md +1527 -0
- package/data/02-playbooks/database-optimization-playbook.md +403 -0
- package/data/02-playbooks/elasticsearch-production-playbook.md +132 -0
- package/data/03-checklists/database-launch-checklist.md +187 -0
- package/data/04-antipatterns/database-antipatterns.md +873 -0
- package/data/05-cases/case-database-migration.md +310 -0
- package/data/06-glossary/database-glossary.md +440 -0
- package/data/data-governance-and-modeling-deep-dive.md +39 -0
- package/data-engineering/01-standards/airflow-complete.md +523 -0
- package/data-engineering/01-standards/kafka-complete.md +1521 -0
- package/data-engineering/02-playbooks/spark-etl-playbook.md +496 -0
- package/data-engineering/03-checklists/pipeline-launch-checklist.md +194 -0
- package/data-engineering/04-antipatterns/data-pipeline-antipatterns.md +684 -0
- package/data-engineering/05-cases/case-real-time-pipeline.md +355 -0
- package/data-engineering/06-glossary/data-engineering-glossary.md +429 -0
- package/database/01-standards/database-schema-standards.md +147 -0
- package/database/02-playbooks/postgresql-optimization-quick.md +52 -0
- package/database/02-playbooks/postgresql-performance-optimization.md +58 -0
- package/database/02-playbooks/postgresql-production-playbook.md +146 -0
- package/database/02-playbooks/redis-caching-playbook.md +117 -0
- package/database/03-checklists/database-review-checklist.md +50 -0
- package/database/04-antipatterns/database-antipatterns.md +112 -0
- package/design/01-standards/ui-design-system-complete.md +423 -0
- package/design/02-playbooks/design-handoff-playbook.md +254 -0
- package/design/02-playbooks/design-review-playbook.md +388 -0
- package/design/03-checklists/design-review-checklist.md +246 -0
- package/design/04-antipatterns/design-antipatterns.md +378 -0
- package/design/05-cases/case-design-system-adoption.md +328 -0
- package/design/06-glossary/design-glossary.md +329 -0
- package/design/ui-full-lifecycle-cross-platform-playbook.md +571 -0
- package/design/ux-system-deep-dive.md +38 -0
- package/design-systems/00-craft-rules.md +71 -0
- package/design-systems/aesthetic-families.md +43 -0
- package/design-systems/anti-ai-slop.md +162 -0
- package/design-systems/bold-geometric.md +120 -0
- package/design-systems/brutalist-bold.md +103 -0
- package/design-systems/editorial-clean.md +109 -0
- package/design-systems/glass-aurora.md +108 -0
- package/design-systems/modern-minimal.md +145 -0
- package/design-systems/premium-luxury.md +106 -0
- package/design-systems/product-type-design-map.md +48 -0
- package/design-systems/soft-warm.md +123 -0
- package/design-systems/tech-utility.md +113 -0
- package/desktop/01-standards/desktop-app-standard.md +72 -0
- package/desktop/01-standards/desktop-design.md +71 -0
- package/development/00-governance/document-template.md +41 -0
- package/development/01-standards/api-versioning-strategies.md +432 -0
- package/development/01-standards/authentication-patterns-complete.md +479 -0
- package/development/01-standards/css-architecture-complete.md +550 -0
- package/development/01-standards/database-migration-strategies.md +484 -0
- package/development/01-standards/elasticsearch-complete.md +347 -0
- package/development/01-standards/git-complete.md +371 -0
- package/development/01-standards/golang-complete.md +1565 -0
- package/development/01-standards/graphql-complete.md +298 -0
- package/development/01-standards/javascript-bundlers-complete.md +469 -0
- package/development/01-standards/javascript-typescript-complete.md +528 -0
- package/development/01-standards/jest-complete.md +275 -0
- package/development/01-standards/linux-complete.md +234 -0
- package/development/01-standards/logging-observability-complete.md +526 -0
- package/development/01-standards/microservices-communication.md +502 -0
- package/development/01-standards/mongodb-complete.md +406 -0
- package/development/01-standards/oauth2-complete.md +285 -0
- package/development/01-standards/performance-optimization-complete.md +289 -0
- package/development/01-standards/playwright-complete.md +247 -0
- package/development/01-standards/postgresql-complete.md +456 -0
- package/development/01-standards/pytest-complete.md +340 -0
- package/development/01-standards/python-async-programming.md +902 -0
- package/development/01-standards/python-complete.md +956 -0
- package/development/01-standards/python-decorators-complete.md +799 -0
- package/development/01-standards/python-design-patterns.md +2854 -0
- package/development/01-standards/python-packaging-distribution.md +420 -0
- package/development/01-standards/python-testing-strategies.md +607 -0
- package/development/01-standards/python-web-frameworks-comparison.md +471 -0
- package/development/01-standards/redis-complete.md +317 -0
- package/development/01-standards/rest-api-complete.md +316 -0
- package/development/01-standards/rust-complete.md +578 -0
- package/development/01-standards/typescript-advanced-types.md +1513 -0
- package/development/01-standards/web-security-complete.md +292 -0
- package/development/02-playbooks/api-design-playbook.md +810 -0
- package/development/02-playbooks/database-migration-playbook.md +580 -0
- package/development/02-playbooks/debugging-playbook.md +692 -0
- package/development/02-playbooks/feature-delivery-playbook.md +430 -0
- package/development/02-playbooks/incident-hotfix-playbook.md +387 -0
- package/development/02-playbooks/performance-optimization-playbook.md +531 -0
- package/development/02-playbooks/performance-tuning-playbook.md +652 -0
- package/development/02-playbooks/refactor-playbook.md +403 -0
- package/development/02-playbooks/release-playbook.md +469 -0
- package/development/03-checklists/architecture-review-checklist.md +168 -0
- package/development/03-checklists/data-migration-checklist.md +157 -0
- package/development/03-checklists/oncall-handover-checklist.md +173 -0
- package/development/03-checklists/pr-checklist.md +158 -0
- package/development/03-checklists/production-readiness-checklist.md +190 -0
- package/development/03-checklists/release-readiness-checklist.md +154 -0
- package/development/03-checklists/security-review-checklist.md +182 -0
- package/development/04-antipatterns/api-antipatterns.md +657 -0
- package/development/04-antipatterns/architecture-antipatterns.md +686 -0
- package/development/04-antipatterns/backend-antipatterns.md +648 -0
- package/development/04-antipatterns/cicd-antipatterns.md +540 -0
- package/development/04-antipatterns/code-smell-antipatterns.md +571 -0
- package/development/04-antipatterns/data-antipatterns.md +658 -0
- package/development/04-antipatterns/database-antipatterns.md +578 -0
- package/development/04-antipatterns/frontend-antipatterns.md +635 -0
- package/development/04-antipatterns/reliability-antipatterns.md +700 -0
- package/development/04-antipatterns/security-antipatterns.md +747 -0
- package/development/05-cases/case-api-version-migration.md +428 -0
- package/development/05-cases/case-authorization-hardening.md +383 -0
- package/development/05-cases/case-bluegreen-rollback.md +466 -0
- package/development/05-cases/case-cache-snowball-protection.md +485 -0
- package/development/05-cases/case-ci-cd-pipeline.md +544 -0
- package/development/05-cases/case-database-scaling.md +500 -0
- package/development/05-cases/case-db-hotspot-optimization.md +487 -0
- package/development/05-cases/case-incident-mttr-reduction.md +563 -0
- package/development/05-cases/case-microservice-migration.md +375 -0
- package/development/05-cases/case-performance-optimization.md +406 -0
- package/development/05-cases/case-security-incident-response.md +345 -0
- package/development/06-glossary/full-stack-glossary.md +166 -0
- package/development/09-maturity/quarterly-audit-template.md +35 -0
- package/development/11-ui-excellence/ui-aesthetic-system.md +41 -0
- package/development/11-ui-excellence/ui-engineering-excellence.md +435 -0
- package/development/12-scenarios/development-scenarios-guide.md +565 -0
- package/development/13-implementation-assets/implementation-toolkit.md +282 -0
- package/development/13-implementation-assets/knowledge-gates-execution.md +43 -0
- package/development/14-full-lifecycle/software-lifecycle-gates.md +511 -0
- package/development/15-lifecycle-templates/project-templates-collection.md +791 -0
- package/development/api-contract-and-versioning-guide.md +36 -0
- package/development/api-governance-complete.md +43 -0
- package/development/backend-engineering-complete.md +43 -0
- package/development/code-review-quality-complete.md +43 -0
- package/development/concurrency-reliability-complete.md +43 -0
- package/development/database-engineering-complete.md +43 -0
- package/development/engineering-effectiveness-complete.md +43 -0
- package/development/engineering-standards-deep-dive.md +38 -0
- package/development/frontend-engineering-complete.md +43 -0
- package/development/performance-capacity-complete.md +43 -0
- package/development/refactor-migration-complete.md +42 -0
- package/development/refactoring-and-techdebt-playbook.md +37 -0
- package/development/security-in-development-complete.md +43 -0
- package/devops/01-standards/cicd-pipeline-complete.md +262 -0
- package/devops/01-standards/docker-complete.md +1490 -0
- package/devops/01-standards/github-actions-complete.md +337 -0
- package/devops/01-standards/kubernetes-complete.md +638 -0
- package/devops/01-standards/terraform-complete.md +2117 -0
- package/devops/02-playbooks/docker-compose-playbook.md +233 -0
- package/devops/02-playbooks/docker-k8s-production-playbook.md +186 -0
- package/devops/02-playbooks/docker-production-playbook.md +952 -0
- package/edge-iot/01-standards/edge-iot-complete.md +473 -0
- package/experts/architect/api-design.md +178 -0
- package/experts/architect/methodology.md +124 -0
- package/experts/architect/security.md +75 -0
- package/experts/backend-lead/methodology.md +216 -0
- package/experts/devops/methodology.md +160 -0
- package/experts/frontend-lead/methodology.md +178 -0
- package/experts/product-manager/industry/ecommerce.md +43 -0
- package/experts/product-manager/industry/saas.md +40 -0
- package/experts/product-manager/methodology.md +97 -0
- package/experts/qa-lead/methodology.md +123 -0
- package/experts/qa-lead/test-strategy.md +128 -0
- package/experts/uiux-designer/methodology.md +125 -0
- package/frontend/01-standards/accessibility-complete.md +532 -0
- package/frontend/01-standards/accessibility-standard.md +74 -0
- package/frontend/01-standards/admin-dashboard-and-crud.md +72 -0
- package/frontend/01-standards/design-tokens-complete.md +444 -0
- package/frontend/01-standards/forms-and-validation.md +77 -0
- package/frontend/01-standards/frontend-architecture-and-layering.md +119 -0
- package/frontend/01-standards/i18n-and-localization.md +65 -0
- package/frontend/01-standards/nextjs-complete.md +451 -0
- package/frontend/01-standards/react-complete.md +713 -0
- package/frontend/01-standards/react-hooks-complete-guide.md +1100 -0
- package/frontend/01-standards/react-hooks-complete.md +1171 -0
- package/frontend/01-standards/seo-and-web-vitals.md +77 -0
- package/frontend/01-standards/state-management-complete.md +444 -0
- package/frontend/01-standards/vue-complete.md +499 -0
- package/frontend/01-standards/vue3-complete.md +2002 -0
- package/frontend/01-standards/web-framework-best-practices.md +64 -0
- package/frontend/01-standards/web-performance-complete.md +495 -0
- package/frontend/02-playbooks/accessibility-a11y-playbook.md +161 -0
- package/frontend/02-playbooks/frontend-performance-playbook.md +707 -0
- package/frontend/02-playbooks/i18n-internationalization-playbook.md +120 -0
- package/frontend/02-playbooks/performance-optimization-playbook.md +163 -0
- package/frontend/02-playbooks/react-nextjs-production-playbook.md +167 -0
- package/frontend/02-playbooks/react-state-management-playbook.md +173 -0
- package/frontend/03-checklists/component-quality-checklist.md +166 -0
- package/frontend/03-checklists/frontend-launch-checklist.md +299 -0
- package/frontend/04-antipatterns/frontend-antipatterns.md +886 -0
- package/frontend/05-cases/case-performance-optimization.md +274 -0
- package/harmony/01-standards/harmonyos-arkts-standard.md +75 -0
- package/harmony/01-standards/harmonyos-design.md +65 -0
- package/high-quality-engineering-playbook.md +54 -0
- package/incident/01-standards/incident-response-complete.md +303 -0
- package/incident/02-playbooks/chaos-engineering-playbook.md +883 -0
- package/incident/02-playbooks/postmortem-playbook.md +398 -0
- package/incident/03-checklists/incident-readiness-checklist.md +181 -0
- package/incident/04-antipatterns/incident-antipatterns.md +490 -0
- package/incident/05-cases/case-cascade-failure.md +176 -0
- package/incident/06-glossary/incident-glossary.md +114 -0
- package/incident/postmortem-and-response-deep-dive.md +39 -0
- package/industries/ecommerce/ecommerce-complete.md +631 -0
- package/industries/education/education-complete.md +555 -0
- package/industries/fintech/fintech-complete.md +501 -0
- package/industries/gaming/gaming-complete.md +587 -0
- package/industries/healthcare/healthcare-complete.md +452 -0
- package/low-code/01-standards/low-code-complete.md +944 -0
- package/miniprogram/01-standards/ai-common-mistakes.md +61 -0
- package/miniprogram/01-standards/miniprogram-custom-navbar-capsule.md +77 -0
- package/miniprogram/01-standards/miniprogram-design.md +61 -0
- package/miniprogram/01-standards/miniprogram-standard.md +81 -0
- package/mobile/01-standards/android-material-design.md +70 -0
- package/mobile/01-standards/flutter-complete.md +384 -0
- package/mobile/01-standards/ios-design-hig.md +78 -0
- package/mobile/01-standards/mobile-app-standard.md +85 -0
- package/mobile/01-standards/react-native-complete.md +352 -0
- package/mobile/02-playbooks/mobile-cross-platform-playbook.md +175 -0
- package/mobile/02-playbooks/mobile-performance.md +473 -0
- package/mobile/03-checklists/mobile-release-checklist.md +234 -0
- package/mobile/04-antipatterns/mobile-antipatterns.md +798 -0
- package/mobile/05-cases/case-app-performance.md +500 -0
- package/mobile/05-cases/case-app-startup-optimization.md +218 -0
- package/mobile/06-glossary/mobile-glossary.md +484 -0
- package/observability/01-standards/observability-standards.md +103 -0
- package/observability/02-playbooks/prometheus-grafana-playbook.md +135 -0
- package/observability/02-playbooks/structured-logging-playbook.md +73 -0
- package/observability/03-checklists/observability-checklist.md +54 -0
- package/observability/04-antipatterns/observability-antipatterns.md +106 -0
- package/operations/01-standards/prometheus-monitoring-complete.md +1578 -0
- package/operations/02-playbooks/capacity-planning-playbook.md +620 -0
- package/operations/03-checklists/production-launch-checklist.md +365 -0
- package/operations/04-antipatterns/operations-antipatterns.md +664 -0
- package/operations/05-cases/case-sre-practices.md +581 -0
- package/operations/06-glossary/operations-glossary.md +120 -0
- package/operations/aiops-anomaly-detection.md +758 -0
- package/operations/capacity-planning.md +1061 -0
- package/operations/chaos-engineering.md +659 -0
- package/operations/incident-command-system.md +38 -0
- package/operations/observability-complete.md +442 -0
- package/operations/slo-sli-playbook.md +517 -0
- package/operations/sre-operations-deep-dive.md +39 -0
- package/package.json +8 -0
- package/performance/01-standards/performance-and-scalability.md +80 -0
- package/performance/01-standards/performance-standards.md +156 -0
- package/performance/02-playbooks/query-optimization-playbook.md +103 -0
- package/performance/03-checklists/performance-checklist.md +56 -0
- package/performance/04-antipatterns/performance-antipatterns.md +146 -0
- package/product/01-standards/product-management-complete.md +285 -0
- package/product/02-playbooks/feature-launch-playbook.md +207 -0
- package/product/02-playbooks/user-research-playbook.md +532 -0
- package/product/03-checklists/feature-launch-checklist.md +275 -0
- package/product/04-antipatterns/product-antipatterns.md +355 -0
- package/product/05-cases/case-mvp-to-scale.md +384 -0
- package/product/06-glossary/product-glossary.md +462 -0
- package/product/feature-prioritization-framework.md +40 -0
- package/product/kpi-and-metric-tree.md +37 -0
- package/product/product-discovery-and-prd-deep-dive.md +41 -0
- package/quantum/01-standards/quantum-complete.md +1186 -0
- package/security/01-standards/api-security-complete.md +511 -0
- package/security/01-standards/container-runtime-security.md +574 -0
- package/security/01-standards/data-protection-gdpr.md +543 -0
- package/security/01-standards/owasp-top10-complete.md +1890 -0
- package/security/01-standards/secure-coding-baseline.md +90 -0
- package/security/01-standards/supply-chain-security.md +441 -0
- package/security/01-standards/web-security-checklist.md +108 -0
- package/security/01-standards/zero-trust-architecture.md +521 -0
- package/security/02-playbooks/auth-sso-playbook.md +166 -0
- package/security/02-playbooks/incident-response-security-playbook.md +588 -0
- package/security/02-playbooks/owasp-api-security-playbook.md +129 -0
- package/security/02-playbooks/payment-integration-playbook.md +119 -0
- package/security/02-playbooks/penetration-testing-playbook.md +517 -0
- package/security/03-checklists/security-audit-checklist.md +356 -0
- package/security/04-antipatterns/security-coding-antipatterns.md +580 -0
- package/security/05-cases/case-log4shell-incident.md +537 -0
- package/security/05-cases/case-major-breaches.md +468 -0
- package/security/06-glossary/security-glossary.md +212 -0
- package/security/compliance-automation.md +993 -0
- package/security/container-security.md +680 -0
- package/security/devsecops-complete.md +426 -0
- package/security/sast-dast-sca.md +775 -0
- package/security/secrets-management.md +594 -0
- package/security/security-architecture-deep-dive.md +37 -0
- package/security/threat-modeling-stride-playbook.md +40 -0
- package/seed-templates/auth-system.md +59 -0
- package/seed-templates/blog-content.md +94 -0
- package/seed-templates/dashboard.md +89 -0
- package/seed-templates/docs-site.md +73 -0
- package/seed-templates/e-commerce.md +50 -0
- package/seed-templates/saas-landing.md +92 -0
- package/seed-templates/settings-page.md +51 -0
- package/testing/01-standards/test-strategy-and-layering.md +83 -0
- package/testing/01-standards/testing-strategy-complete.md +422 -0
- package/testing/01-standards/unit-testing-best-practices.md +118 -0
- package/testing/02-playbooks/e2e-testing-playbook.md +988 -0
- package/testing/02-playbooks/testing-strategy-playbook.md +126 -0
- package/testing/03-checklists/test-strategy-checklist.md +208 -0
- package/testing/04-antipatterns/testing-antipatterns.md +718 -0
- package/testing/05-cases/case-testing-transformation.md +300 -0
- package/testing/06-glossary/testing-glossary.md +110 -0
- package/testing/risk-based-test-matrix.md +36 -0
- package/testing/testing-strategy-deep-dive.md +37 -0
|
@@ -0,0 +1,779 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 系统设计作战手册
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
last_updated: 2026-03-28
|
|
5
|
+
owner: architecture-team
|
|
6
|
+
tags: [system-design, architecture, capacity-planning, availability, data-model, API-design]
|
|
7
|
+
status: production
|
|
8
|
+
domain: architecture
|
|
9
|
+
difficulty: intermediate
|
|
10
|
+
quality_score: 70
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# 开发:Excellent(11964948@qq.com)
|
|
14
|
+
# 功能:系统设计全流程作战手册
|
|
15
|
+
# 作用:指导架构师完成从需求分析到详细设计的系统设计全过程
|
|
16
|
+
# 创建时间:2026-03-28
|
|
17
|
+
# 最后修改:2026-03-28
|
|
18
|
+
|
|
19
|
+
## 目标
|
|
20
|
+
|
|
21
|
+
建立系统设计标准化方法论,确保:
|
|
22
|
+
- 设计过程可复现、可评审、可追溯
|
|
23
|
+
- 容量规划基于量化数据而非拍脑袋
|
|
24
|
+
- 可用性设计满足业务 SLA 要求(99.9% ~ 99.99%)
|
|
25
|
+
- 数据模型支撑业务演进,避免频繁 Breaking Change
|
|
26
|
+
- API 设计符合 RESTful / gRPC 最佳实践,向前兼容
|
|
27
|
+
- 设计文档成为团队共识而非个人知识
|
|
28
|
+
|
|
29
|
+
## 适用场景
|
|
30
|
+
|
|
31
|
+
- 新系统从零设计
|
|
32
|
+
- 现有系统大规模重构
|
|
33
|
+
- 关键子系统独立设计(支付/搜索/消息/权限)
|
|
34
|
+
- 技术选型评审
|
|
35
|
+
- 系统设计面试准备
|
|
36
|
+
|
|
37
|
+
## 前置条件
|
|
38
|
+
|
|
39
|
+
### 输入材料
|
|
40
|
+
|
|
41
|
+
- [ ] 产品需求文档(PRD)已确认且功能范围明确
|
|
42
|
+
- [ ] 非功能性需求已量化(QPS / 延迟 / 数据量 / SLA)
|
|
43
|
+
- [ ] 利益相关方已识别(产品/开发/运维/安全/业务)
|
|
44
|
+
- [ ] 技术约束已明确(预算/团队技能栈/现有基础设施/合规)
|
|
45
|
+
- [ ] 竞品/类似系统的技术调研已完成
|
|
46
|
+
|
|
47
|
+
### 工具准备
|
|
48
|
+
|
|
49
|
+
| 工具 | 用途 |
|
|
50
|
+
|------|------|
|
|
51
|
+
| Draw.io / Excalidraw | 架构图绘制 |
|
|
52
|
+
| PlantUML / Mermaid | 时序图/类图 |
|
|
53
|
+
| Notion / Confluence | 设计文档协作 |
|
|
54
|
+
| Benchmarking 工具 | wrk / k6 / vegeta |
|
|
55
|
+
| 原型工具 | Figma / Sketch(如涉及 UI) |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 一、需求分析
|
|
60
|
+
|
|
61
|
+
### 1.1 功能性需求梳理
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
64
|
+
用例清单:
|
|
65
|
+
核心用例(Must Have):
|
|
66
|
+
- UC-001: 用户注册与登录
|
|
67
|
+
- UC-002: 商品浏览与搜索
|
|
68
|
+
- UC-003: 下单与支付
|
|
69
|
+
- UC-004: 订单查询与管理
|
|
70
|
+
|
|
71
|
+
重要用例(Should Have):
|
|
72
|
+
- UC-005: 推荐系统
|
|
73
|
+
- UC-006: 优惠券系统
|
|
74
|
+
- UC-007: 评价系统
|
|
75
|
+
|
|
76
|
+
可选用例(Nice to Have):
|
|
77
|
+
- UC-008: 社交分享
|
|
78
|
+
- UC-009: 直播功能
|
|
79
|
+
|
|
80
|
+
用例优先级矩阵:
|
|
81
|
+
P0(上线必须): UC-001 ~ UC-004
|
|
82
|
+
P1(一期后续): UC-005 ~ UC-007
|
|
83
|
+
P2(二期规划): UC-008 ~ UC-009
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 1.2 非功能性需求量化
|
|
87
|
+
|
|
88
|
+
```yaml
|
|
89
|
+
流量估算:
|
|
90
|
+
DAU: 100 万
|
|
91
|
+
峰值 QPS: DAU × 每用户日均请求 × 峰值系数 / 86400
|
|
92
|
+
# 100万 × 50 × 3 / 86400 ≈ 1736 QPS(读)
|
|
93
|
+
# 写 QPS 通常为读的 1/10 ≈ 174 QPS
|
|
94
|
+
|
|
95
|
+
读写比: 10:1
|
|
96
|
+
峰值流量倍数: 日均的 3~5 倍
|
|
97
|
+
突发流量: 秒杀/大促场景 10~100 倍
|
|
98
|
+
|
|
99
|
+
存储估算:
|
|
100
|
+
单条记录大小: 1 KB(用户)/ 5 KB(订单)/ 0.5 KB(日志)
|
|
101
|
+
日增数据量: 写 QPS × 86400 × 记录大小
|
|
102
|
+
# 174 × 86400 × 5 KB ≈ 72 GB/天(订单)
|
|
103
|
+
年存储量: 72 GB × 365 ≈ 26 TB
|
|
104
|
+
存储方案: 冷热分离(热 3 个月 SSD + 冷归档 S3)
|
|
105
|
+
|
|
106
|
+
延迟要求:
|
|
107
|
+
P50: < 100ms
|
|
108
|
+
P99: < 500ms
|
|
109
|
+
P99.9: < 1s
|
|
110
|
+
|
|
111
|
+
可用性:
|
|
112
|
+
SLA: 99.95%(年停机 < 4.38 小时)
|
|
113
|
+
RPO: < 1 分钟(数据恢复点目标)
|
|
114
|
+
RTO: < 5 分钟(恢复时间目标)
|
|
115
|
+
|
|
116
|
+
一致性:
|
|
117
|
+
强一致性: 支付/库存
|
|
118
|
+
最终一致性: 搜索索引/推荐/统计
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 1.3 约束与限制识别
|
|
122
|
+
|
|
123
|
+
```yaml
|
|
124
|
+
技术约束:
|
|
125
|
+
- 团队技术栈:Java/Go/Python,不考虑 Erlang/Haskell
|
|
126
|
+
- 云平台:AWS(已有合约),不考虑多云
|
|
127
|
+
- 数据合规:用户数据不出境(等保三级)
|
|
128
|
+
- 预算:基础设施月预算 5 万元
|
|
129
|
+
|
|
130
|
+
组织约束:
|
|
131
|
+
- 团队规模:后端 8 人,前端 4 人,运维 2 人
|
|
132
|
+
- 上线时间:3 个月
|
|
133
|
+
- 已有系统:需与现有 ERP / CRM 集成
|
|
134
|
+
|
|
135
|
+
风险清单:
|
|
136
|
+
- 秒杀场景下的库存超卖
|
|
137
|
+
- 支付回调丢失导致的资金不一致
|
|
138
|
+
- 第三方 API 不可用时的降级策略
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 二、高层设计
|
|
144
|
+
|
|
145
|
+
### 2.1 架构风格选择
|
|
146
|
+
|
|
147
|
+
```yaml
|
|
148
|
+
决策矩阵:
|
|
149
|
+
单体架构:
|
|
150
|
+
适用: MVP / 小团队(< 5人)/ 业务简单
|
|
151
|
+
优势: 开发快/部署简单/事务简单
|
|
152
|
+
劣势: 扩展性差/发布耦合
|
|
153
|
+
选择条件: DAU < 10万 且 团队 < 5人
|
|
154
|
+
|
|
155
|
+
微服务架构:
|
|
156
|
+
适用: 复杂业务 / 大团队 / 独立扩缩需求
|
|
157
|
+
优势: 独立部署/技术异构/按需扩缩
|
|
158
|
+
劣势: 分布式复杂度/运维成本高
|
|
159
|
+
选择条件: DAU > 50万 或 团队 > 15人 或 业务域 > 5个
|
|
160
|
+
|
|
161
|
+
模块化单体:
|
|
162
|
+
适用: 中等复杂度 / 中等团队
|
|
163
|
+
优势: 单体简单性 + 模块清晰边界
|
|
164
|
+
劣势: 仍共享部署/需纪律维护边界
|
|
165
|
+
选择条件: 10万 < DAU < 50万 且 5人 < 团队 < 15人
|
|
166
|
+
|
|
167
|
+
事件驱动架构:
|
|
168
|
+
适用: 异步处理 / 系统解耦 / 事件溯源需求
|
|
169
|
+
优势: 松耦合/天然异步/审计友好
|
|
170
|
+
劣势: 最终一致性/调试困难/事件顺序
|
|
171
|
+
选择条件: 大量异步处理 或 需要事件溯源
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### 2.2 核心组件划分
|
|
175
|
+
|
|
176
|
+
```yaml
|
|
177
|
+
# 以电商系统为例
|
|
178
|
+
服务划分:
|
|
179
|
+
用户服务:
|
|
180
|
+
职责: 注册/登录/认证/用户信息管理
|
|
181
|
+
数据库: PostgreSQL(用户主库)
|
|
182
|
+
缓存: Redis(Session / Token)
|
|
183
|
+
对外 API: REST
|
|
184
|
+
|
|
185
|
+
商品服务:
|
|
186
|
+
职责: 商品 CRUD / 类目管理 / 库存管理
|
|
187
|
+
数据库: PostgreSQL(商品库)+ Elasticsearch(搜索)
|
|
188
|
+
缓存: Redis(商品详情/库存)
|
|
189
|
+
对外 API: REST + gRPC(内部)
|
|
190
|
+
|
|
191
|
+
订单服务:
|
|
192
|
+
职责: 下单 / 订单状态管理 / 退款
|
|
193
|
+
数据库: PostgreSQL(订单库,分库分表)
|
|
194
|
+
消息队列: Kafka(订单事件)
|
|
195
|
+
对外 API: REST
|
|
196
|
+
|
|
197
|
+
支付服务:
|
|
198
|
+
职责: 支付对接 / 对账 / 退款
|
|
199
|
+
数据库: PostgreSQL(支付流水,独立库)
|
|
200
|
+
特殊要求: 独立部署/独立审计/PCI-DSS 合规
|
|
201
|
+
|
|
202
|
+
网关服务:
|
|
203
|
+
职责: 路由/限流/认证/日志
|
|
204
|
+
技术: Kong / Nginx + Lua / 自研
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### 2.3 架构图绘制
|
|
208
|
+
|
|
209
|
+
```mermaid
|
|
210
|
+
graph TB
|
|
211
|
+
Client[客户端] --> CDN[CDN]
|
|
212
|
+
CDN --> LB[负载均衡器]
|
|
213
|
+
LB --> Gateway[API 网关]
|
|
214
|
+
|
|
215
|
+
Gateway --> UserService[用户服务]
|
|
216
|
+
Gateway --> ProductService[商品服务]
|
|
217
|
+
Gateway --> OrderService[订单服务]
|
|
218
|
+
Gateway --> PaymentService[支付服务]
|
|
219
|
+
|
|
220
|
+
UserService --> UserDB[(用户DB)]
|
|
221
|
+
UserService --> Redis[(Redis)]
|
|
222
|
+
|
|
223
|
+
ProductService --> ProductDB[(商品DB)]
|
|
224
|
+
ProductService --> ES[(Elasticsearch)]
|
|
225
|
+
|
|
226
|
+
OrderService --> OrderDB[(订单DB)]
|
|
227
|
+
OrderService --> Kafka[Kafka]
|
|
228
|
+
|
|
229
|
+
PaymentService --> PaymentDB[(支付DB)]
|
|
230
|
+
PaymentService --> ThirdPartyPay[第三方支付]
|
|
231
|
+
|
|
232
|
+
Kafka --> NotificationService[通知服务]
|
|
233
|
+
Kafka --> AnalyticsService[分析服务]
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## 三、详细设计
|
|
239
|
+
|
|
240
|
+
### 3.1 数据模型设计
|
|
241
|
+
|
|
242
|
+
```yaml
|
|
243
|
+
设计原则:
|
|
244
|
+
- 业务实体 → 表/集合,业务关系 → 外键/嵌入
|
|
245
|
+
- 读多写少 → 适当反范式化,空间换时间
|
|
246
|
+
- 写多读少 → 严格范式化,减少更新冲突
|
|
247
|
+
- 热数据与冷数据分离存储
|
|
248
|
+
- 预留扩展字段(JSON 列 / 扩展表)
|
|
249
|
+
- 软删除优先于硬删除
|
|
250
|
+
|
|
251
|
+
建模步骤:
|
|
252
|
+
1. 识别核心实体: 用户/商品/订单/支付/地址
|
|
253
|
+
2. 定义实体属性: 按业务需求逐一列出
|
|
254
|
+
3. 确定实体关系: 1:1 / 1:N / N:N
|
|
255
|
+
4. 选择主键策略: 自增 ID / UUID / Snowflake
|
|
256
|
+
5. 设计索引: 按查询模式建立(覆盖索引优先)
|
|
257
|
+
6. 评审: DBA + 开发联合评审
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
```sql
|
|
261
|
+
-- 订单表设计示例
|
|
262
|
+
CREATE TABLE orders (
|
|
263
|
+
id BIGINT PRIMARY KEY, -- Snowflake ID
|
|
264
|
+
user_id BIGINT NOT NULL,
|
|
265
|
+
status VARCHAR(20) NOT NULL DEFAULT 'CREATED',
|
|
266
|
+
total_amount DECIMAL(12,2) NOT NULL,
|
|
267
|
+
currency VARCHAR(3) NOT NULL DEFAULT 'CNY',
|
|
268
|
+
items JSONB NOT NULL, -- 订单项快照
|
|
269
|
+
shipping_address JSONB, -- 地址快照
|
|
270
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
271
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
272
|
+
deleted_at TIMESTAMPTZ, -- 软删除
|
|
273
|
+
|
|
274
|
+
-- 索引
|
|
275
|
+
CONSTRAINT chk_status CHECK (status IN ('CREATED','PAID','SHIPPED','DELIVERED','CANCELLED','REFUNDED'))
|
|
276
|
+
);
|
|
277
|
+
|
|
278
|
+
CREATE INDEX idx_orders_user_id ON orders(user_id);
|
|
279
|
+
CREATE INDEX idx_orders_status ON orders(status) WHERE deleted_at IS NULL;
|
|
280
|
+
CREATE INDEX idx_orders_created_at ON orders(created_at DESC);
|
|
281
|
+
|
|
282
|
+
-- 分库分表策略(当单表 > 5000万行时)
|
|
283
|
+
-- 分片键: user_id
|
|
284
|
+
-- 分片数: 16(按 user_id % 16)
|
|
285
|
+
-- 工具: ShardingSphere / Vitess / Citus
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### 3.2 API 设计
|
|
289
|
+
|
|
290
|
+
```yaml
|
|
291
|
+
设计原则:
|
|
292
|
+
- RESTful 资源命名(名词复数 /users, /orders)
|
|
293
|
+
- 版本化(URL: /v1/ 或 Header: Accept-Version)
|
|
294
|
+
- 统一响应格式(code / message / data / pagination)
|
|
295
|
+
- 幂等设计(POST 带 Idempotency-Key)
|
|
296
|
+
- 向前兼容(新增字段不破坏旧客户端)
|
|
297
|
+
- 错误码体系化(业务码 + HTTP 状态码)
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
```yaml
|
|
301
|
+
# API 设计模板
|
|
302
|
+
POST /v1/orders:
|
|
303
|
+
描述: 创建订单
|
|
304
|
+
认证: Bearer Token(必须)
|
|
305
|
+
幂等: Idempotency-Key Header
|
|
306
|
+
|
|
307
|
+
请求体:
|
|
308
|
+
items:
|
|
309
|
+
- product_id: "prod_123"
|
|
310
|
+
quantity: 2
|
|
311
|
+
shipping_address_id: "addr_456"
|
|
312
|
+
coupon_code: "SAVE20" # 可选
|
|
313
|
+
|
|
314
|
+
响应 201:
|
|
315
|
+
code: 0
|
|
316
|
+
message: "success"
|
|
317
|
+
data:
|
|
318
|
+
order_id: "ord_789"
|
|
319
|
+
status: "CREATED"
|
|
320
|
+
total_amount: 199.00
|
|
321
|
+
created_at: "2026-03-28T10:00:00Z"
|
|
322
|
+
|
|
323
|
+
错误响应:
|
|
324
|
+
400:
|
|
325
|
+
code: 40001
|
|
326
|
+
message: "库存不足"
|
|
327
|
+
details:
|
|
328
|
+
product_id: "prod_123"
|
|
329
|
+
available: 1
|
|
330
|
+
requested: 2
|
|
331
|
+
409:
|
|
332
|
+
code: 40901
|
|
333
|
+
message: "重复请求"
|
|
334
|
+
data:
|
|
335
|
+
order_id: "ord_789" # 返回已创建的订单
|
|
336
|
+
|
|
337
|
+
限流: 10 次/秒/用户
|
|
338
|
+
超时: 5 秒
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
```yaml
|
|
342
|
+
# 错误码体系
|
|
343
|
+
错误码规范:
|
|
344
|
+
格式: 5 位数字 AABBB
|
|
345
|
+
AA: 模块编号(10=用户, 20=商品, 30=订单, 40=支付)
|
|
346
|
+
BBB: 错误序号
|
|
347
|
+
|
|
348
|
+
通用错误:
|
|
349
|
+
00001: 参数校验失败
|
|
350
|
+
00002: 未授权
|
|
351
|
+
00003: 权限不足
|
|
352
|
+
00004: 资源不存在
|
|
353
|
+
00005: 请求过于频繁
|
|
354
|
+
|
|
355
|
+
订单模块:
|
|
356
|
+
30001: 库存不足
|
|
357
|
+
30002: 优惠券已过期
|
|
358
|
+
30003: 订单状态不允许该操作
|
|
359
|
+
30004: 超出单日下单限额
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### 3.3 缓存设计
|
|
363
|
+
|
|
364
|
+
```yaml
|
|
365
|
+
缓存策略矩阵:
|
|
366
|
+
Cache-Aside(旁路缓存):
|
|
367
|
+
适用: 读多写少,缓存命中率高
|
|
368
|
+
流程: 读 → 查缓存 → 未命中 → 查DB → 写缓存
|
|
369
|
+
一致性: 最终一致(TTL 兜底)
|
|
370
|
+
场景: 商品详情/用户信息
|
|
371
|
+
|
|
372
|
+
Write-Through(写穿透):
|
|
373
|
+
适用: 数据一致性要求较高
|
|
374
|
+
流程: 写 → 更新缓存 → 更新DB(同步)
|
|
375
|
+
一致性: 强一致
|
|
376
|
+
场景: 用户余额/积分
|
|
377
|
+
|
|
378
|
+
Write-Behind(写回):
|
|
379
|
+
适用: 写入频繁,允许延迟
|
|
380
|
+
流程: 写 → 更新缓存 → 异步批量写DB
|
|
381
|
+
一致性: 最终一致(可能丢数据)
|
|
382
|
+
场景: 浏览量/点赞数
|
|
383
|
+
|
|
384
|
+
缓存 Key 设计:
|
|
385
|
+
命名规范: "{service}:{entity}:{id}:{field}"
|
|
386
|
+
示例:
|
|
387
|
+
- "product:detail:123" → 商品详情
|
|
388
|
+
- "user:session:abc123" → 用户会话
|
|
389
|
+
- "order:count:user:456" → 用户订单数
|
|
390
|
+
TTL 规范:
|
|
391
|
+
- 热数据: 5~30 分钟
|
|
392
|
+
- 温数据: 1~24 小时
|
|
393
|
+
- 冷数据: 不缓存
|
|
394
|
+
|
|
395
|
+
缓存穿透防护:
|
|
396
|
+
- 布隆过滤器拦截不存在的 Key
|
|
397
|
+
- 空值缓存(TTL 较短,60s)
|
|
398
|
+
- 请求参数校验前置
|
|
399
|
+
|
|
400
|
+
缓存雪崩防护:
|
|
401
|
+
- TTL 加随机抖动(base_ttl ± random(60s))
|
|
402
|
+
- 热 Key 永不过期 + 异步刷新
|
|
403
|
+
- 多级缓存(L1 本地 + L2 Redis)
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
### 3.4 消息队列设计
|
|
407
|
+
|
|
408
|
+
```yaml
|
|
409
|
+
选型对比:
|
|
410
|
+
Kafka:
|
|
411
|
+
吞吐量: 百万/秒
|
|
412
|
+
延迟: 毫秒级
|
|
413
|
+
适用: 日志/事件流/大数据管道
|
|
414
|
+
消息保证: At-least-once / Exactly-once(事务)
|
|
415
|
+
|
|
416
|
+
RabbitMQ:
|
|
417
|
+
吞吐量: 万/秒
|
|
418
|
+
延迟: 微秒级
|
|
419
|
+
适用: 业务消息/任务队列/RPC
|
|
420
|
+
消息保证: At-least-once(确认机制)
|
|
421
|
+
|
|
422
|
+
RocketMQ:
|
|
423
|
+
吞吐量: 十万/秒
|
|
424
|
+
延迟: 毫秒级
|
|
425
|
+
适用: 电商/金融/事务消息
|
|
426
|
+
消息保证: At-least-once / 事务消息
|
|
427
|
+
|
|
428
|
+
Topic 设计:
|
|
429
|
+
命名: "{env}.{service}.{event}.{version}"
|
|
430
|
+
示例:
|
|
431
|
+
- "prod.order.created.v1"
|
|
432
|
+
- "prod.payment.completed.v1"
|
|
433
|
+
- "prod.inventory.updated.v1"
|
|
434
|
+
|
|
435
|
+
分区策略:
|
|
436
|
+
- 订单相关: 按 user_id hash(保证同用户有序)
|
|
437
|
+
- 库存相关: 按 product_id hash
|
|
438
|
+
- 通用: 轮询
|
|
439
|
+
|
|
440
|
+
消费者设计:
|
|
441
|
+
- 幂等消费(通过 message_id 去重)
|
|
442
|
+
- 消费失败重试(指数退避:1s → 2s → 4s → 8s → 死信队列)
|
|
443
|
+
- 消费延迟监控告警(lag > 1000 告警)
|
|
444
|
+
- 消费者组隔离(不同业务场景独立消费者组)
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
|
|
449
|
+
## 四、容量规划
|
|
450
|
+
|
|
451
|
+
### 4.1 计算资源规划
|
|
452
|
+
|
|
453
|
+
```yaml
|
|
454
|
+
估算模型:
|
|
455
|
+
单实例处理能力:
|
|
456
|
+
Go 服务: ~5000 QPS(简单 CRUD)
|
|
457
|
+
Java 服务: ~2000 QPS(简单 CRUD)
|
|
458
|
+
Python 服务: ~500 QPS(简单 CRUD)
|
|
459
|
+
|
|
460
|
+
实例数计算:
|
|
461
|
+
实例数 = 峰值 QPS / 单实例 QPS × 安全系数(1.5)
|
|
462
|
+
# 示例:1736 QPS / 5000 × 1.5 ≈ 1 实例(Go)
|
|
463
|
+
# 考虑高可用最少 3 实例
|
|
464
|
+
|
|
465
|
+
资源规格:
|
|
466
|
+
小型服务: 2C4G(QPS < 500)
|
|
467
|
+
中型服务: 4C8G(500 < QPS < 2000)
|
|
468
|
+
大型服务: 8C16G(QPS > 2000)
|
|
469
|
+
数据库: 8C32G 起步(生产环境)
|
|
470
|
+
|
|
471
|
+
成本估算:
|
|
472
|
+
# AWS 为例(按需价格 × 0.7 预留实例折扣)
|
|
473
|
+
EC2 (c6g.xlarge 4C8G): $0.136/h × 730h ≈ $99/月
|
|
474
|
+
RDS (db.r6g.xlarge 4C32G): $0.48/h × 730h ≈ $350/月
|
|
475
|
+
ElastiCache (r6g.large 2C13G): $0.166/h × 730h ≈ $121/月
|
|
476
|
+
# 3 服务 × 3 实例 × $99 + DB + Redis ≈ $1368/月
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
### 4.2 存储规划
|
|
480
|
+
|
|
481
|
+
```yaml
|
|
482
|
+
数据库存储:
|
|
483
|
+
当前数据量: 计算初始数据量
|
|
484
|
+
日增量: 写 QPS × 86400 × 单条大小
|
|
485
|
+
月增量: 日增量 × 30
|
|
486
|
+
保留期: 热数据 3 个月 / 冷数据 3 年
|
|
487
|
+
总容量: 热存储 + 冷存储 + 30% 余量
|
|
488
|
+
|
|
489
|
+
分库分表阈值:
|
|
490
|
+
- 单表 > 2000 万行:考虑分表
|
|
491
|
+
- 单表 > 5000 万行:必须分表
|
|
492
|
+
- 单库 > 500 GB:考虑分库
|
|
493
|
+
|
|
494
|
+
对象存储:
|
|
495
|
+
图片/文件: S3 + CloudFront CDN
|
|
496
|
+
日志归档: S3 Glacier(成本 $0.004/GB/月)
|
|
497
|
+
数据库备份: S3 Standard-IA
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
### 4.3 带宽规划
|
|
501
|
+
|
|
502
|
+
```yaml
|
|
503
|
+
入站流量:
|
|
504
|
+
API 请求: 峰值 QPS × 平均请求大小
|
|
505
|
+
# 1736 × 2KB ≈ 3.4 MB/s ≈ 27 Mbps
|
|
506
|
+
|
|
507
|
+
出站流量:
|
|
508
|
+
API 响应: 峰值 QPS × 平均响应大小
|
|
509
|
+
# 1736 × 5KB ≈ 8.5 MB/s ≈ 68 Mbps
|
|
510
|
+
静态资源: CDN 承担(独立计费)
|
|
511
|
+
|
|
512
|
+
内网流量:
|
|
513
|
+
服务间调用: 峰值 QPS × 2(请求+响应)× 平均大小
|
|
514
|
+
数据库连接: 连接数 × 心跳 + 查询流量
|
|
515
|
+
消息队列: 生产 QPS × 消息大小 × 消费者数
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
## 五、可用性设计
|
|
521
|
+
|
|
522
|
+
### 5.1 高可用架构
|
|
523
|
+
|
|
524
|
+
```yaml
|
|
525
|
+
多副本:
|
|
526
|
+
应用层: >= 3 实例,跨可用区部署
|
|
527
|
+
数据库: 主从 + 自动 Failover(RDS Multi-AZ)
|
|
528
|
+
缓存: Redis Cluster(3 主 3 从)
|
|
529
|
+
消息队列: Kafka 3 Broker × 3 副本
|
|
530
|
+
|
|
531
|
+
负载均衡:
|
|
532
|
+
外部: ALB/NLB(AWS)/ SLB(阿里云)
|
|
533
|
+
内部: Service Mesh(Istio)/ 客户端负载均衡(gRPC)
|
|
534
|
+
策略: Round-Robin / Least-Connections / 一致性哈希
|
|
535
|
+
|
|
536
|
+
健康检查:
|
|
537
|
+
HTTP: /health 端点,检查 DB/Redis/MQ 连接
|
|
538
|
+
频率: 每 10 秒
|
|
539
|
+
阈值: 连续 3 次失败则摘除
|
|
540
|
+
恢复: 连续 2 次成功则加回
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
### 5.2 降级与熔断
|
|
544
|
+
|
|
545
|
+
```yaml
|
|
546
|
+
熔断器(Circuit Breaker):
|
|
547
|
+
工具: Resilience4j / Sentinel / Hystrix(已废弃)
|
|
548
|
+
配置:
|
|
549
|
+
失败率阈值: 50%
|
|
550
|
+
慢调用阈值: 60%(> 2s 视为慢调用)
|
|
551
|
+
统计窗口: 10s
|
|
552
|
+
最小请求数: 10
|
|
553
|
+
半开状态请求数: 5
|
|
554
|
+
开路等待时间: 30s
|
|
555
|
+
|
|
556
|
+
降级策略矩阵:
|
|
557
|
+
| 服务 | 降级方案 | 用户感知 |
|
|
558
|
+
|------|---------|---------|
|
|
559
|
+
| 推荐服务 | 返回热门商品兜底 | 推荐不精准 |
|
|
560
|
+
| 搜索服务 | 切换到 DB 模糊查询 | 搜索变慢 |
|
|
561
|
+
| 优惠券服务 | 跳过优惠计算,原价展示 | 无法使用优惠券 |
|
|
562
|
+
| 评价服务 | 返回缓存的评价数据 | 评价可能不是最新 |
|
|
563
|
+
| 支付服务 | 不可降级,返回友好提示 | 暂时无法支付 |
|
|
564
|
+
|
|
565
|
+
限流策略:
|
|
566
|
+
接口级: 令牌桶算法,每个 API 独立配额
|
|
567
|
+
用户级: 滑动窗口,防止单用户刷接口
|
|
568
|
+
全局: 系统水位超 80% 触发全局限流
|
|
569
|
+
```
|
|
570
|
+
|
|
571
|
+
### 5.3 灾备方案
|
|
572
|
+
|
|
573
|
+
```yaml
|
|
574
|
+
备份策略:
|
|
575
|
+
数据库:
|
|
576
|
+
全量备份: 每日凌晨 3:00(自动快照)
|
|
577
|
+
增量备份: 持续 WAL 归档(RPO < 1 分钟)
|
|
578
|
+
跨区域备份: 每日同步至灾备区域
|
|
579
|
+
备份验证: 每周自动恢复测试
|
|
580
|
+
|
|
581
|
+
配置与代码:
|
|
582
|
+
Git 仓库: 多地域镜像
|
|
583
|
+
配置中心: 双活或定期快照
|
|
584
|
+
密钥: Vault 高可用 + 跨区域复制
|
|
585
|
+
|
|
586
|
+
灾备等级:
|
|
587
|
+
同城双活:
|
|
588
|
+
- 两个可用区同时提供服务
|
|
589
|
+
- 数据库主从跨可用区
|
|
590
|
+
- RPO ≈ 0, RTO < 5 分钟
|
|
591
|
+
|
|
592
|
+
异地灾备:
|
|
593
|
+
- 主区域服务,灾备区域热备
|
|
594
|
+
- 数据异步复制(RPO < 5 分钟)
|
|
595
|
+
- 灾备切换 RTO < 30 分钟
|
|
596
|
+
|
|
597
|
+
两地三中心:
|
|
598
|
+
- 同城双活 + 异地灾备
|
|
599
|
+
- RPO ≈ 0, RTO < 5 分钟
|
|
600
|
+
- 成本最高,适用于金融/支付
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
605
|
+
## 六、设计评审
|
|
606
|
+
|
|
607
|
+
### 6.1 评审清单
|
|
608
|
+
|
|
609
|
+
```yaml
|
|
610
|
+
功能完整性:
|
|
611
|
+
- [ ] 所有核心用例有对应的设计方案
|
|
612
|
+
- [ ] 边界条件和异常流程已考虑
|
|
613
|
+
- [ ] 数据流向清晰无死角
|
|
614
|
+
|
|
615
|
+
非功能性需求:
|
|
616
|
+
- [ ] 性能:延迟/吞吐量满足 SLA
|
|
617
|
+
- [ ] 可用性:单点故障已消除
|
|
618
|
+
- [ ] 扩展性:水平扩展方案明确
|
|
619
|
+
- [ ] 安全性:认证/授权/加密/审计
|
|
620
|
+
- [ ] 可观测性:日志/指标/追踪/告警
|
|
621
|
+
|
|
622
|
+
数据设计:
|
|
623
|
+
- [ ] 数据模型评审通过(DBA 参与)
|
|
624
|
+
- [ ] 索引方案合理(无冗余/无遗漏)
|
|
625
|
+
- [ ] 分库分表方案(如需要)
|
|
626
|
+
- [ ] 数据迁移方案(如涉及)
|
|
627
|
+
|
|
628
|
+
API 设计:
|
|
629
|
+
- [ ] 向前兼容(旧客户端不受影响)
|
|
630
|
+
- [ ] 幂等设计(POST 操作)
|
|
631
|
+
- [ ] 错误码体系化
|
|
632
|
+
- [ ] 限流/鉴权/版本管理
|
|
633
|
+
|
|
634
|
+
运维就绪:
|
|
635
|
+
- [ ] 部署方案(蓝绿/金丝雀)
|
|
636
|
+
- [ ] 监控指标定义
|
|
637
|
+
- [ ] 告警规则与阈值
|
|
638
|
+
- [ ] 回滚方案
|
|
639
|
+
- [ ] 容量规划文档
|
|
640
|
+
|
|
641
|
+
成本评估:
|
|
642
|
+
- [ ] 基础设施月度成本估算
|
|
643
|
+
- [ ] 数据传输成本
|
|
644
|
+
- [ ] 第三方服务费用
|
|
645
|
+
- [ ] 人力维护成本
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
### 6.2 评审流程
|
|
649
|
+
|
|
650
|
+
```yaml
|
|
651
|
+
评审三轮制:
|
|
652
|
+
第一轮 - 方向评审(高层设计):
|
|
653
|
+
参与人: Tech Lead + 相关服务 Owner
|
|
654
|
+
时间: 设计启动后 2-3 天
|
|
655
|
+
输出: 架构方向确认/否决
|
|
656
|
+
|
|
657
|
+
第二轮 - 详细评审:
|
|
658
|
+
参与人: Tech Lead + DBA + 安全 + 运维 + QA
|
|
659
|
+
时间: 详细设计完成后
|
|
660
|
+
输出: 评审意见列表(按 Must Fix / Should Fix / Nice to Have 分级)
|
|
661
|
+
|
|
662
|
+
第三轮 - 终审:
|
|
663
|
+
参与人: 架构委员会 / CTO
|
|
664
|
+
时间: 评审意见修复后
|
|
665
|
+
输出: 批准 / 有条件批准 / 驳回
|
|
666
|
+
|
|
667
|
+
评审纪律:
|
|
668
|
+
- 评审前至少提前 2 天发出设计文档
|
|
669
|
+
- 评审人必须在评审前已阅读文档
|
|
670
|
+
- 评审聚焦设计方案而非个人偏好
|
|
671
|
+
- Must Fix 项在编码前必须解决
|
|
672
|
+
- 评审记录存档(Confluence / Notion)
|
|
673
|
+
```
|
|
674
|
+
|
|
675
|
+
---
|
|
676
|
+
|
|
677
|
+
## 七、验证
|
|
678
|
+
|
|
679
|
+
### 7.1 设计验证方法
|
|
680
|
+
|
|
681
|
+
```yaml
|
|
682
|
+
原型验证(Spike):
|
|
683
|
+
- 关键技术方案需编写 PoC 验证
|
|
684
|
+
- 性能敏感路径需进行 Benchmark
|
|
685
|
+
- 第三方集成需 Spike 验证 API 可用性
|
|
686
|
+
|
|
687
|
+
压力测试验证:
|
|
688
|
+
# 使用 k6 模拟预期流量
|
|
689
|
+
k6 run --vus 500 --duration 5m load-test.js
|
|
690
|
+
# 验证项:
|
|
691
|
+
# - P99 延迟 < 500ms
|
|
692
|
+
# - 错误率 < 0.1%
|
|
693
|
+
# - 资源利用率 < 80%
|
|
694
|
+
|
|
695
|
+
故障注入验证:
|
|
696
|
+
- 模拟数据库宕机,验证降级方案
|
|
697
|
+
- 模拟网络分区,验证超时与重试
|
|
698
|
+
- 模拟流量突增,验证限流与弹性伸缩
|
|
699
|
+
|
|
700
|
+
安全验证:
|
|
701
|
+
- 威胁建模(STRIDE)
|
|
702
|
+
- 关键 API 安全评审
|
|
703
|
+
- 数据加密方案验证
|
|
704
|
+
```
|
|
705
|
+
|
|
706
|
+
### 7.2 设计文档交付物
|
|
707
|
+
|
|
708
|
+
```yaml
|
|
709
|
+
必须交付:
|
|
710
|
+
- 架构概览图(系统上下文 + 组件图)
|
|
711
|
+
- 数据模型文档(ER 图 + DDL)
|
|
712
|
+
- API 文档(OpenAPI / Protobuf 定义)
|
|
713
|
+
- 部署架构图
|
|
714
|
+
- 容量规划表
|
|
715
|
+
|
|
716
|
+
建议交付:
|
|
717
|
+
- 时序图(核心业务流程)
|
|
718
|
+
- 技术选型决策记录(ADR)
|
|
719
|
+
- 风险清单与缓解方案
|
|
720
|
+
- 成本估算表
|
|
721
|
+
```
|
|
722
|
+
|
|
723
|
+
---
|
|
724
|
+
|
|
725
|
+
## 八、回滚
|
|
726
|
+
|
|
727
|
+
### 设计阶段回滚
|
|
728
|
+
|
|
729
|
+
| 场景 | 回滚方案 |
|
|
730
|
+
|------|---------|
|
|
731
|
+
| 评审否决架构方向 | 回到需求分析阶段重新评估 |
|
|
732
|
+
| PoC 验证技术不可行 | 启用备选技术方案 |
|
|
733
|
+
| 上线后性能不达标 | 按降级方案运行 + 启动优化迭代 |
|
|
734
|
+
| 上线后发现设计缺陷 | 短期补丁修复 + 中期重构计划 |
|
|
735
|
+
|
|
736
|
+
### 技术选型回滚预案
|
|
737
|
+
|
|
738
|
+
```yaml
|
|
739
|
+
# 每个技术选型需预留回滚方案
|
|
740
|
+
数据库:
|
|
741
|
+
主选: PostgreSQL
|
|
742
|
+
回退: MySQL 8.0(SQL 兼容度高)
|
|
743
|
+
隔离: 通过 Repository 层抽象,不直接依赖 PG 特性
|
|
744
|
+
|
|
745
|
+
消息队列:
|
|
746
|
+
主选: Kafka
|
|
747
|
+
回退: RabbitMQ
|
|
748
|
+
隔离: 通过 Message Producer/Consumer 接口抽象
|
|
749
|
+
|
|
750
|
+
缓存:
|
|
751
|
+
主选: Redis Cluster
|
|
752
|
+
回退: Memcached + 本地缓存
|
|
753
|
+
隔离: 通过 Cache Provider 接口抽象
|
|
754
|
+
```
|
|
755
|
+
|
|
756
|
+
---
|
|
757
|
+
|
|
758
|
+
## Agent Checklist
|
|
759
|
+
|
|
760
|
+
供自动化 Agent 在执行系统设计流程时逐项核查:
|
|
761
|
+
|
|
762
|
+
- [ ] 功能性需求已梳理并按优先级排序
|
|
763
|
+
- [ ] 非功能性需求已量化(QPS/延迟/存储/SLA)
|
|
764
|
+
- [ ] 约束与限制已识别并记录
|
|
765
|
+
- [ ] 架构风格已基于量化标准选择
|
|
766
|
+
- [ ] 核心组件已划分且职责边界清晰
|
|
767
|
+
- [ ] 架构图已绘制(系统上下文 + 组件 + 部署)
|
|
768
|
+
- [ ] 数据模型已设计并经 DBA 评审
|
|
769
|
+
- [ ] API 设计遵循 RESTful 规范且向前兼容
|
|
770
|
+
- [ ] 缓存策略已设计(含穿透/雪崩防护)
|
|
771
|
+
- [ ] 消息队列设计(如需要)含幂等消费与死信处理
|
|
772
|
+
- [ ] 容量规划基于量化数据(计算/存储/带宽)
|
|
773
|
+
- [ ] 高可用设计无单点故障
|
|
774
|
+
- [ ] 降级与熔断策略已定义
|
|
775
|
+
- [ ] 灾备方案满足 RPO/RTO 要求
|
|
776
|
+
- [ ] 设计评审已通过(三轮制)
|
|
777
|
+
- [ ] 关键路径已通过 PoC/Benchmark 验证
|
|
778
|
+
- [ ] 每个技术选型有回退方案
|
|
779
|
+
- [ ] 设计文档已交付并归档
|