blockmine 1.24.0 → 1.25.0

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 (346) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.en.md +427 -0
  3. package/README.md +40 -0
  4. package/backend/cli.js +1 -1
  5. package/backend/src/ai/plugin-assistant-system-prompt.md +664 -5
  6. package/backend/src/api/routes/bots.js +13 -0
  7. package/backend/src/api/routes/servers.js +14 -2
  8. package/backend/src/core/BotProcess.js +98 -2
  9. package/backend/src/core/PluginLoader.js +83 -3
  10. package/backend/src/core/PluginManager.js +75 -5
  11. package/backend/src/core/services/BotLifecycleService.js +186 -2
  12. package/backend/src/server.js +11 -1
  13. package/frontend/dist/assets/browser-ponyfill-DN7pwmHT.js +2 -0
  14. package/frontend/dist/assets/index-LSy71uwm.js +11261 -0
  15. package/frontend/dist/assets/index-SfhKxI4-.css +32 -0
  16. package/frontend/dist/flags/en.svg +32 -0
  17. package/frontend/dist/flags/ru.svg +5 -0
  18. package/frontend/dist/index.html +2 -2
  19. package/frontend/dist/locales/en/admin.json +100 -0
  20. package/frontend/dist/locales/en/api-keys.json +58 -0
  21. package/frontend/dist/locales/en/bots.json +110 -0
  22. package/frontend/dist/locales/en/common.json +47 -0
  23. package/frontend/dist/locales/en/configuration.json +22 -0
  24. package/frontend/dist/locales/en/console.json +10 -0
  25. package/frontend/dist/locales/en/dashboard.json +85 -0
  26. package/frontend/dist/locales/en/dialogs.json +70 -0
  27. package/frontend/dist/locales/en/event-graphs.json +50 -0
  28. package/frontend/dist/locales/en/graph-store.json +70 -0
  29. package/frontend/dist/locales/en/login.json +34 -0
  30. package/frontend/dist/locales/en/management.json +114 -0
  31. package/frontend/dist/locales/en/minecraft-viewer.json +27 -0
  32. package/frontend/dist/locales/en/nodes.json +1077 -0
  33. package/frontend/dist/locales/en/permissions.json +50 -0
  34. package/frontend/dist/locales/en/plugin-detail.json +49 -0
  35. package/frontend/dist/locales/en/plugins.json +110 -0
  36. package/frontend/dist/locales/en/proxies.json +81 -0
  37. package/frontend/dist/locales/en/servers.json +39 -0
  38. package/frontend/dist/locales/en/setup.json +17 -0
  39. package/frontend/dist/locales/en/sidebar.json +27 -0
  40. package/frontend/dist/locales/en/tasks.json +62 -0
  41. package/frontend/dist/locales/en/visual-editor.json +219 -0
  42. package/frontend/dist/locales/en/websocket.json +86 -0
  43. package/frontend/dist/locales/ru/admin.json +100 -0
  44. package/frontend/dist/locales/ru/api-keys.json +58 -0
  45. package/frontend/dist/locales/ru/bots.json +110 -0
  46. package/frontend/dist/locales/ru/common.json +49 -0
  47. package/frontend/dist/locales/ru/configuration.json +22 -0
  48. package/frontend/dist/locales/ru/console.json +10 -0
  49. package/frontend/dist/locales/ru/dashboard.json +85 -0
  50. package/frontend/dist/locales/ru/dialogs.json +70 -0
  51. package/frontend/dist/locales/ru/event-graphs.json +50 -0
  52. package/frontend/dist/locales/ru/graph-store.json +70 -0
  53. package/frontend/dist/locales/ru/login.json +34 -0
  54. package/frontend/dist/locales/ru/management.json +114 -0
  55. package/frontend/dist/locales/ru/minecraft-viewer.json +27 -0
  56. package/frontend/dist/locales/ru/nodes.json +1077 -0
  57. package/frontend/dist/locales/ru/permissions.json +50 -0
  58. package/frontend/dist/locales/ru/plugin-detail.json +49 -0
  59. package/frontend/dist/locales/ru/plugins.json +110 -0
  60. package/frontend/dist/locales/ru/proxies.json +81 -0
  61. package/frontend/dist/locales/ru/servers.json +39 -0
  62. package/frontend/dist/locales/ru/setup.json +17 -0
  63. package/frontend/dist/locales/ru/sidebar.json +27 -0
  64. package/frontend/dist/locales/ru/tasks.json +62 -0
  65. package/frontend/dist/locales/ru/visual-editor.json +221 -0
  66. package/frontend/dist/locales/ru/websocket.json +86 -0
  67. package/frontend/dist/monacoeditorwork/css.worker.bundle.js +7 -7
  68. package/frontend/dist/monacoeditorwork/html.worker.bundle.js +7 -7
  69. package/frontend/dist/monacoeditorwork/json.worker.bundle.js +7 -7
  70. package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +3 -3
  71. package/frontend/package.json +4 -0
  72. package/package.json +1 -1
  73. package/screen/3dviewer.png +0 -0
  74. package/screen/console.png +0 -0
  75. package/screen/dashboard.png +0 -0
  76. package/screen/graph_collabe.png +0 -0
  77. package/screen/graph_live_debug.png +0 -0
  78. package/screen/language_selector.png +0 -0
  79. package/screen/management_command.png +0 -0
  80. package/screen/node_debug_trace.png +0 -0
  81. package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
  82. package/screen/websocket.png +0 -0
  83. package/screen//320/275/320/260/321/201/321/202/321/200/320/276/320/271/320/272/320/270_/320/276/321/202/320/264/320/265/320/273/321/214/320/275/321/213/321/205_/320/272/320/276/320/274/320/260/320/275/320/264_/320/272/320/260/320/266/320/264/321/203_/320/272/320/276/320/274/320/260/320/275/320/273/320/264/321/203_/320/274/320/276/320/266/320/275/320/276_/320/275/320/260/321/201/321/202/321/200/320/260/320/270/320/262/320/260/321/202/321/214.png +0 -0
  84. package/screen//320/277/320/273/320/260/320/275/320/270/321/200/320/276/320/262/321/211/320/270/320/272_/320/274/320/276/320/266/320/275/320/276_/320/267/320/260/320/264/320/260/320/262/320/260/321/202/321/214_/320/264/320/265/320/271/321/201/321/202/320/262/320/270/321/217_/320/277/320/276_/320/262/321/200/320/265/320/274/320/265/320/275/320/270.png +0 -0
  85. package/.claude/agents/README.md +0 -469
  86. package/.claude/agents/auth-route-debugger.md +0 -118
  87. package/.claude/agents/auth-route-tester.md +0 -93
  88. package/.claude/agents/auto-error-resolver.md +0 -97
  89. package/.claude/agents/build-optimizer.md +0 -236
  90. package/.claude/agents/code-architect.md +0 -34
  91. package/.claude/agents/code-architecture-reviewer.md +0 -83
  92. package/.claude/agents/code-explorer.md +0 -51
  93. package/.claude/agents/code-refactor-master.md +0 -94
  94. package/.claude/agents/code-reviewer.md +0 -46
  95. package/.claude/agents/cost-optimizer.md +0 -134
  96. package/.claude/agents/deployment-orchestrator.md +0 -113
  97. package/.claude/agents/documentation-architect.md +0 -82
  98. package/.claude/agents/frontend-error-fixer.md +0 -77
  99. package/.claude/agents/iac-code-generator.md +0 -71
  100. package/.claude/agents/incident-responder.md +0 -346
  101. package/.claude/agents/infrastructure-architect.md +0 -31
  102. package/.claude/agents/kubernetes-specialist.md +0 -56
  103. package/.claude/agents/migration-planner.md +0 -181
  104. package/.claude/agents/network-architect.md +0 -196
  105. package/.claude/agents/plan-reviewer.md +0 -52
  106. package/.claude/agents/refactor-planner.md +0 -63
  107. package/.claude/agents/security-scanner.md +0 -102
  108. package/.claude/agents/web-research-specialist.md +0 -78
  109. package/.claude/commands/cost-analysis.md +0 -315
  110. package/.claude/commands/dev-docs-update.md +0 -55
  111. package/.claude/commands/dev-docs.md +0 -51
  112. package/.claude/commands/feature-dev.md +0 -125
  113. package/.claude/commands/incident-debug.md +0 -247
  114. package/.claude/commands/infra-plan.md +0 -81
  115. package/.claude/commands/migration-plan.md +0 -478
  116. package/.claude/commands/route-research-for-testing.md +0 -37
  117. package/.claude/commands/security-review.md +0 -66
  118. package/.claude/hooks/CONFIG.md +0 -448
  119. package/.claude/hooks/README.md +0 -163
  120. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +0 -226
  121. package/.claude/hooks/WINDOWS_HOOKS_README.md +0 -151
  122. package/.claude/hooks/add-skill-activation-banners.ts +0 -132
  123. package/.claude/hooks/comprehensive-skill-test.ts +0 -1315
  124. package/.claude/hooks/error-handling-reminder.sh +0 -12
  125. package/.claude/hooks/error-handling-reminder.ts +0 -222
  126. package/.claude/hooks/k8s-manifest-validator.sh +0 -56
  127. package/.claude/hooks/package-lock.json +0 -556
  128. package/.claude/hooks/package.json +0 -16
  129. package/.claude/hooks/post-tool-use-tracker.ps1 +0 -174
  130. package/.claude/hooks/post-tool-use-tracker.sh +0 -183
  131. package/.claude/hooks/security-policy-check.sh +0 -247
  132. package/.claude/hooks/skill-activation-prompt.ps1 +0 -10
  133. package/.claude/hooks/skill-activation-prompt.sh +0 -10
  134. package/.claude/hooks/skill-activation-prompt.ts +0 -141
  135. package/.claude/hooks/stop-build-check-enhanced.sh +0 -130
  136. package/.claude/hooks/terraform-validator.sh +0 -53
  137. package/.claude/hooks/test-input.json +0 -7
  138. package/.claude/hooks/test-skill-activation.ts +0 -427
  139. package/.claude/hooks/trigger-build-resolver.sh +0 -79
  140. package/.claude/hooks/tsc-check.sh +0 -173
  141. package/.claude/hooks/tsconfig.json +0 -19
  142. package/.claude/settings.json +0 -59
  143. package/.claude/settings.local.json +0 -67
  144. package/.claude/skills/README.md +0 -507
  145. package/.claude/skills/api-engineering/SKILL.md +0 -63
  146. package/.claude/skills/api-engineering/resources/api-versioning.md +0 -88
  147. package/.claude/skills/api-engineering/resources/graphql-patterns.md +0 -106
  148. package/.claude/skills/api-engineering/resources/rate-limiting.md +0 -118
  149. package/.claude/skills/api-engineering/resources/rest-api-design.md +0 -105
  150. package/.claude/skills/backend-dev-guidelines/SKILL.md +0 -306
  151. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +0 -451
  152. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +0 -307
  153. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +0 -638
  154. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +0 -275
  155. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +0 -224
  156. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +0 -213
  157. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +0 -756
  158. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +0 -336
  159. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +0 -789
  160. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +0 -235
  161. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +0 -754
  162. package/.claude/skills/budget-and-cost-management/SKILL.md +0 -850
  163. package/.claude/skills/build-engineering/SKILL.md +0 -431
  164. package/.claude/skills/build-engineering/resources/artifact-repositories.md +0 -72
  165. package/.claude/skills/build-engineering/resources/build-caching.md +0 -96
  166. package/.claude/skills/build-engineering/resources/build-pipelines.md +0 -105
  167. package/.claude/skills/build-engineering/resources/build-security.md +0 -95
  168. package/.claude/skills/build-engineering/resources/build-systems.md +0 -389
  169. package/.claude/skills/build-engineering/resources/compilation-optimization.md +0 -201
  170. package/.claude/skills/build-engineering/resources/dependency-management.md +0 -73
  171. package/.claude/skills/build-engineering/resources/monorepo-builds.md +0 -110
  172. package/.claude/skills/build-engineering/resources/performance-optimization.md +0 -113
  173. package/.claude/skills/build-engineering/resources/reproducible-builds.md +0 -82
  174. package/.claude/skills/cloud-engineering/SKILL.md +0 -675
  175. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +0 -742
  176. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +0 -714
  177. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +0 -987
  178. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +0 -757
  179. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +0 -1058
  180. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +0 -1530
  181. package/.claude/skills/cloud-engineering/resources/cloud-security.md +0 -990
  182. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +0 -758
  183. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +0 -820
  184. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +0 -670
  185. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +0 -1198
  186. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +0 -795
  187. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +0 -966
  188. package/.claude/skills/cybersecurity/SKILL.md +0 -409
  189. package/.claude/skills/cybersecurity/resources/security-architecture.md +0 -266
  190. package/.claude/skills/database-engineering/SKILL.md +0 -61
  191. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +0 -72
  192. package/.claude/skills/database-engineering/resources/database-replication.md +0 -63
  193. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +0 -70
  194. package/.claude/skills/database-engineering/resources/query-optimization.md +0 -68
  195. package/.claude/skills/devsecops/SKILL.md +0 -374
  196. package/.claude/skills/devsecops/resources/ci-cd-security.md +0 -204
  197. package/.claude/skills/devsecops/resources/compliance-automation.md +0 -530
  198. package/.claude/skills/devsecops/resources/compliance-frameworks.md +0 -2322
  199. package/.claude/skills/devsecops/resources/container-security.md +0 -915
  200. package/.claude/skills/devsecops/resources/cspm-integration.md +0 -1440
  201. package/.claude/skills/devsecops/resources/policy-enforcement.md +0 -619
  202. package/.claude/skills/devsecops/resources/secrets-management.md +0 -755
  203. package/.claude/skills/devsecops/resources/security-monitoring.md +0 -146
  204. package/.claude/skills/devsecops/resources/security-scanning.md +0 -887
  205. package/.claude/skills/devsecops/resources/security-testing.md +0 -203
  206. package/.claude/skills/devsecops/resources/supply-chain-security.md +0 -518
  207. package/.claude/skills/devsecops/resources/vulnerability-management.md +0 -481
  208. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +0 -177
  209. package/.claude/skills/documentation-as-code/SKILL.md +0 -323
  210. package/.claude/skills/documentation-as-code/resources/api-documentation.md +0 -90
  211. package/.claude/skills/documentation-as-code/resources/changelog-management.md +0 -79
  212. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +0 -44
  213. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +0 -99
  214. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +0 -68
  215. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +0 -79
  216. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +0 -162
  217. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +0 -77
  218. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +0 -60
  219. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +0 -202
  220. package/.claude/skills/engineering-management/SKILL.md +0 -356
  221. package/.claude/skills/engineering-management/resources/career-ladders.md +0 -609
  222. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +0 -555
  223. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +0 -609
  224. package/.claude/skills/engineering-management/resources/resource-planning.md +0 -557
  225. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +0 -491
  226. package/.claude/skills/engineering-management/resources/technical-interviews.md +0 -474
  227. package/.claude/skills/engineering-operations-management/SKILL.md +0 -817
  228. package/.claude/skills/error-tracking/SKILL.md +0 -379
  229. package/.claude/skills/frontend-design/SKILL.md +0 -42
  230. package/.claude/skills/frontend-dev-guidelines/SKILL.md +0 -403
  231. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +0 -331
  232. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +0 -872
  233. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +0 -502
  234. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +0 -767
  235. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +0 -502
  236. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +0 -501
  237. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +0 -406
  238. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +0 -364
  239. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +0 -428
  240. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +0 -418
  241. package/.claude/skills/general-it-engineering/SKILL.md +0 -393
  242. package/.claude/skills/general-it-engineering/resources/asset-management.md +0 -712
  243. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +0 -817
  244. package/.claude/skills/general-it-engineering/resources/business-continuity.md +0 -786
  245. package/.claude/skills/general-it-engineering/resources/change-management.md +0 -715
  246. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +0 -729
  247. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +0 -738
  248. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +0 -834
  249. package/.claude/skills/general-it-engineering/resources/it-governance.md +0 -753
  250. package/.claude/skills/general-it-engineering/resources/itil-framework.md +0 -503
  251. package/.claude/skills/general-it-engineering/resources/service-management.md +0 -669
  252. package/.claude/skills/infrastructure-architecture/SKILL.md +0 -328
  253. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +0 -505
  254. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +0 -528
  255. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +0 -453
  256. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +0 -773
  257. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +0 -499
  258. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +0 -501
  259. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +0 -535
  260. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +0 -512
  261. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +0 -608
  262. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +0 -562
  263. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +0 -538
  264. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +0 -489
  265. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +0 -1000
  266. package/.claude/skills/infrastructure-strategy/SKILL.md +0 -924
  267. package/.claude/skills/network-engineering/SKILL.md +0 -385
  268. package/.claude/skills/network-engineering/resources/dns-management.md +0 -738
  269. package/.claude/skills/network-engineering/resources/load-balancing.md +0 -820
  270. package/.claude/skills/network-engineering/resources/network-architecture.md +0 -546
  271. package/.claude/skills/network-engineering/resources/network-security.md +0 -921
  272. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +0 -749
  273. package/.claude/skills/network-engineering/resources/routing-switching.md +0 -373
  274. package/.claude/skills/network-engineering/resources/sdn-networking.md +0 -695
  275. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +0 -777
  276. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +0 -444
  277. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +0 -672
  278. package/.claude/skills/node-development/SKILL.md +0 -317
  279. package/.claude/skills/observability-engineering/SKILL.md +0 -101
  280. package/.claude/skills/observability-engineering/resources/apm-tools.md +0 -97
  281. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +0 -87
  282. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +0 -98
  283. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +0 -118
  284. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +0 -141
  285. package/.claude/skills/observability-engineering/resources/opentelemetry.md +0 -110
  286. package/.claude/skills/platform-engineering/SKILL.md +0 -555
  287. package/.claude/skills/platform-engineering/resources/architecture-overview.md +0 -600
  288. package/.claude/skills/platform-engineering/resources/container-orchestration.md +0 -916
  289. package/.claude/skills/platform-engineering/resources/cost-optimization.md +0 -634
  290. package/.claude/skills/platform-engineering/resources/developer-platforms.md +0 -670
  291. package/.claude/skills/platform-engineering/resources/gitops-automation.md +0 -650
  292. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +0 -778
  293. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +0 -708
  294. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +0 -602
  295. package/.claude/skills/platform-engineering/resources/platform-security.md +0 -711
  296. package/.claude/skills/platform-engineering/resources/resource-management.md +0 -592
  297. package/.claude/skills/platform-engineering/resources/service-mesh.md +0 -628
  298. package/.claude/skills/release-engineering/SKILL.md +0 -393
  299. package/.claude/skills/release-engineering/resources/artifact-management.md +0 -108
  300. package/.claude/skills/release-engineering/resources/build-optimization.md +0 -84
  301. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +0 -411
  302. package/.claude/skills/release-engineering/resources/deployment-strategies.md +0 -197
  303. package/.claude/skills/release-engineering/resources/pipeline-security.md +0 -62
  304. package/.claude/skills/release-engineering/resources/progressive-delivery.md +0 -83
  305. package/.claude/skills/release-engineering/resources/release-automation.md +0 -68
  306. package/.claude/skills/release-engineering/resources/release-orchestration.md +0 -77
  307. package/.claude/skills/release-engineering/resources/rollback-strategies.md +0 -66
  308. package/.claude/skills/release-engineering/resources/versioning-strategies.md +0 -59
  309. package/.claude/skills/route-tester/SKILL.md +0 -392
  310. package/.claude/skills/skill-developer/ADVANCED.md +0 -197
  311. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
  312. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
  313. package/.claude/skills/skill-developer/SKILL.md +0 -430
  314. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
  315. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
  316. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
  317. package/.claude/skills/skill-rules.json +0 -2989
  318. package/.claude/skills/sre/SKILL.md +0 -464
  319. package/.claude/skills/sre/resources/alerting-best-practices.md +0 -282
  320. package/.claude/skills/sre/resources/capacity-planning.md +0 -226
  321. package/.claude/skills/sre/resources/chaos-engineering.md +0 -193
  322. package/.claude/skills/sre/resources/disaster-recovery.md +0 -232
  323. package/.claude/skills/sre/resources/incident-management.md +0 -436
  324. package/.claude/skills/sre/resources/observability-stack.md +0 -240
  325. package/.claude/skills/sre/resources/on-call-runbooks.md +0 -167
  326. package/.claude/skills/sre/resources/performance-optimization.md +0 -108
  327. package/.claude/skills/sre/resources/reliability-patterns.md +0 -183
  328. package/.claude/skills/sre/resources/slo-sli-sla.md +0 -464
  329. package/.claude/skills/sre/resources/toil-reduction.md +0 -145
  330. package/.claude/skills/systems-engineering/SKILL.md +0 -648
  331. package/.claude/skills/systems-engineering/resources/automation-patterns.md +0 -771
  332. package/.claude/skills/systems-engineering/resources/configuration-management.md +0 -998
  333. package/.claude/skills/systems-engineering/resources/linux-administration.md +0 -672
  334. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +0 -982
  335. package/.claude/skills/systems-engineering/resources/performance-tuning.md +0 -871
  336. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +0 -482
  337. package/.claude/skills/systems-engineering/resources/security-hardening.md +0 -739
  338. package/.claude/skills/systems-engineering/resources/shell-scripting.md +0 -915
  339. package/.claude/skills/systems-engineering/resources/storage-management.md +0 -628
  340. package/.claude/skills/systems-engineering/resources/system-monitoring.md +0 -787
  341. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +0 -753
  342. package/.claude/skills/systems-engineering/resources/windows-administration.md +0 -738
  343. package/.claude/skills/technical-leadership/SKILL.md +0 -728
  344. package/backend/docs/SECRETS_DOCUMENTATION.md +0 -327
  345. package/frontend/dist/assets/index-BC-NbKXi.css +0 -32
  346. package/frontend/dist/assets/index-DqJXZMHY.js +0 -11266
@@ -1,820 +0,0 @@
1
- # Load Balancing
2
-
3
- Comprehensive guide to load balancing covering algorithms, protocols, health checks, and implementation across different platforms including HAProxy, nginx, and cloud-native load balancers.
4
-
5
- ## Table of Contents
6
-
7
- - [Overview](#overview)
8
- - [Load Balancer Types](#load-balancer-types)
9
- - [Load Balancing Algorithms](#load-balancing-algorithms)
10
- - [Health Checks](#health-checks)
11
- - [SSL/TLS Termination](#ssltls-termination)
12
- - [Session Persistence](#session-persistence)
13
- - [Cloud Load Balancers](#cloud-load-balancers)
14
- - [HAProxy Configuration](#haproxy-configuration)
15
- - [Nginx Load Balancing](#nginx-load-balancing)
16
- - [Kubernetes Ingress](#kubernetes-ingress)
17
- - [Best Practices](#best-practices)
18
- - [Anti-Patterns](#anti-patterns)
19
-
20
- ## Overview
21
-
22
- Load balancing distributes network traffic across multiple servers to ensure high availability, optimal resource utilization, and improved application performance.
23
-
24
- **Key Benefits:**
25
- - High availability through redundancy
26
- - Horizontal scalability
27
- - Zero-downtime deployments
28
- - Traffic distribution optimization
29
- - SSL/TLS offloading
30
- - Protection against DDoS attacks
31
-
32
- ## Load Balancer Types
33
-
34
- ### Layer 4 (Transport Layer)
35
-
36
- **Characteristics:**
37
- - Operates at TCP/UDP level
38
- - Routes based on IP address and port
39
- - Fast, low latency
40
- - Protocol-agnostic
41
- - Cannot inspect application data
42
-
43
- **Use Cases:**
44
- - High-throughput applications
45
- - Non-HTTP protocols
46
- - UDP load balancing
47
- - Simple TCP pass-through
48
-
49
- **Example: AWS Network Load Balancer (NLB)**
50
- ```yaml
51
- # NLB via Terraform
52
- resource "aws_lb" "network" {
53
- name = "app-nlb"
54
- internal = false
55
- load_balancer_type = "network"
56
- subnets = var.public_subnet_ids
57
-
58
- enable_cross_zone_load_balancing = true
59
- enable_deletion_protection = true
60
-
61
- tags = {
62
- Name = "app-nlb"
63
- Environment = "production"
64
- }
65
- }
66
-
67
- resource "aws_lb_target_group" "tcp" {
68
- name = "app-tcp-targets"
69
- port = 8080
70
- protocol = "TCP"
71
- vpc_id = var.vpc_id
72
-
73
- health_check {
74
- enabled = true
75
- interval = 30
76
- port = "traffic-port"
77
- protocol = "TCP"
78
- healthy_threshold = 3
79
- unhealthy_threshold = 3
80
- }
81
-
82
- deregistration_delay = 30
83
- }
84
-
85
- resource "aws_lb_listener" "tcp" {
86
- load_balancer_arn = aws_lb.network.arn
87
- port = 443
88
- protocol = "TCP"
89
-
90
- default_action {
91
- type = "forward"
92
- target_group_arn = aws_lb_target_group.tcp.arn
93
- }
94
- }
95
- ```
96
-
97
- ### Layer 7 (Application Layer)
98
-
99
- **Characteristics:**
100
- - Operates at HTTP/HTTPS level
101
- - Content-based routing
102
- - SSL termination
103
- - Request inspection
104
- - URL/header-based routing
105
- - WebSocket support
106
-
107
- **Use Cases:**
108
- - HTTP/HTTPS applications
109
- - Microservices routing
110
- - A/B testing
111
- - Canary deployments
112
- - API gateways
113
-
114
- **Example: AWS Application Load Balancer (ALB)**
115
- ```yaml
116
- # ALB with path-based routing
117
- resource "aws_lb" "application" {
118
- name = "app-alb"
119
- internal = false
120
- load_balancer_type = "application"
121
- security_groups = [aws_security_group.alb.id]
122
- subnets = var.public_subnet_ids
123
-
124
- enable_deletion_protection = true
125
- enable_http2 = true
126
- enable_waf = true
127
-
128
- access_logs {
129
- bucket = aws_s3_bucket.alb_logs.id
130
- enabled = true
131
- }
132
- }
133
-
134
- resource "aws_lb_target_group" "api" {
135
- name = "api-targets"
136
- port = 8080
137
- protocol = "HTTP"
138
- vpc_id = var.vpc_id
139
-
140
- health_check {
141
- enabled = true
142
- path = "/health"
143
- port = "traffic-port"
144
- protocol = "HTTP"
145
- healthy_threshold = 2
146
- unhealthy_threshold = 2
147
- timeout = 5
148
- interval = 30
149
- matcher = "200"
150
- }
151
-
152
- stickiness {
153
- type = "lb_cookie"
154
- cookie_duration = 86400
155
- enabled = true
156
- }
157
-
158
- deregistration_delay = 30
159
- }
160
-
161
- resource "aws_lb_listener" "https" {
162
- load_balancer_arn = aws_lb.application.arn
163
- port = 443
164
- protocol = "HTTPS"
165
- ssl_policy = "ELBSecurityPolicy-TLS-1-2-2017-01"
166
- certificate_arn = var.certificate_arn
167
-
168
- default_action {
169
- type = "forward"
170
- target_group_arn = aws_lb_target_group.api.arn
171
- }
172
- }
173
-
174
- # Path-based routing
175
- resource "aws_lb_listener_rule" "api_v2" {
176
- listener_arn = aws_lb_listener.https.arn
177
- priority = 100
178
-
179
- action {
180
- type = "forward"
181
- target_group_arn = aws_lb_target_group.api_v2.arn
182
- }
183
-
184
- condition {
185
- path_pattern {
186
- values = ["/api/v2/*"]
187
- }
188
- }
189
- }
190
-
191
- # Header-based routing
192
- resource "aws_lb_listener_rule" "canary" {
193
- listener_arn = aws_lb_listener.https.arn
194
- priority = 50
195
-
196
- action {
197
- type = "forward"
198
- target_group_arn = aws_lb_target_group.canary.arn
199
- }
200
-
201
- condition {
202
- http_header {
203
- http_header_name = "X-Canary-Version"
204
- values = ["v2"]
205
- }
206
- }
207
- }
208
- ```
209
-
210
- ### Global Load Balancers
211
-
212
- **Characteristics:**
213
- - Geographic distribution
214
- - DNS-based routing
215
- - Multi-region failover
216
- - Latency-based routing
217
-
218
- **Example: AWS Global Accelerator**
219
- ```hcl
220
- resource "aws_globalaccelerator_accelerator" "main" {
221
- name = "app-accelerator"
222
- ip_address_type = "IPV4"
223
- enabled = true
224
-
225
- attributes {
226
- flow_logs_enabled = true
227
- flow_logs_s3_bucket = aws_s3_bucket.flow_logs.id
228
- }
229
- }
230
-
231
- resource "aws_globalaccelerator_listener" "main" {
232
- accelerator_arn = aws_globalaccelerator_accelerator.main.id
233
- protocol = "TCP"
234
-
235
- port_range {
236
- from_port = 443
237
- to_port = 443
238
- }
239
- }
240
-
241
- resource "aws_globalaccelerator_endpoint_group" "us_east" {
242
- listener_arn = aws_globalaccelerator_listener.main.id
243
- endpoint_group_region = "us-east-1"
244
-
245
- health_check_interval_seconds = 30
246
- health_check_path = "/health"
247
- health_check_port = 443
248
- health_check_protocol = "HTTPS"
249
- threshold_count = 3
250
- traffic_dial_percentage = 100
251
-
252
- endpoint_configuration {
253
- endpoint_id = aws_lb.us_east.arn
254
- weight = 100
255
- }
256
- }
257
-
258
- resource "aws_globalaccelerator_endpoint_group" "eu_west" {
259
- listener_arn = aws_globalaccelerator_listener.main.id
260
- endpoint_group_region = "eu-west-1"
261
-
262
- traffic_dial_percentage = 100
263
-
264
- endpoint_configuration {
265
- endpoint_id = aws_lb.eu_west.arn
266
- weight = 100
267
- }
268
- }
269
- ```
270
-
271
- ## Load Balancing Algorithms
272
-
273
- ### Round Robin
274
-
275
- **How it works:** Distributes requests sequentially across all servers.
276
-
277
- **Pros:**
278
- - Simple and fair distribution
279
- - No state required
280
- - Works well with identical servers
281
-
282
- **Cons:**
283
- - Doesn't account for server load
284
- - Not suitable for varying server capacities
285
-
286
- **Configuration:**
287
- ```nginx
288
- upstream backend {
289
- server backend1.example.com;
290
- server backend2.example.com;
291
- server backend3.example.com;
292
- }
293
- ```
294
-
295
- ### Weighted Round Robin
296
-
297
- **How it works:** Distributes based on assigned weights.
298
-
299
- ```nginx
300
- upstream backend {
301
- server backend1.example.com weight=3; # Gets 3x traffic
302
- server backend2.example.com weight=2; # Gets 2x traffic
303
- server backend3.example.com weight=1; # Gets 1x traffic
304
- }
305
- ```
306
-
307
- ### Least Connections
308
-
309
- **How it works:** Routes to server with fewest active connections.
310
-
311
- **Best for:** Long-lived connections, varying request durations
312
-
313
- ```nginx
314
- upstream backend {
315
- least_conn;
316
-
317
- server backend1.example.com;
318
- server backend2.example.com;
319
- server backend3.example.com;
320
- }
321
- ```
322
-
323
- ### IP Hash
324
-
325
- **How it works:** Hash client IP to determine server.
326
-
327
- **Best for:** Session persistence, sticky sessions
328
-
329
- ```nginx
330
- upstream backend {
331
- ip_hash;
332
-
333
- server backend1.example.com;
334
- server backend2.example.com;
335
- server backend3.example.com;
336
- }
337
- ```
338
-
339
- ### Consistent Hashing
340
-
341
- **How it works:** Hash-based distribution with minimal disruption on server changes.
342
-
343
- ```haproxy
344
- backend app_servers
345
- balance hdr(X-User-ID)
346
- hash-type consistent
347
-
348
- server app1 10.0.1.10:8080 check
349
- server app2 10.0.1.11:8080 check
350
- server app3 10.0.1.12:8080 check
351
- ```
352
-
353
- ## Health Checks
354
-
355
- ### Active Health Checks
356
-
357
- **HTTP/HTTPS Health Checks:**
358
- ```yaml
359
- # Kubernetes Liveness Probe
360
- livenessProbe:
361
- httpGet:
362
- path: /health
363
- port: 8080
364
- httpHeaders:
365
- - name: X-Health-Check
366
- value: "true"
367
- initialDelaySeconds: 30
368
- periodSeconds: 10
369
- timeoutSeconds: 5
370
- failureThreshold: 3
371
- successThreshold: 1
372
-
373
- # Kubernetes Readiness Probe
374
- readinessProbe:
375
- httpGet:
376
- path: /ready
377
- port: 8080
378
- initialDelaySeconds: 5
379
- periodSeconds: 5
380
- timeoutSeconds: 3
381
- failureThreshold: 3
382
- successThreshold: 1
383
- ```
384
-
385
- **TCP Health Checks:**
386
- ```haproxy
387
- backend mysql_servers
388
- mode tcp
389
- balance leastconn
390
-
391
- option tcp-check
392
- tcp-check connect port 3306
393
-
394
- server mysql1 10.0.1.20:3306 check inter 2s rise 2 fall 3
395
- server mysql2 10.0.1.21:3306 check inter 2s rise 2 fall 3
396
- ```
397
-
398
- ### Passive Health Checks
399
-
400
- **Circuit Breaker Pattern:**
401
- ```nginx
402
- upstream backend {
403
- server backend1.example.com max_fails=3 fail_timeout=30s;
404
- server backend2.example.com max_fails=3 fail_timeout=30s;
405
- server backend3.example.com max_fails=3 fail_timeout=30s;
406
- }
407
- ```
408
-
409
- ## SSL/TLS Termination
410
-
411
- ### HAProxy SSL Termination
412
-
413
- ```haproxy
414
- global
415
- maxconn 4096
416
- tune.ssl.default-dh-param 2048
417
-
418
- frontend https_frontend
419
- bind *:443 ssl crt /etc/haproxy/certs/site.pem alpn h2,http/1.1
420
-
421
- # Security headers
422
- http-response set-header Strict-Transport-Security "max-age=31536000; includeSubDomains"
423
- http-response set-header X-Frame-Options "SAMEORIGIN"
424
- http-response set-header X-Content-Type-Options "nosniff"
425
-
426
- # Redirect HTTP to HTTPS
427
- redirect scheme https code 301 if !{ ssl_fc }
428
-
429
- default_backend app_servers
430
-
431
- backend app_servers
432
- balance roundrobin
433
- option httpchk GET /health
434
- http-check expect status 200
435
-
436
- server app1 10.0.1.10:8080 check
437
- server app2 10.0.1.11:8080 check
438
- ```
439
-
440
- ### Nginx SSL Termination
441
-
442
- ```nginx
443
- server {
444
- listen 443 ssl http2;
445
- server_name app.example.com;
446
-
447
- ssl_certificate /etc/nginx/ssl/cert.pem;
448
- ssl_certificate_key /etc/nginx/ssl/key.pem;
449
-
450
- # Modern SSL configuration
451
- ssl_protocols TLSv1.2 TLSv1.3;
452
- ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
453
- ssl_prefer_server_ciphers off;
454
-
455
- ssl_session_cache shared:SSL:10m;
456
- ssl_session_timeout 10m;
457
- ssl_stapling on;
458
- ssl_stapling_verify on;
459
-
460
- add_header Strict-Transport-Security "max-age=31536000" always;
461
-
462
- location / {
463
- proxy_pass http://backend;
464
- proxy_set_header Host $host;
465
- proxy_set_header X-Real-IP $remote_addr;
466
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
467
- proxy_set_header X-Forwarded-Proto $scheme;
468
- }
469
- }
470
- ```
471
-
472
- ## Session Persistence
473
-
474
- ### Cookie-Based Persistence
475
-
476
- ```haproxy
477
- backend app_servers
478
- balance roundrobin
479
-
480
- # Insert cookie for session stickiness
481
- cookie SERVERID insert indirect nocache
482
-
483
- server app1 10.0.1.10:8080 check cookie app1
484
- server app2 10.0.1.11:8080 check cookie app2
485
- server app3 10.0.1.12:8080 check cookie app3
486
- ```
487
-
488
- ### Application-Controlled Sessions
489
-
490
- ```nginx
491
- upstream backend {
492
- hash $cookie_session_id consistent;
493
-
494
- server backend1.example.com;
495
- server backend2.example.com;
496
- server backend3.example.com;
497
- }
498
- ```
499
-
500
- ## Cloud Load Balancers
501
-
502
- ### AWS Load Balancer Comparison
503
-
504
- ```
505
- Feature ALB NLB GLB
506
- Layer 7 4 4
507
- Protocol HTTP/HTTPS TCP/UDP/TLS Any IP
508
- Routing Content Connection Network
509
- Static IP No Yes No
510
- PrivateLink Yes Yes No
511
- WebSocket Yes Yes No
512
- gRPC Yes Yes No
513
- Lambda Target Yes No No
514
- ```
515
-
516
- ### GCP Load Balancer
517
-
518
- ```yaml
519
- # GCP HTTP(S) Load Balancer via Terraform
520
- resource "google_compute_global_forwarding_rule" "https" {
521
- name = "app-https-forwarding-rule"
522
- target = google_compute_target_https_proxy.default.id
523
- port_range = "443"
524
- ip_address = google_compute_global_address.default.address
525
- }
526
-
527
- resource "google_compute_target_https_proxy" "default" {
528
- name = "app-https-proxy"
529
- url_map = google_compute_url_map.default.id
530
- ssl_certificates = [google_compute_ssl_certificate.default.id]
531
- }
532
-
533
- resource "google_compute_url_map" "default" {
534
- name = "app-url-map"
535
- default_service = google_compute_backend_service.default.id
536
-
537
- host_rule {
538
- hosts = ["app.example.com"]
539
- path_matcher = "allpaths"
540
- }
541
-
542
- path_matcher {
543
- name = "allpaths"
544
- default_service = google_compute_backend_service.default.id
545
-
546
- path_rule {
547
- paths = ["/api/v2/*"]
548
- service = google_compute_backend_service.api_v2.id
549
- }
550
- }
551
- }
552
-
553
- resource "google_compute_backend_service" "default" {
554
- name = "app-backend-service"
555
- protocol = "HTTP"
556
- timeout_sec = 30
557
- health_checks = [google_compute_health_check.default.id]
558
-
559
- backend {
560
- group = google_compute_instance_group.us_central1.id
561
- balancing_mode = "UTILIZATION"
562
- capacity_scaler = 1.0
563
- }
564
-
565
- backend {
566
- group = google_compute_instance_group.us_east1.id
567
- balancing_mode = "UTILIZATION"
568
- capacity_scaler = 1.0
569
- }
570
-
571
- log_config {
572
- enable = true
573
- sample_rate = 1.0
574
- }
575
- }
576
-
577
- resource "google_compute_health_check" "default" {
578
- name = "app-health-check"
579
- check_interval_sec = 10
580
- timeout_sec = 5
581
- healthy_threshold = 2
582
- unhealthy_threshold = 3
583
-
584
- http_health_check {
585
- port = 8080
586
- request_path = "/health"
587
- }
588
- }
589
- ```
590
-
591
- ## HAProxy Configuration
592
-
593
- ```haproxy
594
- global
595
- log /dev/log local0
596
- maxconn 4096
597
- user haproxy
598
- group haproxy
599
- daemon
600
-
601
- # SSL settings
602
- ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
603
- ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
604
-
605
- stats socket /run/haproxy/admin.sock mode 660 level admin
606
- stats timeout 30s
607
-
608
- defaults
609
- log global
610
- mode http
611
- option httplog
612
- option dontlognull
613
- option http-server-close
614
- option forwardfor except 127.0.0.0/8
615
- option redispatch
616
- retries 3
617
- timeout connect 5000
618
- timeout client 50000
619
- timeout server 50000
620
- errorfile 400 /etc/haproxy/errors/400.http
621
- errorfile 403 /etc/haproxy/errors/403.http
622
- errorfile 408 /etc/haproxy/errors/408.http
623
- errorfile 500 /etc/haproxy/errors/500.http
624
- errorfile 502 /etc/haproxy/errors/502.http
625
- errorfile 503 /etc/haproxy/errors/503.http
626
- errorfile 504 /etc/haproxy/errors/504.http
627
-
628
- frontend stats
629
- bind *:8404
630
- stats enable
631
- stats uri /stats
632
- stats refresh 10s
633
- stats auth admin:password
634
-
635
- frontend http_frontend
636
- bind *:80
637
- redirect scheme https code 301
638
-
639
- frontend https_frontend
640
- bind *:443 ssl crt /etc/haproxy/certs/
641
-
642
- # Rate limiting
643
- stick-table type ip size 100k expire 30s store http_req_rate(10s)
644
- http-request track-sc0 src
645
- http-request deny deny_status 429 if { sc_http_req_rate(0) gt 100 }
646
-
647
- # ACLs for routing
648
- acl is_api path_beg /api
649
- acl is_admin path_beg /admin
650
- acl is_static path_end .jpg .png .css .js
651
-
652
- use_backend api_servers if is_api
653
- use_backend admin_servers if is_admin
654
- use_backend static_servers if is_static
655
- default_backend app_servers
656
-
657
- backend app_servers
658
- balance roundrobin
659
- option httpchk GET /health HTTP/1.1\r\nHost:\ localhost
660
- http-check expect status 200
661
-
662
- server app1 10.0.1.10:8080 check inter 2s rise 2 fall 3 maxconn 1000
663
- server app2 10.0.1.11:8080 check inter 2s rise 2 fall 3 maxconn 1000
664
- server app3 10.0.1.12:8080 check inter 2s rise 2 fall 3 maxconn 1000
665
-
666
- backend api_servers
667
- balance leastconn
668
- option httpchk GET /api/health
669
-
670
- server api1 10.0.2.10:8080 check
671
- server api2 10.0.2.11:8080 check
672
- ```
673
-
674
- ## Nginx Load Balancing
675
-
676
- ```nginx
677
- http {
678
- upstream backend {
679
- least_conn;
680
-
681
- server backend1.example.com:8080 max_fails=3 fail_timeout=30s;
682
- server backend2.example.com:8080 max_fails=3 fail_timeout=30s;
683
- server backend3.example.com:8080 max_fails=3 fail_timeout=30s;
684
-
685
- # Backup server
686
- server backup.example.com:8080 backup;
687
-
688
- keepalive 32;
689
- }
690
-
691
- upstream api_backend {
692
- hash $request_uri consistent;
693
-
694
- server api1.example.com:8080;
695
- server api2.example.com:8080;
696
-
697
- keepalive 32;
698
- }
699
-
700
- server {
701
- listen 80;
702
- server_name app.example.com;
703
- return 301 https://$server_name$request_uri;
704
- }
705
-
706
- server {
707
- listen 443 ssl http2;
708
- server_name app.example.com;
709
-
710
- ssl_certificate /etc/nginx/ssl/cert.pem;
711
- ssl_certificate_key /etc/nginx/ssl/key.pem;
712
-
713
- location / {
714
- proxy_pass http://backend;
715
- proxy_http_version 1.1;
716
- proxy_set_header Connection "";
717
- proxy_set_header Host $host;
718
- proxy_set_header X-Real-IP $remote_addr;
719
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
720
- proxy_set_header X-Forwarded-Proto $scheme;
721
-
722
- # Timeouts
723
- proxy_connect_timeout 60s;
724
- proxy_send_timeout 60s;
725
- proxy_read_timeout 60s;
726
-
727
- # Buffering
728
- proxy_buffering on;
729
- proxy_buffer_size 4k;
730
- proxy_buffers 8 4k;
731
- }
732
-
733
- location /api/ {
734
- proxy_pass http://api_backend;
735
- proxy_http_version 1.1;
736
- proxy_set_header Connection "";
737
- }
738
-
739
- location /health {
740
- access_log off;
741
- return 200 "healthy\n";
742
- add_header Content-Type text/plain;
743
- }
744
- }
745
- }
746
- ```
747
-
748
- ## Kubernetes Ingress
749
-
750
- ```yaml
751
- apiVersion: networking.k8s.io/v1
752
- kind: Ingress
753
- metadata:
754
- name: app-ingress
755
- annotations:
756
- kubernetes.io/ingress.class: nginx
757
- cert-manager.io/cluster-issuer: letsencrypt-prod
758
- nginx.ingress.kubernetes.io/rate-limit: "100"
759
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
760
- nginx.ingress.kubernetes.io/use-regex: "true"
761
- nginx.ingress.kubernetes.io/affinity: "cookie"
762
- nginx.ingress.kubernetes.io/session-cookie-name: "route"
763
- nginx.ingress.kubernetes.io/session-cookie-max-age: "86400"
764
- spec:
765
- tls:
766
- - hosts:
767
- - app.example.com
768
- secretName: app-tls
769
- rules:
770
- - host: app.example.com
771
- http:
772
- paths:
773
- - path: /api/v1
774
- pathType: Prefix
775
- backend:
776
- service:
777
- name: api-v1
778
- port:
779
- number: 8080
780
- - path: /api/v2
781
- pathType: Prefix
782
- backend:
783
- service:
784
- name: api-v2
785
- port:
786
- number: 8080
787
- - path: /
788
- pathType: Prefix
789
- backend:
790
- service:
791
- name: frontend
792
- port:
793
- number: 80
794
- ```
795
-
796
- ## Best Practices
797
-
798
- 1. **Always use health checks** - Detect and remove unhealthy instances
799
- 2. **Enable connection draining** - Allow in-flight requests to complete
800
- 3. **Use SSL/TLS termination** - Offload encryption from backends
801
- 4. **Implement rate limiting** - Protect against abuse and DDoS
802
- 5. **Enable access logs** - Debug issues and analyze traffic patterns
803
- 6. **Use appropriate timeouts** - Prevent resource exhaustion
804
- 7. **Configure proper session persistence** - When stateful sessions required
805
- 8. **Enable monitoring and metrics** - Track performance and errors
806
- 9. **Use multiple availability zones** - Ensure high availability
807
- 10. **Test failover regularly** - Verify redundancy works
808
-
809
- ## Anti-Patterns
810
-
811
- - **Single load balancer** - Creates single point of failure
812
- - **No health checks** - Sends traffic to failed instances
813
- - **Overly aggressive health checks** - Can overload backends
814
- - **No SSL/TLS** - Exposes traffic to interception
815
- - **Hard-coded server IPs** - Makes scaling difficult
816
- - **Insufficient connection limits** - Can exhaust resources
817
- - **No monitoring** - Can't detect issues
818
- - **Same health check and application port** - Can give false positives
819
- - **No timeout configuration** - Leads to resource leaks
820
- - **Ignoring connection draining** - Causes dropped requests during deployments