@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.
Files changed (418) hide show
  1. package/00-governance/governance-capabilities.md +557 -0
  2. package/00-governance/knowledge-map.md +39 -0
  3. package/00-governance/maintenance-policy.md +76 -0
  4. package/00-governance/review-checklist.md +81 -0
  5. package/README.md +13 -0
  6. package/ai/01-standards/agent-development-complete.md +691 -0
  7. package/ai/01-standards/llm-application-complete.md +488 -0
  8. package/ai/01-standards/mlops-complete.md +798 -0
  9. package/ai/01-standards/prompt-engineering-complete.md +646 -0
  10. package/ai/01-standards/rag-architecture-complete.md +649 -0
  11. package/ai/02-playbooks/llm-evaluation-playbook.md +847 -0
  12. package/ai/03-checklists/ai-project-checklist.md +215 -0
  13. package/ai/04-antipatterns/ai-antipatterns.md +661 -0
  14. package/ai/05-cases/case-rag-production.md +147 -0
  15. package/ai/06-glossary/ai-glossary.md +162 -0
  16. package/ai/agent-evaluation-benchmark.md +53 -0
  17. package/ai/ai-agent-memory-context-management.md +41 -0
  18. package/ai/ai-cost-capacity-optimization-playbook.md +42 -0
  19. package/ai/ai-data-security-and-compliance-playbook.md +37 -0
  20. package/ai/ai-domain-index-and-checklist.md +40 -0
  21. package/ai/ai-governance-maturity-model.md +50 -0
  22. package/ai/ai-model-selection-and-routing-strategy.md +47 -0
  23. package/ai/ai-observability-and-oncall-runbook.md +52 -0
  24. package/ai/ai-rag-engineering-playbook.md +42 -0
  25. package/ai/ai-red-team-and-safety-evaluation.md +42 -0
  26. package/ai/ai-release-readiness-and-rollback-gate.md +42 -0
  27. package/ai/llm-agent-engineering-deep-dive.md +57 -0
  28. package/ai/prompt-and-tool-guardrails.md +52 -0
  29. package/api/01-standards/enterprise-api-standards.md +198 -0
  30. package/api/01-standards/rest-api-design-guide.md +63 -0
  31. package/api/02-playbooks/api-pagination-playbook.md +93 -0
  32. package/api/02-playbooks/graphql-production-playbook.md +176 -0
  33. package/api/03-checklists/api-review-checklist.md +55 -0
  34. package/api/04-antipatterns/api-antipatterns.md +112 -0
  35. package/architecture/01-standards/api-gateway-patterns.md +496 -0
  36. package/architecture/01-standards/cloud-native-patterns.md +644 -0
  37. package/architecture/01-standards/distributed-systems-patterns.md +591 -0
  38. package/architecture/01-standards/event-driven-architecture.md +595 -0
  39. package/architecture/01-standards/microservices-patterns-complete.md +968 -0
  40. package/architecture/01-standards/microservices-patterns.md +495 -0
  41. package/architecture/01-standards/system-design-interview.md +664 -0
  42. package/architecture/02-playbooks/microservices-patterns-playbook.md +137 -0
  43. package/architecture/02-playbooks/migration-playbook.md +780 -0
  44. package/architecture/02-playbooks/system-design-playbook.md +779 -0
  45. package/architecture/03-checklists/architecture-decision-checklist.md +297 -0
  46. package/architecture/04-antipatterns/architecture-antipatterns.md +417 -0
  47. package/architecture/05-cases/case-netflix-microservices.md +413 -0
  48. package/architecture/06-glossary/architecture-glossary.md +164 -0
  49. package/architecture/adr-template-and-examples.md +38 -0
  50. package/architecture/api-gateway-deep-dive.md +1291 -0
  51. package/architecture/configuration-management.md +1162 -0
  52. package/architecture/distributed-transactions.md +1220 -0
  53. package/architecture/microservices-complete.md +735 -0
  54. package/architecture/resilience-and-disaster-patterns.md +37 -0
  55. package/architecture/service-governance.md +1198 -0
  56. package/architecture/system-architecture-deep-dive.md +37 -0
  57. package/backend/01-standards/analytics-and-growth.md +65 -0
  58. package/backend/01-standards/api-and-error-conventions.md +120 -0
  59. package/backend/01-standards/application-layering-and-packaging.md +160 -0
  60. package/backend/01-standards/auth-implementation.md +104 -0
  61. package/backend/01-standards/backend-framework-idioms.md +74 -0
  62. package/backend/01-standards/background-jobs-and-async.md +66 -0
  63. package/backend/01-standards/caching-strategies-complete.md +390 -0
  64. package/backend/01-standards/config-and-observability.md +77 -0
  65. package/backend/01-standards/data-modeling-and-persistence.md +94 -0
  66. package/backend/01-standards/django-complete.md +1765 -0
  67. package/backend/01-standards/email-and-notifications.md +64 -0
  68. package/backend/01-standards/fastapi-complete.md +925 -0
  69. package/backend/01-standards/file-upload-and-storage.md +66 -0
  70. package/backend/01-standards/graphql-api-complete.md +416 -0
  71. package/backend/01-standards/llm-application-standard.md +78 -0
  72. package/backend/01-standards/message-queue-patterns.md +379 -0
  73. package/backend/01-standards/microservices-and-distributed.md +78 -0
  74. package/backend/01-standards/nestjs-complete.md +2167 -0
  75. package/backend/01-standards/payment-integration.md +80 -0
  76. package/backend/01-standards/rate-limiting-complete.md +451 -0
  77. package/backend/01-standards/realtime-and-websocket.md +65 -0
  78. package/backend/01-standards/search-and-filtering.md +64 -0
  79. package/backend/01-standards/spring-boot-complete.md +445 -0
  80. package/backend/02-playbooks/api-design-playbook.md +718 -0
  81. package/backend/02-playbooks/email-send-playbook.md +130 -0
  82. package/backend/02-playbooks/file-upload-s3-playbook.md +153 -0
  83. package/backend/02-playbooks/typescript-enterprise-playbook.md +133 -0
  84. package/backend/02-playbooks/websocket-realtime-playbook.md +154 -0
  85. package/backend/03-checklists/api-launch-checklist.md +189 -0
  86. package/backend/04-antipatterns/backend-antipatterns.md +1051 -0
  87. package/blockchain/01-standards/blockchain-basics.md +557 -0
  88. package/blockchain/01-standards/smart-contract-development.md +1315 -0
  89. package/cicd/01-standards/deployment-and-delivery-standard.md +96 -0
  90. package/cicd/01-standards/github-actions-complete.md +473 -0
  91. package/cicd/01-standards/release-and-store-submission.md +75 -0
  92. package/cicd/02-playbooks/cicd-pipeline-playbook.md +144 -0
  93. package/cicd/02-playbooks/release-management-playbook.md +605 -0
  94. package/cicd/03-checklists/pipeline-security-checklist.md +168 -0
  95. package/cicd/04-antipatterns/cicd-antipatterns.md +589 -0
  96. package/cicd/05-cases/case-deployment-automation.md +221 -0
  97. package/cicd/05-cases/case-gitops-transformation.md +212 -0
  98. package/cicd/06-glossary/cicd-glossary.md +114 -0
  99. package/cicd/cicd-blueprint-deep-dive.md +38 -0
  100. package/cicd/release-readiness-gate.md +37 -0
  101. package/cloud-native/01-standards/container-security.md +741 -0
  102. package/cloud-native/01-standards/kubernetes-complete.md +812 -0
  103. package/cloud-native/02-playbooks/api-gateway-playbook.md +155 -0
  104. package/cloud-native/02-playbooks/gitops-with-argocd.md +760 -0
  105. package/cloud-native/02-playbooks/k8s-troubleshooting-playbook.md +1942 -0
  106. package/cloud-native/02-playbooks/message-queue-playbook.md +129 -0
  107. package/cloud-native/02-playbooks/multicloud-governance.md +726 -0
  108. package/cloud-native/02-playbooks/serverless-patterns.md +788 -0
  109. package/cloud-native/02-playbooks/service-mesh-playbook.md +612 -0
  110. package/cloud-native/02-playbooks/terraform-iac-playbook.md +143 -0
  111. package/cloud-native/03-checklists/container-security-checklist.md +431 -0
  112. package/cloud-native/03-checklists/k8s-production-readiness-checklist.md +460 -0
  113. package/cloud-native/04-antipatterns/container-antipatterns.md +660 -0
  114. package/cloud-native/04-antipatterns/k8s-antipatterns.md +743 -0
  115. package/cloud-native/05-cases/case-k8s-migration.md +478 -0
  116. package/cloud-native/05-cases/case-k8s-scaling.md +642 -0
  117. package/cloud-native/05-cases/case-k8s-security-incident.md +397 -0
  118. package/cloud-native/06-glossary/cloud-native-glossary.md +337 -0
  119. package/cross-platform/01-standards/cross-platform-frameworks.md +83 -0
  120. package/cross-platform/01-standards/platform-selection-and-architecture.md +77 -0
  121. package/data/01-standards/elasticsearch-complete.md +2098 -0
  122. package/data/01-standards/postgresql-complete.md +1613 -0
  123. package/data/01-standards/redis-complete.md +1527 -0
  124. package/data/02-playbooks/database-optimization-playbook.md +403 -0
  125. package/data/02-playbooks/elasticsearch-production-playbook.md +132 -0
  126. package/data/03-checklists/database-launch-checklist.md +187 -0
  127. package/data/04-antipatterns/database-antipatterns.md +873 -0
  128. package/data/05-cases/case-database-migration.md +310 -0
  129. package/data/06-glossary/database-glossary.md +440 -0
  130. package/data/data-governance-and-modeling-deep-dive.md +39 -0
  131. package/data-engineering/01-standards/airflow-complete.md +523 -0
  132. package/data-engineering/01-standards/kafka-complete.md +1521 -0
  133. package/data-engineering/02-playbooks/spark-etl-playbook.md +496 -0
  134. package/data-engineering/03-checklists/pipeline-launch-checklist.md +194 -0
  135. package/data-engineering/04-antipatterns/data-pipeline-antipatterns.md +684 -0
  136. package/data-engineering/05-cases/case-real-time-pipeline.md +355 -0
  137. package/data-engineering/06-glossary/data-engineering-glossary.md +429 -0
  138. package/database/01-standards/database-schema-standards.md +147 -0
  139. package/database/02-playbooks/postgresql-optimization-quick.md +52 -0
  140. package/database/02-playbooks/postgresql-performance-optimization.md +58 -0
  141. package/database/02-playbooks/postgresql-production-playbook.md +146 -0
  142. package/database/02-playbooks/redis-caching-playbook.md +117 -0
  143. package/database/03-checklists/database-review-checklist.md +50 -0
  144. package/database/04-antipatterns/database-antipatterns.md +112 -0
  145. package/design/01-standards/ui-design-system-complete.md +423 -0
  146. package/design/02-playbooks/design-handoff-playbook.md +254 -0
  147. package/design/02-playbooks/design-review-playbook.md +388 -0
  148. package/design/03-checklists/design-review-checklist.md +246 -0
  149. package/design/04-antipatterns/design-antipatterns.md +378 -0
  150. package/design/05-cases/case-design-system-adoption.md +328 -0
  151. package/design/06-glossary/design-glossary.md +329 -0
  152. package/design/ui-full-lifecycle-cross-platform-playbook.md +571 -0
  153. package/design/ux-system-deep-dive.md +38 -0
  154. package/design-systems/00-craft-rules.md +71 -0
  155. package/design-systems/aesthetic-families.md +43 -0
  156. package/design-systems/anti-ai-slop.md +162 -0
  157. package/design-systems/bold-geometric.md +120 -0
  158. package/design-systems/brutalist-bold.md +103 -0
  159. package/design-systems/editorial-clean.md +109 -0
  160. package/design-systems/glass-aurora.md +108 -0
  161. package/design-systems/modern-minimal.md +145 -0
  162. package/design-systems/premium-luxury.md +106 -0
  163. package/design-systems/product-type-design-map.md +48 -0
  164. package/design-systems/soft-warm.md +123 -0
  165. package/design-systems/tech-utility.md +113 -0
  166. package/desktop/01-standards/desktop-app-standard.md +72 -0
  167. package/desktop/01-standards/desktop-design.md +71 -0
  168. package/development/00-governance/document-template.md +41 -0
  169. package/development/01-standards/api-versioning-strategies.md +432 -0
  170. package/development/01-standards/authentication-patterns-complete.md +479 -0
  171. package/development/01-standards/css-architecture-complete.md +550 -0
  172. package/development/01-standards/database-migration-strategies.md +484 -0
  173. package/development/01-standards/elasticsearch-complete.md +347 -0
  174. package/development/01-standards/git-complete.md +371 -0
  175. package/development/01-standards/golang-complete.md +1565 -0
  176. package/development/01-standards/graphql-complete.md +298 -0
  177. package/development/01-standards/javascript-bundlers-complete.md +469 -0
  178. package/development/01-standards/javascript-typescript-complete.md +528 -0
  179. package/development/01-standards/jest-complete.md +275 -0
  180. package/development/01-standards/linux-complete.md +234 -0
  181. package/development/01-standards/logging-observability-complete.md +526 -0
  182. package/development/01-standards/microservices-communication.md +502 -0
  183. package/development/01-standards/mongodb-complete.md +406 -0
  184. package/development/01-standards/oauth2-complete.md +285 -0
  185. package/development/01-standards/performance-optimization-complete.md +289 -0
  186. package/development/01-standards/playwright-complete.md +247 -0
  187. package/development/01-standards/postgresql-complete.md +456 -0
  188. package/development/01-standards/pytest-complete.md +340 -0
  189. package/development/01-standards/python-async-programming.md +902 -0
  190. package/development/01-standards/python-complete.md +956 -0
  191. package/development/01-standards/python-decorators-complete.md +799 -0
  192. package/development/01-standards/python-design-patterns.md +2854 -0
  193. package/development/01-standards/python-packaging-distribution.md +420 -0
  194. package/development/01-standards/python-testing-strategies.md +607 -0
  195. package/development/01-standards/python-web-frameworks-comparison.md +471 -0
  196. package/development/01-standards/redis-complete.md +317 -0
  197. package/development/01-standards/rest-api-complete.md +316 -0
  198. package/development/01-standards/rust-complete.md +578 -0
  199. package/development/01-standards/typescript-advanced-types.md +1513 -0
  200. package/development/01-standards/web-security-complete.md +292 -0
  201. package/development/02-playbooks/api-design-playbook.md +810 -0
  202. package/development/02-playbooks/database-migration-playbook.md +580 -0
  203. package/development/02-playbooks/debugging-playbook.md +692 -0
  204. package/development/02-playbooks/feature-delivery-playbook.md +430 -0
  205. package/development/02-playbooks/incident-hotfix-playbook.md +387 -0
  206. package/development/02-playbooks/performance-optimization-playbook.md +531 -0
  207. package/development/02-playbooks/performance-tuning-playbook.md +652 -0
  208. package/development/02-playbooks/refactor-playbook.md +403 -0
  209. package/development/02-playbooks/release-playbook.md +469 -0
  210. package/development/03-checklists/architecture-review-checklist.md +168 -0
  211. package/development/03-checklists/data-migration-checklist.md +157 -0
  212. package/development/03-checklists/oncall-handover-checklist.md +173 -0
  213. package/development/03-checklists/pr-checklist.md +158 -0
  214. package/development/03-checklists/production-readiness-checklist.md +190 -0
  215. package/development/03-checklists/release-readiness-checklist.md +154 -0
  216. package/development/03-checklists/security-review-checklist.md +182 -0
  217. package/development/04-antipatterns/api-antipatterns.md +657 -0
  218. package/development/04-antipatterns/architecture-antipatterns.md +686 -0
  219. package/development/04-antipatterns/backend-antipatterns.md +648 -0
  220. package/development/04-antipatterns/cicd-antipatterns.md +540 -0
  221. package/development/04-antipatterns/code-smell-antipatterns.md +571 -0
  222. package/development/04-antipatterns/data-antipatterns.md +658 -0
  223. package/development/04-antipatterns/database-antipatterns.md +578 -0
  224. package/development/04-antipatterns/frontend-antipatterns.md +635 -0
  225. package/development/04-antipatterns/reliability-antipatterns.md +700 -0
  226. package/development/04-antipatterns/security-antipatterns.md +747 -0
  227. package/development/05-cases/case-api-version-migration.md +428 -0
  228. package/development/05-cases/case-authorization-hardening.md +383 -0
  229. package/development/05-cases/case-bluegreen-rollback.md +466 -0
  230. package/development/05-cases/case-cache-snowball-protection.md +485 -0
  231. package/development/05-cases/case-ci-cd-pipeline.md +544 -0
  232. package/development/05-cases/case-database-scaling.md +500 -0
  233. package/development/05-cases/case-db-hotspot-optimization.md +487 -0
  234. package/development/05-cases/case-incident-mttr-reduction.md +563 -0
  235. package/development/05-cases/case-microservice-migration.md +375 -0
  236. package/development/05-cases/case-performance-optimization.md +406 -0
  237. package/development/05-cases/case-security-incident-response.md +345 -0
  238. package/development/06-glossary/full-stack-glossary.md +166 -0
  239. package/development/09-maturity/quarterly-audit-template.md +35 -0
  240. package/development/11-ui-excellence/ui-aesthetic-system.md +41 -0
  241. package/development/11-ui-excellence/ui-engineering-excellence.md +435 -0
  242. package/development/12-scenarios/development-scenarios-guide.md +565 -0
  243. package/development/13-implementation-assets/implementation-toolkit.md +282 -0
  244. package/development/13-implementation-assets/knowledge-gates-execution.md +43 -0
  245. package/development/14-full-lifecycle/software-lifecycle-gates.md +511 -0
  246. package/development/15-lifecycle-templates/project-templates-collection.md +791 -0
  247. package/development/api-contract-and-versioning-guide.md +36 -0
  248. package/development/api-governance-complete.md +43 -0
  249. package/development/backend-engineering-complete.md +43 -0
  250. package/development/code-review-quality-complete.md +43 -0
  251. package/development/concurrency-reliability-complete.md +43 -0
  252. package/development/database-engineering-complete.md +43 -0
  253. package/development/engineering-effectiveness-complete.md +43 -0
  254. package/development/engineering-standards-deep-dive.md +38 -0
  255. package/development/frontend-engineering-complete.md +43 -0
  256. package/development/performance-capacity-complete.md +43 -0
  257. package/development/refactor-migration-complete.md +42 -0
  258. package/development/refactoring-and-techdebt-playbook.md +37 -0
  259. package/development/security-in-development-complete.md +43 -0
  260. package/devops/01-standards/cicd-pipeline-complete.md +262 -0
  261. package/devops/01-standards/docker-complete.md +1490 -0
  262. package/devops/01-standards/github-actions-complete.md +337 -0
  263. package/devops/01-standards/kubernetes-complete.md +638 -0
  264. package/devops/01-standards/terraform-complete.md +2117 -0
  265. package/devops/02-playbooks/docker-compose-playbook.md +233 -0
  266. package/devops/02-playbooks/docker-k8s-production-playbook.md +186 -0
  267. package/devops/02-playbooks/docker-production-playbook.md +952 -0
  268. package/edge-iot/01-standards/edge-iot-complete.md +473 -0
  269. package/experts/architect/api-design.md +178 -0
  270. package/experts/architect/methodology.md +124 -0
  271. package/experts/architect/security.md +75 -0
  272. package/experts/backend-lead/methodology.md +216 -0
  273. package/experts/devops/methodology.md +160 -0
  274. package/experts/frontend-lead/methodology.md +178 -0
  275. package/experts/product-manager/industry/ecommerce.md +43 -0
  276. package/experts/product-manager/industry/saas.md +40 -0
  277. package/experts/product-manager/methodology.md +97 -0
  278. package/experts/qa-lead/methodology.md +123 -0
  279. package/experts/qa-lead/test-strategy.md +128 -0
  280. package/experts/uiux-designer/methodology.md +125 -0
  281. package/frontend/01-standards/accessibility-complete.md +532 -0
  282. package/frontend/01-standards/accessibility-standard.md +74 -0
  283. package/frontend/01-standards/admin-dashboard-and-crud.md +72 -0
  284. package/frontend/01-standards/design-tokens-complete.md +444 -0
  285. package/frontend/01-standards/forms-and-validation.md +77 -0
  286. package/frontend/01-standards/frontend-architecture-and-layering.md +119 -0
  287. package/frontend/01-standards/i18n-and-localization.md +65 -0
  288. package/frontend/01-standards/nextjs-complete.md +451 -0
  289. package/frontend/01-standards/react-complete.md +713 -0
  290. package/frontend/01-standards/react-hooks-complete-guide.md +1100 -0
  291. package/frontend/01-standards/react-hooks-complete.md +1171 -0
  292. package/frontend/01-standards/seo-and-web-vitals.md +77 -0
  293. package/frontend/01-standards/state-management-complete.md +444 -0
  294. package/frontend/01-standards/vue-complete.md +499 -0
  295. package/frontend/01-standards/vue3-complete.md +2002 -0
  296. package/frontend/01-standards/web-framework-best-practices.md +64 -0
  297. package/frontend/01-standards/web-performance-complete.md +495 -0
  298. package/frontend/02-playbooks/accessibility-a11y-playbook.md +161 -0
  299. package/frontend/02-playbooks/frontend-performance-playbook.md +707 -0
  300. package/frontend/02-playbooks/i18n-internationalization-playbook.md +120 -0
  301. package/frontend/02-playbooks/performance-optimization-playbook.md +163 -0
  302. package/frontend/02-playbooks/react-nextjs-production-playbook.md +167 -0
  303. package/frontend/02-playbooks/react-state-management-playbook.md +173 -0
  304. package/frontend/03-checklists/component-quality-checklist.md +166 -0
  305. package/frontend/03-checklists/frontend-launch-checklist.md +299 -0
  306. package/frontend/04-antipatterns/frontend-antipatterns.md +886 -0
  307. package/frontend/05-cases/case-performance-optimization.md +274 -0
  308. package/harmony/01-standards/harmonyos-arkts-standard.md +75 -0
  309. package/harmony/01-standards/harmonyos-design.md +65 -0
  310. package/high-quality-engineering-playbook.md +54 -0
  311. package/incident/01-standards/incident-response-complete.md +303 -0
  312. package/incident/02-playbooks/chaos-engineering-playbook.md +883 -0
  313. package/incident/02-playbooks/postmortem-playbook.md +398 -0
  314. package/incident/03-checklists/incident-readiness-checklist.md +181 -0
  315. package/incident/04-antipatterns/incident-antipatterns.md +490 -0
  316. package/incident/05-cases/case-cascade-failure.md +176 -0
  317. package/incident/06-glossary/incident-glossary.md +114 -0
  318. package/incident/postmortem-and-response-deep-dive.md +39 -0
  319. package/industries/ecommerce/ecommerce-complete.md +631 -0
  320. package/industries/education/education-complete.md +555 -0
  321. package/industries/fintech/fintech-complete.md +501 -0
  322. package/industries/gaming/gaming-complete.md +587 -0
  323. package/industries/healthcare/healthcare-complete.md +452 -0
  324. package/low-code/01-standards/low-code-complete.md +944 -0
  325. package/miniprogram/01-standards/ai-common-mistakes.md +61 -0
  326. package/miniprogram/01-standards/miniprogram-custom-navbar-capsule.md +77 -0
  327. package/miniprogram/01-standards/miniprogram-design.md +61 -0
  328. package/miniprogram/01-standards/miniprogram-standard.md +81 -0
  329. package/mobile/01-standards/android-material-design.md +70 -0
  330. package/mobile/01-standards/flutter-complete.md +384 -0
  331. package/mobile/01-standards/ios-design-hig.md +78 -0
  332. package/mobile/01-standards/mobile-app-standard.md +85 -0
  333. package/mobile/01-standards/react-native-complete.md +352 -0
  334. package/mobile/02-playbooks/mobile-cross-platform-playbook.md +175 -0
  335. package/mobile/02-playbooks/mobile-performance.md +473 -0
  336. package/mobile/03-checklists/mobile-release-checklist.md +234 -0
  337. package/mobile/04-antipatterns/mobile-antipatterns.md +798 -0
  338. package/mobile/05-cases/case-app-performance.md +500 -0
  339. package/mobile/05-cases/case-app-startup-optimization.md +218 -0
  340. package/mobile/06-glossary/mobile-glossary.md +484 -0
  341. package/observability/01-standards/observability-standards.md +103 -0
  342. package/observability/02-playbooks/prometheus-grafana-playbook.md +135 -0
  343. package/observability/02-playbooks/structured-logging-playbook.md +73 -0
  344. package/observability/03-checklists/observability-checklist.md +54 -0
  345. package/observability/04-antipatterns/observability-antipatterns.md +106 -0
  346. package/operations/01-standards/prometheus-monitoring-complete.md +1578 -0
  347. package/operations/02-playbooks/capacity-planning-playbook.md +620 -0
  348. package/operations/03-checklists/production-launch-checklist.md +365 -0
  349. package/operations/04-antipatterns/operations-antipatterns.md +664 -0
  350. package/operations/05-cases/case-sre-practices.md +581 -0
  351. package/operations/06-glossary/operations-glossary.md +120 -0
  352. package/operations/aiops-anomaly-detection.md +758 -0
  353. package/operations/capacity-planning.md +1061 -0
  354. package/operations/chaos-engineering.md +659 -0
  355. package/operations/incident-command-system.md +38 -0
  356. package/operations/observability-complete.md +442 -0
  357. package/operations/slo-sli-playbook.md +517 -0
  358. package/operations/sre-operations-deep-dive.md +39 -0
  359. package/package.json +8 -0
  360. package/performance/01-standards/performance-and-scalability.md +80 -0
  361. package/performance/01-standards/performance-standards.md +156 -0
  362. package/performance/02-playbooks/query-optimization-playbook.md +103 -0
  363. package/performance/03-checklists/performance-checklist.md +56 -0
  364. package/performance/04-antipatterns/performance-antipatterns.md +146 -0
  365. package/product/01-standards/product-management-complete.md +285 -0
  366. package/product/02-playbooks/feature-launch-playbook.md +207 -0
  367. package/product/02-playbooks/user-research-playbook.md +532 -0
  368. package/product/03-checklists/feature-launch-checklist.md +275 -0
  369. package/product/04-antipatterns/product-antipatterns.md +355 -0
  370. package/product/05-cases/case-mvp-to-scale.md +384 -0
  371. package/product/06-glossary/product-glossary.md +462 -0
  372. package/product/feature-prioritization-framework.md +40 -0
  373. package/product/kpi-and-metric-tree.md +37 -0
  374. package/product/product-discovery-and-prd-deep-dive.md +41 -0
  375. package/quantum/01-standards/quantum-complete.md +1186 -0
  376. package/security/01-standards/api-security-complete.md +511 -0
  377. package/security/01-standards/container-runtime-security.md +574 -0
  378. package/security/01-standards/data-protection-gdpr.md +543 -0
  379. package/security/01-standards/owasp-top10-complete.md +1890 -0
  380. package/security/01-standards/secure-coding-baseline.md +90 -0
  381. package/security/01-standards/supply-chain-security.md +441 -0
  382. package/security/01-standards/web-security-checklist.md +108 -0
  383. package/security/01-standards/zero-trust-architecture.md +521 -0
  384. package/security/02-playbooks/auth-sso-playbook.md +166 -0
  385. package/security/02-playbooks/incident-response-security-playbook.md +588 -0
  386. package/security/02-playbooks/owasp-api-security-playbook.md +129 -0
  387. package/security/02-playbooks/payment-integration-playbook.md +119 -0
  388. package/security/02-playbooks/penetration-testing-playbook.md +517 -0
  389. package/security/03-checklists/security-audit-checklist.md +356 -0
  390. package/security/04-antipatterns/security-coding-antipatterns.md +580 -0
  391. package/security/05-cases/case-log4shell-incident.md +537 -0
  392. package/security/05-cases/case-major-breaches.md +468 -0
  393. package/security/06-glossary/security-glossary.md +212 -0
  394. package/security/compliance-automation.md +993 -0
  395. package/security/container-security.md +680 -0
  396. package/security/devsecops-complete.md +426 -0
  397. package/security/sast-dast-sca.md +775 -0
  398. package/security/secrets-management.md +594 -0
  399. package/security/security-architecture-deep-dive.md +37 -0
  400. package/security/threat-modeling-stride-playbook.md +40 -0
  401. package/seed-templates/auth-system.md +59 -0
  402. package/seed-templates/blog-content.md +94 -0
  403. package/seed-templates/dashboard.md +89 -0
  404. package/seed-templates/docs-site.md +73 -0
  405. package/seed-templates/e-commerce.md +50 -0
  406. package/seed-templates/saas-landing.md +92 -0
  407. package/seed-templates/settings-page.md +51 -0
  408. package/testing/01-standards/test-strategy-and-layering.md +83 -0
  409. package/testing/01-standards/testing-strategy-complete.md +422 -0
  410. package/testing/01-standards/unit-testing-best-practices.md +118 -0
  411. package/testing/02-playbooks/e2e-testing-playbook.md +988 -0
  412. package/testing/02-playbooks/testing-strategy-playbook.md +126 -0
  413. package/testing/03-checklists/test-strategy-checklist.md +208 -0
  414. package/testing/04-antipatterns/testing-antipatterns.md +718 -0
  415. package/testing/05-cases/case-testing-transformation.md +300 -0
  416. package/testing/06-glossary/testing-glossary.md +110 -0
  417. package/testing/risk-based-test-matrix.md +36 -0
  418. package/testing/testing-strategy-deep-dive.md +37 -0
@@ -0,0 +1,952 @@
1
+ ---
2
+ id: docker-production-playbook
3
+ title: Docker 生产环境实战剧本
4
+ domain: devops
5
+ category: 02-playbooks
6
+ difficulty: intermediate
7
+ tags: [docker, containerization, devops, production]
8
+ quality_score: 91
9
+ maintainer: devops-team@umadev.com
10
+ last_updated: 2026-03-29
11
+ version: 2.0
12
+ related_knowledge:
13
+ - kubernetes-patterns
14
+ - microservices-deployment
15
+ - ci-cd-best-practices
16
+ prerequisites:
17
+ - docker-fundamentals
18
+ - linux-basics
19
+ ---
20
+
21
+ # Docker 生产环境实战剧本
22
+
23
+ ## 概述
24
+
25
+ 本剧本提供在 Kubernetes 生产环境中部署和维护容器化应用的分步指南。涵盖从镜像构建到生产部署的完整流程,包括安全加固、性能优化、监控告警等关键环节。
26
+
27
+ ## 前置条件
28
+
29
+ ### 必需工具
30
+ - Docker 24.0+
31
+ - Docker Compose 2.0+ (可选)
32
+ - Kubernetes 1.28+ (生产集群)
33
+ - Helm 3.0+ (包管理器)
34
+ - Container Registry (Docker Hub/GCR/ECR)
35
+
36
+ ### 权限要求
37
+ - Docker daemon 访问权限
38
+ - Kubernetes namespace admin 权限
39
+ - Container registry push 权限
40
+
41
+ ## 场景 1: 遵循最佳实践的 Dockerfile 编写
42
+
43
+ ### 目标
44
+ 编写安全、高效、可维护的生产级 Dockerfile。
45
+
46
+ ### 步骤
47
+
48
+ #### 1.1 使用多阶段构建
49
+
50
+ ```dockerfile
51
+ # 构建阶段
52
+ FROM node:20-alpine AS builder
53
+
54
+ WORKDIR /app
55
+
56
+ # 安装依赖
57
+ COPY package*.json ./
58
+ RUN npm ci --only=production
59
+
60
+ # 复制源代码
61
+ COPY . .
62
+
63
+ # 构建应用
64
+ RUN npm run build
65
+
66
+ # 生产阶段
67
+ FROM node:20-alpine AS production
68
+
69
+ # 安全: 使用非 root 用户
70
+ RUN addgroup -g 1001 -S nodejs && \
71
+ adduser -S nextjs -u 1001
72
+
73
+ WORKDIR /app
74
+
75
+ # 只复制构建产物
76
+ COPY --from=builder /app/.next/standalone ./
77
+ COPY --from=builder /app/.next/static ./.next/static
78
+ COPY --from=builder /app/package.json ./
79
+
80
+ # 设置所有权
81
+ RUN chown -R nextjs:nodejs /app
82
+
83
+ USER nextjs
84
+
85
+ # 健康检查
86
+ HEALTHCHECK --interval=30s --timeout=3s --start-period=40s --retries=3 \
87
+ CMD node healthcheck.js || exit 1
88
+
89
+ EXPOSE 3000
90
+
91
+ CMD ["node", "server.js"]
92
+ ```
93
+
94
+ **关键点**:
95
+ - ✅ 多阶段构建减小镜像体积
96
+ - ✅ 使用特定版本标签 (node:20-alpine)
97
+ - ✅ 非 root 用户运行
98
+ - ✅ 健康检查配置
99
+
100
+ #### 1.2 优化镜像层
101
+
102
+ ```dockerfile
103
+ FROM python:3.11-slim
104
+
105
+ # 安装系统依赖 (单独一层,便于缓存)
106
+ RUN apt-get update && apt-get install -y \
107
+ gcc \
108
+ && rm -rf /var/lib/apt/lists/*
109
+
110
+ WORKDIR /app
111
+
112
+ # 复制依赖文件 (利用 Docker 缓存)
113
+ COPY requirements.txt .
114
+
115
+ # 安装 Python 依赖
116
+ RUN pip install --no-cache-dir -r requirements.txt
117
+
118
+ # 复制应用代码 (最后复制,变化最频繁)
119
+ COPY . .
120
+
121
+ CMD ["python", "app.py"]
122
+ ```
123
+
124
+ **优化策略**:
125
+ 1. **最少化层数**: 合并相关命令
126
+ 2. **利用缓存**: 不变的层放在前面
127
+ 3. **清理缓存**: 删除包管理器缓存
128
+
129
+ #### 1.3 安全加固
130
+
131
+ ```dockerfile
132
+ FROM alpine:3.18
133
+
134
+ # 安装安全更新
135
+ RUN apk update && apk upgrade && \
136
+ apk add --no-cache dumb-init && \
137
+ rm -rf /var/cache/apk/*
138
+
139
+ # 创建只读文件系统
140
+ RUN mkdir -p /app /tmp && \
141
+ chmod 755 /app /tmp
142
+
143
+ WORKDIR /app
144
+ COPY --chown=1000:1000 app .
145
+
146
+ # 安全标签
147
+ LABEL maintainer="devops@company.com"
148
+ LABEL version="1.0.0"
149
+ LABEL security="high"
150
+
151
+ # 使用 dumb-init 作为 PID 1
152
+ ENTRYPOINT ["dumb-init", "--"]
153
+
154
+ # 只读根文件系统
155
+ RUN chmod -R 555 /app
156
+
157
+ USER 1000
158
+
159
+ CMD ["./app"]
160
+ ```
161
+
162
+ **安全措施**:
163
+ - ✅ 只读文件系统
164
+ - ✅ 最小化基础镜像
165
+ - ✅ 非 root 用户
166
+ - ✅ 使用 init 系统
167
+
168
+ ### 验证
169
+
170
+ ```bash
171
+ # 构建镜像
172
+ docker build -t myapp:v1.0.0 .
173
+
174
+ # 检查镜像大小
175
+ docker images myapp:v1.0.0
176
+
177
+ # 扫描安全漏洞
178
+ docker scout cves myapp:v1.0.0
179
+
180
+ # 测试运行
181
+ docker run --rm -p 3000:3000 myapp:v1.0.0
182
+ ```
183
+
184
+ ## 场景 2: 镜像优化和缓存策略
185
+
186
+ ### 目标
187
+ 优化镜像大小并配置有效的缓存策略。
188
+
189
+ ### 步骤
190
+
191
+ #### 2.1 使用 .dockerignore
192
+
193
+ ```dockerignore
194
+ # 依赖目录
195
+ node_modules
196
+ npm-debug.log
197
+ yarn-error.log
198
+
199
+ # 构建产物
200
+ dist
201
+ build
202
+ .next
203
+ out
204
+
205
+ # Git
206
+ .git
207
+ .gitignore
208
+
209
+ # IDE
210
+ .vscode
211
+ .idea
212
+ *.swp
213
+ *.swo
214
+
215
+ # 测试
216
+ coverage
217
+ .nyc_output
218
+ *.test.js
219
+ *.spec.js
220
+
221
+ # 文档
222
+ README.md
223
+ CHANGELOG.md
224
+ docs/
225
+
226
+ # 环境文件
227
+ .env
228
+ .env.*
229
+ ```
230
+
231
+ #### 2.2 构建缓存优化
232
+
233
+ ```dockerfile
234
+ # 利用 BuildKit 缓存
235
+ # syntax=docker/dockerfile:1.4
236
+
237
+ FROM golang:1.21-alpine AS builder
238
+
239
+ WORKDIR /app
240
+
241
+ # 先复制 go.mod 和 go.sum (缓存依赖下载)
242
+ COPY go.mod go.sum ./
243
+ RUN go mod download
244
+
245
+ # 再复制源代码
246
+ COPY . .
247
+
248
+ # 构建时利用缓存
249
+ RUN --mount=type=cache,target=/root/.cache/go-build \
250
+ CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .
251
+
252
+ FROM alpine:3.18
253
+
254
+ RUN apk --no-cache add ca-certificates
255
+
256
+ WORKDIR /root/
257
+
258
+ COPY --from=builder /app/main .
259
+
260
+ CMD ["./main"]
261
+ ```
262
+
263
+ **BuildKit 特性**:
264
+ - `--mount=type=cache`: 持久化缓存
265
+ - 并行构建
266
+ - 更高效的层缓存
267
+
268
+ #### 2.3 压缩镜像层
269
+
270
+ ```bash
271
+ # 导出并导入镜像 (合并层)
272
+ docker save myapp:v1 | docker load
273
+
274
+ # 使用 docker-squash 压缩层
275
+ docker-squash myapp:v1 -t myapp:v1-squashed
276
+
277
+ # 或使用多阶段构建 (推荐)
278
+ # 已在步骤 1.1 中演示
279
+ ```
280
+
281
+ ### 验证
282
+
283
+ ```bash
284
+ # 查看镜像层
285
+ docker history myapp:v1.0.0
286
+
287
+ # 检查镜像大小
288
+ docker images myapp:v1.0.0
289
+
290
+ # 分析镜像层
291
+ dive myapp:v1.0.0
292
+ ```
293
+
294
+ ## 场景 3: 生产级 Docker Compose 配置
295
+
296
+ ### 目标
297
+ 配置高可用、可扩展的生产级 Docker Compose。
298
+
299
+ ### 步骤
300
+
301
+ #### 3.1 基础 Compose 文件 (docker-compose.yml)
302
+
303
+ ```yaml
304
+ version: '3.8'
305
+
306
+ services:
307
+ app:
308
+ image: myapp:${VERSION:-latest}
309
+ container_name: myapp
310
+
311
+ restart: unless-stopped
312
+
313
+ environment:
314
+ - NODE_ENV=production
315
+ - DATABASE_URL=postgres://db:5432/mydb
316
+
317
+ secrets:
318
+ - db_password
319
+ - api_key
320
+
321
+ networks:
322
+ - frontend
323
+ - backend
324
+
325
+ deploy:
326
+ replicas: 3
327
+ update_config:
328
+ parallelism: 1
329
+ delay: 10s
330
+ failure_action: rollback
331
+ rollback_config:
332
+ parallelism: 0
333
+ order: stop-first
334
+ restart_policy:
335
+ condition: on-failure
336
+ delay: 5s
337
+ max_attempts: 3
338
+ window: 120s
339
+
340
+ healthcheck:
341
+ test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
342
+ interval: 30s
343
+ timeout: 10s
344
+ retries: 3
345
+ start_period: 40s
346
+
347
+ logging:
348
+ driver: "json-file"
349
+ options:
350
+ max-size: "10m"
351
+ max-file: "3"
352
+ labels: "service,environment"
353
+
354
+ db:
355
+ image: postgres:15-alpine
356
+ container_name: myapp-db
357
+
358
+ volumes:
359
+ - postgres_data:/var/lib/postgresql/data
360
+ - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro
361
+
362
+ environment:
363
+ - POSTGRES_DB=mydb
364
+ - POSTGRES_USER=myuser
365
+ - POSTGRES_PASSWORD_FILE=/run/secrets/db_password
366
+
367
+ secrets:
368
+ - db_password
369
+
370
+ networks:
371
+ - backend
372
+
373
+ deploy:
374
+ placement:
375
+ constraints:
376
+ - node.role == manager
377
+
378
+ healthcheck:
379
+ test: ["CMD-SHELL", "pg_isready -U myuser"]
380
+ interval: 10s
381
+ timeout: 5s
382
+ retries: 5
383
+
384
+ nginx:
385
+ image: nginx:alpine
386
+ container_name: myapp-nginx
387
+
388
+ volumes:
389
+ - ./nginx.conf:/etc/nginx/nginx.conf:ro
390
+ - ./ssl:/etc/nginx/ssl:ro
391
+
392
+ ports:
393
+ - "80:80"
394
+ - "443:443"
395
+
396
+ networks:
397
+ - frontend
398
+
399
+ deploy:
400
+ replicas: 2
401
+
402
+ depends_on:
403
+ - app
404
+
405
+ networks:
406
+ frontend:
407
+ driver: overlay
408
+ attachable: true
409
+
410
+ backend:
411
+ driver: overlay
412
+ internal: true
413
+
414
+ volumes:
415
+ postgres_data:
416
+ driver: local
417
+
418
+ secrets:
419
+ db_password:
420
+ external: true
421
+ api_key:
422
+ external: true
423
+ ```
424
+
425
+ #### 3.2 覆盖配置 (docker-compose.prod.yml)
426
+
427
+ ```yaml
428
+ version: '3.8'
429
+
430
+ services:
431
+ app:
432
+ image: ${REGISTRY}/myapp:${VERSION}
433
+
434
+ deploy:
435
+ replicas: 5
436
+ resources:
437
+ limits:
438
+ cpus: '2'
439
+ memory: 2G
440
+ reservations:
441
+ cpus: '1'
442
+ memory: 1G
443
+
444
+ environment:
445
+ - NODE_ENV=production
446
+ - LOG_LEVEL=info
447
+ - METRICS_ENABLED=true
448
+
449
+ logging:
450
+ driver: "fluentd"
451
+ options:
452
+ fluentd-address: "fluentd:24224"
453
+ tag: "myapp.{{.ID}}"
454
+
455
+ db:
456
+ deploy:
457
+ resources:
458
+ limits:
459
+ cpus: '4'
460
+ memory: 8G
461
+ reservations:
462
+ cpus: '2'
463
+ memory: 4G
464
+ ```
465
+
466
+ #### 3.3 部署命令
467
+
468
+ ```bash
469
+ # 创建 secrets
470
+ echo "my_secure_password" | docker secret create db_password -
471
+ echo "my_api_key" | docker secret create api_key -
472
+
473
+ # 初始化 swarm (如果尚未初始化)
474
+ docker swarm init
475
+
476
+ # 部署 stack
477
+ docker stack deploy -c docker-compose.yml -c docker-compose.prod.yml myapp
478
+
479
+ # 查看服务状态
480
+ docker stack services myapp
481
+
482
+ # 查看服务日志
483
+ docker service logs -f myapp_app
484
+
485
+ # 扩缩容
486
+ docker service scale myapp_app=10
487
+
488
+ # 更新服务
489
+ docker service update --image ${REGISTRY}/myapp:${NEW_VERSION} myapp_app
490
+
491
+ # 回滚
492
+ docker service rollback myapp_app
493
+ ```
494
+
495
+ ### 验证
496
+ ```bash
497
+ # 检查服务健康
498
+ docker stack ps myapp
499
+
500
+ # 测试负载均衡
501
+ for i in {1..10}; do
502
+ curl -s http://localhost/api/health | jq .container_id
503
+ done
504
+
505
+ # 监控资源使用
506
+ docker stats
507
+ ```
508
+
509
+ ## 场景 4: 镜像安全扫描和签名
510
+
511
+ ### 目标
512
+ 确保生产环境中只运行安全、可信的镜像。
513
+
514
+ ### 步骤
515
+
516
+ #### 4.1 配置镜像扫描
517
+
518
+ ```bash
519
+ # 使用 Docker Scout 扫描
520
+ docker scout cves myapp:v1.0.0
521
+
522
+ # 使用 Trivy 扫描
523
+ trivy image myapp:v1.0.0
524
+
525
+ # 使用 Grype 扫描
526
+ grype myapp:v1.0.0
527
+
528
+ # CI 集成示例 (GitLab CI)
529
+ # .gitlab-ci.yml
530
+ scan_image:
531
+ stage: security
532
+ image: aquasec/trivy:latest
533
+ script:
534
+ - trivy image --exit-code 1 --severity HIGH,CRITICAL myapp:$CI_COMMIT_SHA
535
+ only:
536
+ - main
537
+ ```
538
+
539
+ #### 4.2 配置内容信任 (DCT)
540
+
541
+ ```bash
542
+ # 启用 Docker Content Trust
543
+ export DOCKER_CONTENT_TRUST=1
544
+
545
+ # 生成密钥对
546
+ docker trust key generate key.pem
547
+
548
+ # 添加签名密钥
549
+ docker trust signer add --key key.pem admin@company.com
550
+
551
+ # 签名镜像
552
+ docker trust sign myapp:v1.0.0
553
+
554
+ # 验证签名
555
+ docker trust inspect --pretty myapp:v1.0.0
556
+ ```
557
+
558
+ #### 4.3 镜像策略 enforcement
559
+
560
+ ```yaml
561
+ # Kubernetes OPA 策略: 只允许签名镜像
562
+ apiVersion: ingresscontroller.opa.k8s.io/v1
563
+ kind: Policy
564
+ metadata:
565
+ name: signed-images-only
566
+ spec:
567
+ modules:
568
+ signed_images:
569
+ |
570
+ | package signed_images
571
+ |
572
+ | import future.keywords.if
573
+ |
574
+ | deny[msg] {
575
+ | input := {
576
+ | "request": {
577
+ | "kind": "kind",
578
+ | "image": "image"
579
+ | }
580
+ | }
581
+ |
582
+ | kind := input.request.kind
583
+ | image := input.request.image
584
+ |
585
+ | if kind == "Pod" {
586
+ | not image_has_valid_signature(image)
587
+ | }
588
+ | }
589
+ |
590
+ | image_has_valid_signature(image) {
591
+ | # 检查镜像签名
592
+ | true # 实际实现需要调用 DCT API
593
+ | }
594
+ ```
595
+
596
+ ### 验证
597
+
598
+ ```bash
599
+ # 运行扫描
600
+ docker scout cves myapp:v1.0.0
601
+
602
+ # 查看签名信息
603
+ docker trust inspect --pretty myapp:v1.0.0
604
+
605
+ # 测试策略 enforcement
606
+ kubectl apply -f pod-unsigned-image.yaml
607
+ # 应该被拒绝
608
+ ```
609
+
610
+ ## 场景 5: 监控和日志收集
611
+
612
+ ### 目标
613
+ 配置全面的监控和日志收集系统。
614
+
615
+ ### 步骤
616
+
617
+ #### 5.1 Prometheus 指标收集
618
+
619
+ ```yaml
620
+ # docker-compose.monitoring.yml
621
+ version: '3.8'
622
+
623
+ services:
624
+ prometheus:
625
+ image: prom/prometheus:v2.45.0
626
+ container_name: prometheus
627
+
628
+ volumes:
629
+ - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
630
+ - prometheus_data:/prometheus
631
+
632
+ command:
633
+ - '--config.file=/etc/prometheus/prometheus.yml'
634
+ - '--storage.tsdb.path=/prometheus'
635
+ - '--web.console.libraries=/etc/prometheus/console_libraries'
636
+ - '--web.console.templates=/etc/prometheus/consoles'
637
+
638
+ ports:
639
+ - "9090:9090"
640
+
641
+ networks:
642
+ - monitoring
643
+
644
+ grafana:
645
+ image: grafana/grafana:10.0.0
646
+ container_name: grafana
647
+
648
+ environment:
649
+ - GF_SECURITY_ADMIN_USER=admin
650
+ - GF_SECURITY_ADMIN_PASSWORD=admin
651
+ - GF_INSTALL_PLUGINS=grafana-clock-panel
652
+
653
+ volumes:
654
+ - grafana_data:/var/lib/grafana
655
+ - ./grafana/dashboards:/etc/grafana/provisioning/dashboards
656
+
657
+ ports:
658
+ - "3001:3000"
659
+
660
+ networks:
661
+ - monitoring
662
+
663
+ volumes:
664
+ prometheus_data:
665
+ grafana_data:
666
+
667
+ networks:
668
+ monitoring:
669
+ driver: bridge
670
+ ```
671
+
672
+ ```yaml
673
+ # prometheus.yml
674
+ global:
675
+ scrape_interval: 15s
676
+ evaluation_interval: 15s
677
+
678
+ scrape_configs:
679
+ - job_name: 'prometheus'
680
+ static_configs:
681
+ - targets: ['localhost:9090']
682
+
683
+ - job_name: 'myapp'
684
+ docker_sd_configs:
685
+ - host: unix:///var/run/docker.sock
686
+ refresh_interval: 5s
687
+ filters:
688
+ - name: label
689
+ values: ["com.docker.compose.service=myapp"]
690
+ relabel_configs:
691
+ - source_labels: [__meta_docker_container_label_com_docker_compose_service]
692
+ target_label: service
693
+ ```
694
+
695
+ #### 5.2 应用指标暴露
696
+
697
+ ```python
698
+ # Python 应用添加 Prometheus 指标
699
+ from prometheus_client import Counter, Histogram, generate_latest
700
+ from fastapi import Response
701
+
702
+ # 定义指标
703
+ request_count = Counter('http_requests_total', 'Total HTTP requests', ['method', 'endpoint'])
704
+ request_latency = Histogram('http_request_duration_seconds', 'HTTP request latency', ['method', 'endpoint'])
705
+
706
+ @app.middleware("http")
707
+ async def monitor_requests(request, call_next):
708
+ request_count.labels(method=request.method, endpoint=request.url.path).inc()
709
+
710
+ with request_latency.labels(method=request.method, endpoint=request.url.path).time():
711
+ response = await call_next(request)
712
+
713
+ return response
714
+
715
+ @app.get("/metrics")
716
+ async def metrics():
717
+ return Response(content=generate_latest(), media_type="text/plain")
718
+ ```
719
+
720
+ #### 5.3 日志收集 (ELK Stack)
721
+
722
+ ```yaml
723
+ # docker-compose.logging.yml
724
+ version: '3.8'
725
+
726
+ services:
727
+ elasticsearch:
728
+ image: docker.elastic.co/elasticsearch/elasticsearch:8.10.0
729
+ container_name: elasticsearch
730
+
731
+ environment:
732
+ - discovery.type=single-node
733
+ - ES_JAVA_OPTS=-Xms512m -Xmx512m
734
+ - xpack.security.enabled=false
735
+
736
+ volumes:
737
+ - elasticsearch_data:/usr/share/elasticsearch/data
738
+
739
+ ports:
740
+ - "9200:9200"
741
+
742
+ networks:
743
+ - logging
744
+
745
+ logstash:
746
+ image: docker.elastic.co/logstash/logstash:8.10.0
747
+ container_name: logstash
748
+
749
+ volumes:
750
+ - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro
751
+
752
+ ports:
753
+ - "5044:5044"
754
+
755
+ networks:
756
+ - logging
757
+
758
+ depends_on:
759
+ - elasticsearch
760
+
761
+ kibana:
762
+ image: docker.elastic.co/kibana/kibana:8.10.0
763
+ container_name: kibana
764
+
765
+ environment:
766
+ - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
767
+
768
+ ports:
769
+ - "5601:5601"
770
+
771
+ networks:
772
+ - logging
773
+
774
+ depends_on:
775
+ - elasticsearch
776
+
777
+ volumes:
778
+ elasticsearch_data:
779
+
780
+ networks:
781
+ logging:
782
+ driver: bridge
783
+ ```
784
+
785
+ ```
786
+ # logstash.conf
787
+ input {
788
+ tcp {
789
+ port => 5044
790
+ codec => json_lines
791
+ }
792
+ }
793
+
794
+ filter {
795
+ if [type] == "application" {
796
+ grok {
797
+ match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:log}" }
798
+ }
799
+
800
+ date {
801
+ match => [ "timestamp", "ISO8601" ]
802
+ }
803
+ }
804
+ }
805
+
806
+ output {
807
+ elasticsearch {
808
+ hosts => ["elasticsearch:9200"]
809
+ index => "myapp-logs-%{+YYYY.MM.dd}"
810
+ }
811
+ }
812
+ ```
813
+
814
+ ### 验证
815
+ ```bash
816
+ # 部署监控 stack
817
+ docker stack deploy -c docker-compose.monitoring.yml monitoring
818
+
819
+ # 检查 Prometheus targets
820
+ curl http://localhost:9090/api/v1/targets
821
+
822
+ # 访问 Grafana
823
+ open http://localhost:3001
824
+
825
+ # 测试日志收集
826
+ curl -X POST -H "Content-Type: application/json" \
827
+ -d '{"type":"application","message":"Test log"}' \
828
+ logstash:5044
829
+
830
+ # 在 Kibana 中查看日志
831
+ open http://localhost:5601
832
+ ```
833
+
834
+ ## 故障排查
835
+
836
+ ### 问题 1: 镜像拉取失败
837
+
838
+ **症状**:
839
+ ```
840
+ Error: image myapp:v1.0.0 not found
841
+ ```
842
+
843
+ **解决方案**:
844
+ ```bash
845
+ # 1. 检查镜像是否存在
846
+ docker images | grep myapp
847
+
848
+ # 2. 检查 registry 认证
849
+ docker login registry.example.com
850
+
851
+ # 3. 检查镜像标签
852
+ docker tag myapp:v1.0.0 registry.example.com/myapp:v1.0.0
853
+ docker push registry.example.com/myapp:v1.0.0
854
+
855
+ # 4. 验证 push 成功
856
+ docker pull registry.example.com/myapp:v1.0.0
857
+ ```
858
+
859
+ ### 问题 2: 容器频繁重启
860
+
861
+ **症状**:
862
+ ```
863
+ docker ps -a
864
+ CONTAINER ID STATUS
865
+ abc123 Restarting (1) 5 seconds ago
866
+ ```
867
+
868
+ **解决方案**:
869
+ ```bash
870
+ # 1. 查看容器日志
871
+ docker logs abc123
872
+
873
+ # 2. 查看退出代码
874
+ docker inspect abc123 | jq .[0].State.ExitCode
875
+
876
+ # 3. 检查健康检查
877
+ docker inspect abc123 | jq .[0].Config.Healthcheck
878
+
879
+ # 4. 资源限制检查
880
+ docker stats --no-stream
881
+
882
+ # 5. 进入容器调试
883
+ docker exec -it abc123 sh
884
+ ```
885
+
886
+ ### 问题 3: 网络连接失败
887
+
888
+ **症状**:
889
+ ```
890
+ curl: (7) Failed to connect to db port 5432: Connection refused
891
+ ```
892
+
893
+ **解决方案**:
894
+ ```bash
895
+ # 1. 检查网络
896
+ docker network ls
897
+ docker network inspect myapp_backend
898
+
899
+ # 2. 检查 DNS 解析
900
+ docker exec myapp ping db
901
+
902
+ # 3. 检查端口
903
+ docker exec myapp netstat -tulpn | grep 5432
904
+
905
+ # 4. 检查防火墙规则
906
+ iptables -L -n
907
+
908
+ # 5. 测试连接
909
+ docker run --rm -it --network myapp_backend postgres:15-alpine \
910
+ psql -h db -U myuser -d mydb
911
+ ```
912
+
913
+ ## 验收清单
914
+
915
+ - [ ] Dockerfile 遵循最佳实践
916
+ - [ ] 镜像大小 < 100MB
917
+ - [ ] 无高危漏洞 (docker scout cves)
918
+ - [ ] 非 root 用户运行
919
+ - [ ] 健康检查配置
920
+ - [ ] 日志配置正确
921
+ - [ ] 资源限制设置
922
+ - [ ] Secrets 管理安全
923
+ - [ ] 网络隔离配置
924
+ - [ ] 监控指标暴露
925
+ - [ ] 备份和恢复测试
926
+ - [ ] 更新和回滚测试
927
+
928
+ ## 参考资料
929
+
930
+ ### 官方文档
931
+ - [Docker Documentation](https://docs.docker.com/)
932
+ - [Dockerfile Best Practices](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/)
933
+ - [Docker Security](https://docs.docker.com/engine/security/)
934
+
935
+ ### 工具
936
+ - [Dive - Image Layer Analysis](https://github.com/wagoodman/dive)
937
+ - [Trivy - Vulnerability Scanner](https://github.com/aquasecurity/trivy)
938
+ - [Docker Scout](https://docs.docker.com/scout/)
939
+
940
+ ### 最佳实践
941
+ - [Docker Production Checklist](https://github.com/docker/docker.github.io/blob/master/production.md)
942
+ - [Container Security Best Practices](https://snyk.io/blog/10-docker-image-security-best-practices/)
943
+
944
+ ---
945
+
946
+ **知识ID**: `docker-production-playbook`
947
+ **领域**: devops
948
+ **类型**: playbooks
949
+ **难度**: intermediate
950
+ **质量分**: 91
951
+ **维护者**: devops-team@umadev.com
952
+ **最后更新**: 2026-03-29