75601988c2
- Cover, TOC, 5 dividers, 3 recap slides - 5 sections (chains, langgraph, deepagents, openswe, ecosystem) - design-system.js with theme tokens + 9 helper functions - research/: timeline + sources + per-tech notes - final-compile.js + merge.js for rebuild pipeline - output/: langchain-evolution.pptx (2.3 MB) + langchain-evolution.pdf (1.1 MB) + 7 sample previews
72 lines
2.0 KiB
JavaScript
72 lines
2.0 KiB
JavaScript
/**
|
|
* slides/21-production-ready.js
|
|
* ----------------------------------------------------------------------------
|
|
* Slide 21 -- Production: чеклист prod-ready
|
|
*/
|
|
'use strict';
|
|
|
|
const { helpers, layouts } = require('../../design-system');
|
|
|
|
function buildProductionReady(pres, theme) {
|
|
const slide = pres.addSlide();
|
|
helpers.slideBase(slide, pres, theme);
|
|
helpers.addHeader(slide, pres, theme, {
|
|
eyebrow: 'STAGE 4',
|
|
sectionNumber: 4,
|
|
title: 'Production: prod-ready',
|
|
});
|
|
|
|
// Two columns of checklist items
|
|
const leftItems = [
|
|
'docker-compose / k8s',
|
|
'managed Postgres',
|
|
'Vault / sealed-secrets',
|
|
'TLS + reverse proxy',
|
|
'rate limit на /webhooks/*',
|
|
'idempotency keys',
|
|
];
|
|
|
|
const rightItems = [
|
|
'LangSmith prod-project',
|
|
'Datadog dashboards + SLO',
|
|
'sandbox cost budget',
|
|
'audit log всех PR',
|
|
'docs: runbook, on-call',
|
|
'load test 100 threads',
|
|
];
|
|
|
|
helpers.addCallout(slide, pres, theme, {
|
|
x: 0.5, y: layouts.CONTENT_TOP, w: 4.4, h: 1.6,
|
|
kind: 'success',
|
|
title: 'Infra',
|
|
text: leftItems.map(function (i) { return '+ ' + i; }).join('\n'),
|
|
});
|
|
|
|
helpers.addCallout(slide, pres, theme, {
|
|
x: 5.1, y: layouts.CONTENT_TOP, w: 4.4, h: 1.6,
|
|
kind: 'info',
|
|
title: 'Ops',
|
|
text: rightItems.map(function (i) { return '+ ' + i; }).join('\n'),
|
|
});
|
|
|
|
helpers.addCallout(slide, pres, theme, {
|
|
x: 0.5, y: 3.15, w: 9.0, h: 1.7,
|
|
kind: 'warning',
|
|
title: 'Самый частый пропуск',
|
|
text:
|
|
'"Trust the LLM" внутри sandbox. ' +
|
|
'Без надлежащей изоляции (seccomp, ' +
|
|
'network policy, ephemeral FS) агент ' +
|
|
'может сделать rm -rf или curl внутренних ' +
|
|
'сервисов. Изоляция важнее prompts.',
|
|
});
|
|
|
|
helpers.addPageNumber(slide, pres, theme, 21);
|
|
helpers.addSourceLine(slide, pres, theme, {
|
|
source: 'production-readiness checklist + SRE playbook',
|
|
});
|
|
return slide;
|
|
}
|
|
|
|
module.exports = { buildProductionReady };
|