@json-to-office/core-docx 1.10.0 → 2.0.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.
- package/dist/core/generateFromIr.d.ts +8 -0
- package/dist/core/generateFromIr.d.ts.map +1 -1
- package/dist/core/generator.d.ts +8 -0
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/tableModel.d.ts +1 -1
- package/dist/core/tableModel.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +491 -591
- package/dist/index.js.map +1 -1
- package/dist/ir/inline.d.ts.map +1 -1
- package/dist/plugin/createDocumentGenerator.d.ts +8 -0
- package/dist/plugin/createDocumentGenerator.d.ts.map +1 -1
- package/dist/plugin/example/index.js +487 -588
- package/dist/plugin/example/index.js.map +1 -1
- package/dist/renderers/docxjs/emit.d.ts.map +1 -1
- package/dist/renderers/docxjs/index.d.ts.map +1 -1
- package/dist/renderers/office-open/index.d.ts +1 -1
- package/dist/renderers/office-open/index.d.ts.map +1 -1
- package/dist/renderers/types.d.ts +9 -0
- package/dist/renderers/types.d.ts.map +1 -1
- package/dist/styles/index.d.ts +1 -1
- package/dist/styles/index.d.ts.map +1 -1
- package/dist/templates/documents/field-review.docx.json +1148 -0
- package/dist/templates/documents/index.d.ts +2 -2
- package/dist/templates/documents/index.d.ts.map +1 -1
- package/dist/templates/documents/practice-note.docx.json +917 -0
- package/dist/templates/themes/devportal.docx.theme.json +110 -44
- package/dist/templates/themes/index.d.ts +2 -2
- package/dist/templates/themes/index.d.ts.map +1 -1
- package/dist/templates/themes/minimal.docx.theme.json +124 -127
- package/dist/templates/themes/vermilion.docx.theme.json +82 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/imageUtils.d.ts +19 -0
- package/dist/utils/imageUtils.d.ts.map +1 -1
- package/dist/utils/listLevels.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/templates/documents/proposal.docx.json +0 -1723
- package/dist/templates/documents/technical-guide.docx.json +0 -2040
- package/dist/templates/themes/apex.docx.theme.json +0 -117
- package/dist/templates/themes/corporate.docx.theme.json +0 -114
- package/dist/templates/themes/modern.docx.theme.json +0 -109
|
@@ -1,1723 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "docx",
|
|
3
|
-
"props": {
|
|
4
|
-
"metadata": {
|
|
5
|
-
"title": "Cloud Migration Proposal",
|
|
6
|
-
"author": "Apex Consulting",
|
|
7
|
-
"description": "Strategic proposal for Meridian Financial Group's cloud transformation initiative"
|
|
8
|
-
},
|
|
9
|
-
"theme": "vermilion"
|
|
10
|
-
},
|
|
11
|
-
"children": [
|
|
12
|
-
{
|
|
13
|
-
"name": "section",
|
|
14
|
-
"props": {
|
|
15
|
-
"meta": {
|
|
16
|
-
"title": "Cover"
|
|
17
|
-
},
|
|
18
|
-
"page": {
|
|
19
|
-
"margins": {
|
|
20
|
-
"top": 0,
|
|
21
|
-
"right": 0,
|
|
22
|
-
"bottom": 0,
|
|
23
|
-
"left": 0,
|
|
24
|
-
"header": 0,
|
|
25
|
-
"footer": 0
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"header": [],
|
|
29
|
-
"footer": []
|
|
30
|
-
},
|
|
31
|
-
"children": [
|
|
32
|
-
{
|
|
33
|
-
"name": "image",
|
|
34
|
-
"props": {
|
|
35
|
-
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8.39in\" height=\"11.81in\" viewBox=\"0 0 806 1134\"><rect width=\"806\" height=\"1134\" fill=\"#EF4130\"/><rect x=\"0\" y=\"522\" width=\"806\" height=\"92\" fill=\"#F68F71\"/><rect x=\"0\" y=\"614\" width=\"806\" height=\"520\" fill=\"#C7C8CA\"/><rect x=\"216\" y=\"231\" width=\"46\" height=\"1.6\" fill=\"#FFFFFF\"/><rect x=\"544\" y=\"231\" width=\"46\" height=\"1.6\" fill=\"#FFFFFF\"/><rect x=\"402.5\" y=\"468\" width=\"1\" height=\"44\" fill=\"#FFFFFF\"/><circle cx=\"403\" cy=\"540\" r=\"18\" fill=\"#FFFFFF\"/><path d=\"M403,532 L403,546 M397,541 L403,547 L409,541\" stroke=\"#EF4130\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>",
|
|
36
|
-
"width": 806,
|
|
37
|
-
"height": 1134,
|
|
38
|
-
"floating": {
|
|
39
|
-
"behindDocument": true,
|
|
40
|
-
"zIndex": 0,
|
|
41
|
-
"allowOverlap": true,
|
|
42
|
-
"horizontalPosition": {
|
|
43
|
-
"relative": "page",
|
|
44
|
-
"offset": -86
|
|
45
|
-
},
|
|
46
|
-
"verticalPosition": {
|
|
47
|
-
"relative": "page",
|
|
48
|
-
"offset": -86
|
|
49
|
-
},
|
|
50
|
-
"wrap": {
|
|
51
|
-
"type": "none"
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"name": "paragraph",
|
|
58
|
-
"props": {
|
|
59
|
-
"text": "APEX CONSULTING",
|
|
60
|
-
"noProof": true,
|
|
61
|
-
"alignment": "center",
|
|
62
|
-
"spacing": {
|
|
63
|
-
"before": 0,
|
|
64
|
-
"after": 0
|
|
65
|
-
},
|
|
66
|
-
"font": {
|
|
67
|
-
"size": 10.5,
|
|
68
|
-
"color": "#FFFFFF",
|
|
69
|
-
"family": "Calibri",
|
|
70
|
-
"bold": true,
|
|
71
|
-
"characterSpacing": {
|
|
72
|
-
"type": "expanded",
|
|
73
|
-
"value": 50
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
"floating": {
|
|
77
|
-
"width": 11906,
|
|
78
|
-
"horizontalPosition": {
|
|
79
|
-
"relative": "page",
|
|
80
|
-
"offset": 0
|
|
81
|
-
},
|
|
82
|
-
"verticalPosition": {
|
|
83
|
-
"relative": "page",
|
|
84
|
-
"offset": 1120
|
|
85
|
-
},
|
|
86
|
-
"wrap": {
|
|
87
|
-
"type": "none"
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"name": "paragraph",
|
|
94
|
-
"props": {
|
|
95
|
-
"text": "CLOUD",
|
|
96
|
-
"noProof": true,
|
|
97
|
-
"alignment": "center",
|
|
98
|
-
"spacing": {
|
|
99
|
-
"before": 0,
|
|
100
|
-
"after": 0
|
|
101
|
-
},
|
|
102
|
-
"font": {
|
|
103
|
-
"size": 13,
|
|
104
|
-
"color": "#FFFFFF",
|
|
105
|
-
"family": "Calibri",
|
|
106
|
-
"bold": true,
|
|
107
|
-
"characterSpacing": {
|
|
108
|
-
"type": "expanded",
|
|
109
|
-
"value": 90
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
"floating": {
|
|
113
|
-
"width": 11906,
|
|
114
|
-
"horizontalPosition": {
|
|
115
|
-
"relative": "page",
|
|
116
|
-
"offset": 0
|
|
117
|
-
},
|
|
118
|
-
"verticalPosition": {
|
|
119
|
-
"relative": "page",
|
|
120
|
-
"offset": 3260
|
|
121
|
-
},
|
|
122
|
-
"wrap": {
|
|
123
|
-
"type": "none"
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"name": "paragraph",
|
|
130
|
-
"props": {
|
|
131
|
-
"text": "MIGRATION",
|
|
132
|
-
"noProof": true,
|
|
133
|
-
"alignment": "center",
|
|
134
|
-
"spacing": {
|
|
135
|
-
"before": 0,
|
|
136
|
-
"after": 0
|
|
137
|
-
},
|
|
138
|
-
"font": {
|
|
139
|
-
"size": 58,
|
|
140
|
-
"color": "#FFFFFF",
|
|
141
|
-
"family": "Arial",
|
|
142
|
-
"bold": true,
|
|
143
|
-
"lineSpacing": {
|
|
144
|
-
"type": "exactly",
|
|
145
|
-
"value": 62
|
|
146
|
-
},
|
|
147
|
-
"characterSpacing": {
|
|
148
|
-
"type": "condensed",
|
|
149
|
-
"value": 10
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
"floating": {
|
|
153
|
-
"width": 11906,
|
|
154
|
-
"horizontalPosition": {
|
|
155
|
-
"relative": "page",
|
|
156
|
-
"offset": 0
|
|
157
|
-
},
|
|
158
|
-
"verticalPosition": {
|
|
159
|
-
"relative": "page",
|
|
160
|
-
"offset": 3700
|
|
161
|
-
},
|
|
162
|
-
"wrap": {
|
|
163
|
-
"type": "none"
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
"name": "paragraph",
|
|
170
|
-
"props": {
|
|
171
|
-
"text": "PROPOSAL 2026",
|
|
172
|
-
"noProof": true,
|
|
173
|
-
"alignment": "center",
|
|
174
|
-
"spacing": {
|
|
175
|
-
"before": 0,
|
|
176
|
-
"after": 0
|
|
177
|
-
},
|
|
178
|
-
"font": {
|
|
179
|
-
"size": 30,
|
|
180
|
-
"color": "#FFFFFF",
|
|
181
|
-
"family": "Arial",
|
|
182
|
-
"bold": true,
|
|
183
|
-
"characterSpacing": {
|
|
184
|
-
"type": "expanded",
|
|
185
|
-
"value": 20
|
|
186
|
-
}
|
|
187
|
-
},
|
|
188
|
-
"floating": {
|
|
189
|
-
"width": 11906,
|
|
190
|
-
"horizontalPosition": {
|
|
191
|
-
"relative": "page",
|
|
192
|
-
"offset": 0
|
|
193
|
-
},
|
|
194
|
-
"verticalPosition": {
|
|
195
|
-
"relative": "page",
|
|
196
|
-
"offset": 5000
|
|
197
|
-
},
|
|
198
|
-
"wrap": {
|
|
199
|
-
"type": "none"
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
"name": "paragraph",
|
|
206
|
-
"props": {
|
|
207
|
-
"text": "Prepared for Meridian Financial Group · April 2026",
|
|
208
|
-
"noProof": true,
|
|
209
|
-
"alignment": "left",
|
|
210
|
-
"spacing": {
|
|
211
|
-
"before": 0,
|
|
212
|
-
"after": 0
|
|
213
|
-
},
|
|
214
|
-
"font": {
|
|
215
|
-
"size": 9.5,
|
|
216
|
-
"color": "#282829",
|
|
217
|
-
"family": "Calibri"
|
|
218
|
-
},
|
|
219
|
-
"floating": {
|
|
220
|
-
"width": 7000,
|
|
221
|
-
"horizontalPosition": {
|
|
222
|
-
"relative": "page",
|
|
223
|
-
"offset": 1180
|
|
224
|
-
},
|
|
225
|
-
"verticalPosition": {
|
|
226
|
-
"relative": "page",
|
|
227
|
-
"offset": 14980
|
|
228
|
-
},
|
|
229
|
-
"wrap": {
|
|
230
|
-
"type": "none"
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
"name": "paragraph",
|
|
237
|
-
"props": {
|
|
238
|
-
"text": "Confidential",
|
|
239
|
-
"noProof": true,
|
|
240
|
-
"alignment": "right",
|
|
241
|
-
"spacing": {
|
|
242
|
-
"before": 0,
|
|
243
|
-
"after": 0
|
|
244
|
-
},
|
|
245
|
-
"font": {
|
|
246
|
-
"size": 9.5,
|
|
247
|
-
"color": "#EF4130",
|
|
248
|
-
"family": "Calibri",
|
|
249
|
-
"bold": true
|
|
250
|
-
},
|
|
251
|
-
"floating": {
|
|
252
|
-
"width": 2230,
|
|
253
|
-
"horizontalPosition": {
|
|
254
|
-
"relative": "page",
|
|
255
|
-
"offset": 8500
|
|
256
|
-
},
|
|
257
|
-
"verticalPosition": {
|
|
258
|
-
"relative": "page",
|
|
259
|
-
"offset": 14980
|
|
260
|
-
},
|
|
261
|
-
"wrap": {
|
|
262
|
-
"type": "none"
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
]
|
|
268
|
-
},
|
|
269
|
-
{
|
|
270
|
-
"name": "section",
|
|
271
|
-
"props": {
|
|
272
|
-
"meta": {
|
|
273
|
-
"title": "Overview & Contents"
|
|
274
|
-
},
|
|
275
|
-
"header": [
|
|
276
|
-
{
|
|
277
|
-
"name": "paragraph",
|
|
278
|
-
"props": {
|
|
279
|
-
"text": "Apex Consulting — Confidential",
|
|
280
|
-
"alignment": "right"
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
],
|
|
284
|
-
"footer": [
|
|
285
|
-
{
|
|
286
|
-
"name": "paragraph",
|
|
287
|
-
"props": {
|
|
288
|
-
"text": "Prepared for Meridian Financial Group",
|
|
289
|
-
"alignment": "left"
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
],
|
|
293
|
-
"pageBreak": true
|
|
294
|
-
},
|
|
295
|
-
"children": [
|
|
296
|
-
{
|
|
297
|
-
"name": "image",
|
|
298
|
-
"props": {
|
|
299
|
-
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"800\" height=\"120\" viewBox=\"0 0 800 120\"><rect width=\"800\" height=\"120\" fill=\"#EF4130\"/><rect width=\"8\" height=\"120\" fill=\"#282829\"/><rect x=\"712\" y=\"59.2\" width=\"1\" height=\"26\" fill=\"#FFFFFF\"/><circle cx=\"712.5\" cy=\"48\" r=\"12\" fill=\"#FFFFFF\"/><path d=\"M712.5,43 L712.5,52 M708.5,48.5 L712.5,52.5 L716.5,48.5\" stroke=\"#EF4130\" stroke-width=\"1.6\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><text x=\"40\" y=\"56\" font-family=\"Arial, sans-serif\" font-size=\"28\" font-weight=\"bold\" letter-spacing=\"3\" fill=\"#FFFFFF\">APEX CONSULTING</text><text x=\"40\" y=\"84\" font-family=\"Arial, sans-serif\" font-size=\"10\" letter-spacing=\"5\" fill=\"#FEE9DF\">ENTERPRISE CLOUD ADVISORY</text></svg>",
|
|
300
|
-
"width": "100%"
|
|
301
|
-
}
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
"name": "heading",
|
|
305
|
-
"props": {
|
|
306
|
-
"text": "About This Proposal",
|
|
307
|
-
"level": 1
|
|
308
|
-
}
|
|
309
|
-
},
|
|
310
|
-
{
|
|
311
|
-
"name": "paragraph",
|
|
312
|
-
"props": {
|
|
313
|
-
"text": "This proposal outlines a phased approach to migrate Meridian Financial Group's on-premise infrastructure to a cloud-native architecture on AWS. The initiative will reduce operational costs by 42%, improve system reliability to 99.99% uptime, and position Meridian for the next decade of growth in digital financial services."
|
|
314
|
-
}
|
|
315
|
-
},
|
|
316
|
-
{
|
|
317
|
-
"name": "paragraph",
|
|
318
|
-
"props": {
|
|
319
|
-
"text": "Apex Consulting brings 14 years of experience in financial services cloud transformations, having successfully migrated 23 regulated financial institutions to cloud-native architectures. Our team holds AWS Advanced Consulting Partner status and specializes in PCI-DSS and SOC 2 compliant migrations."
|
|
320
|
-
}
|
|
321
|
-
},
|
|
322
|
-
{
|
|
323
|
-
"name": "heading",
|
|
324
|
-
"props": {
|
|
325
|
-
"text": "Contents",
|
|
326
|
-
"level": 2
|
|
327
|
-
}
|
|
328
|
-
},
|
|
329
|
-
{
|
|
330
|
-
"name": "toc",
|
|
331
|
-
"props": {
|
|
332
|
-
"depth": {
|
|
333
|
-
"from": 1,
|
|
334
|
-
"to": 2
|
|
335
|
-
},
|
|
336
|
-
"scope": "document"
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
]
|
|
340
|
-
},
|
|
341
|
-
{
|
|
342
|
-
"name": "section",
|
|
343
|
-
"props": {
|
|
344
|
-
"meta": {
|
|
345
|
-
"title": "Executive Summary"
|
|
346
|
-
},
|
|
347
|
-
"pageBreak": true,
|
|
348
|
-
"header": "linkToPrevious",
|
|
349
|
-
"footer": "linkToPrevious"
|
|
350
|
-
},
|
|
351
|
-
"children": [
|
|
352
|
-
{
|
|
353
|
-
"name": "heading",
|
|
354
|
-
"props": {
|
|
355
|
-
"text": "Executive Summary",
|
|
356
|
-
"level": 1
|
|
357
|
-
}
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
"name": "paragraph",
|
|
361
|
-
"props": {
|
|
362
|
-
"text": "Meridian Financial Group's current infrastructure is approaching end-of-life across multiple critical systems. Server utilization has reached critical thresholds, monthly downtime exceeds SLA targets, and the 6-8 week hardware procurement cycle severely limits business agility. The security posture carries significant risk with 47 unpatched critical vulnerabilities across end-of-life systems."
|
|
363
|
-
}
|
|
364
|
-
},
|
|
365
|
-
{
|
|
366
|
-
"name": "columns",
|
|
367
|
-
"props": {
|
|
368
|
-
"columns": 3,
|
|
369
|
-
"gap": 0.4
|
|
370
|
-
},
|
|
371
|
-
"children": [
|
|
372
|
-
{
|
|
373
|
-
"name": "statistic",
|
|
374
|
-
"props": {
|
|
375
|
-
"number": "$1.14M/yr",
|
|
376
|
-
"description": "Projected Savings",
|
|
377
|
-
"trendValue": "42% cost reduction"
|
|
378
|
-
}
|
|
379
|
-
},
|
|
380
|
-
{
|
|
381
|
-
"name": "statistic",
|
|
382
|
-
"props": {
|
|
383
|
-
"number": "99.99%",
|
|
384
|
-
"description": "Target Uptime",
|
|
385
|
-
"trendValue": "From 97.4% current"
|
|
386
|
-
}
|
|
387
|
-
},
|
|
388
|
-
{
|
|
389
|
-
"name": "statistic",
|
|
390
|
-
"props": {
|
|
391
|
-
"number": "26 weeks",
|
|
392
|
-
"description": "Migration Timeline",
|
|
393
|
-
"trendValue": "3-phase approach"
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
]
|
|
397
|
-
},
|
|
398
|
-
{
|
|
399
|
-
"name": "paragraph",
|
|
400
|
-
"props": {
|
|
401
|
-
"text": "We propose a three-phase migration to AWS, leveraging managed services to minimize operational burden while maximizing reliability and cost efficiency. The migration will be executed with zero planned downtime for customer-facing systems, using blue-green deployment strategies and automated rollback procedures."
|
|
402
|
-
}
|
|
403
|
-
},
|
|
404
|
-
{
|
|
405
|
-
"name": "heading",
|
|
406
|
-
"props": {
|
|
407
|
-
"text": "Strategic Objectives",
|
|
408
|
-
"level": 2
|
|
409
|
-
}
|
|
410
|
-
},
|
|
411
|
-
{
|
|
412
|
-
"name": "list",
|
|
413
|
-
"props": {
|
|
414
|
-
"format": "decimal",
|
|
415
|
-
"items": [
|
|
416
|
-
"Eliminate $2.1M hardware refresh cycle and transition to OpEx model",
|
|
417
|
-
"Reduce provisioning time from 6-8 weeks to under 15 minutes",
|
|
418
|
-
"Achieve SOC 2 Type II compliance through automated security controls",
|
|
419
|
-
"Enable engineering teams with isolated environments and CI/CD pipelines",
|
|
420
|
-
"Establish multi-region disaster recovery with < 1 minute RPO"
|
|
421
|
-
]
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
]
|
|
425
|
-
},
|
|
426
|
-
{
|
|
427
|
-
"name": "section",
|
|
428
|
-
"props": {
|
|
429
|
-
"meta": {
|
|
430
|
-
"title": "Current State Assessment"
|
|
431
|
-
},
|
|
432
|
-
"pageBreak": true,
|
|
433
|
-
"header": "linkToPrevious",
|
|
434
|
-
"footer": "linkToPrevious"
|
|
435
|
-
},
|
|
436
|
-
"children": [
|
|
437
|
-
{
|
|
438
|
-
"name": "heading",
|
|
439
|
-
"props": {
|
|
440
|
-
"text": "Current State Assessment",
|
|
441
|
-
"level": 1
|
|
442
|
-
}
|
|
443
|
-
},
|
|
444
|
-
{
|
|
445
|
-
"name": "paragraph",
|
|
446
|
-
"props": {
|
|
447
|
-
"text": "Our discovery audit of Meridian's infrastructure identified critical capacity constraints, security vulnerabilities, and operational inefficiencies that create material business risk. The following assessment is based on a two-week on-site evaluation conducted in February 2026."
|
|
448
|
-
}
|
|
449
|
-
},
|
|
450
|
-
{
|
|
451
|
-
"name": "columns",
|
|
452
|
-
"props": {
|
|
453
|
-
"columns": 2,
|
|
454
|
-
"gap": 0.5
|
|
455
|
-
},
|
|
456
|
-
"children": [
|
|
457
|
-
{
|
|
458
|
-
"name": "statistic",
|
|
459
|
-
"props": {
|
|
460
|
-
"number": "87%",
|
|
461
|
-
"description": "Server Utilization",
|
|
462
|
-
"trendValue": "Critical capacity"
|
|
463
|
-
}
|
|
464
|
-
},
|
|
465
|
-
{
|
|
466
|
-
"name": "statistic",
|
|
467
|
-
"props": {
|
|
468
|
-
"number": "23 hrs",
|
|
469
|
-
"description": "Monthly Downtime",
|
|
470
|
-
"trendValue": "Below SLA target"
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
]
|
|
474
|
-
},
|
|
475
|
-
{
|
|
476
|
-
"name": "heading",
|
|
477
|
-
"props": {
|
|
478
|
-
"text": "Infrastructure Inventory",
|
|
479
|
-
"level": 2
|
|
480
|
-
}
|
|
481
|
-
},
|
|
482
|
-
{
|
|
483
|
-
"name": "table",
|
|
484
|
-
"props": {
|
|
485
|
-
"headerCellDefaults": {
|
|
486
|
-
"font": {
|
|
487
|
-
"bold": true,
|
|
488
|
-
"size": 10
|
|
489
|
-
},
|
|
490
|
-
"padding": {
|
|
491
|
-
"top": 8,
|
|
492
|
-
"right": 10,
|
|
493
|
-
"bottom": 8,
|
|
494
|
-
"left": 10
|
|
495
|
-
}
|
|
496
|
-
},
|
|
497
|
-
"cellDefaults": {
|
|
498
|
-
"padding": {
|
|
499
|
-
"top": 5,
|
|
500
|
-
"right": 10,
|
|
501
|
-
"bottom": 5,
|
|
502
|
-
"left": 10
|
|
503
|
-
},
|
|
504
|
-
"verticalAlignment": "middle",
|
|
505
|
-
"font": {
|
|
506
|
-
"size": 10
|
|
507
|
-
}
|
|
508
|
-
},
|
|
509
|
-
"borderColor": "EFEAE4",
|
|
510
|
-
"borderSize": 1,
|
|
511
|
-
"hideBorders": {
|
|
512
|
-
"insideVertical": true
|
|
513
|
-
},
|
|
514
|
-
"columns": [
|
|
515
|
-
{
|
|
516
|
-
"header": {
|
|
517
|
-
"content": "Component"
|
|
518
|
-
},
|
|
519
|
-
"cells": [
|
|
520
|
-
{
|
|
521
|
-
"content": "Application Servers"
|
|
522
|
-
},
|
|
523
|
-
{
|
|
524
|
-
"content": "Database Cluster"
|
|
525
|
-
},
|
|
526
|
-
{
|
|
527
|
-
"content": "Storage"
|
|
528
|
-
},
|
|
529
|
-
{
|
|
530
|
-
"content": "Network"
|
|
531
|
-
},
|
|
532
|
-
{
|
|
533
|
-
"content": "Disaster Recovery"
|
|
534
|
-
},
|
|
535
|
-
{
|
|
536
|
-
"content": "Load Balancers"
|
|
537
|
-
},
|
|
538
|
-
{
|
|
539
|
-
"content": "Message Queue"
|
|
540
|
-
}
|
|
541
|
-
]
|
|
542
|
-
},
|
|
543
|
-
{
|
|
544
|
-
"header": {
|
|
545
|
-
"content": "Current Configuration"
|
|
546
|
-
},
|
|
547
|
-
"cells": [
|
|
548
|
-
{
|
|
549
|
-
"content": "12 physical Dell R740xd"
|
|
550
|
-
},
|
|
551
|
-
{
|
|
552
|
-
"content": "3-node Oracle RAC 19c"
|
|
553
|
-
},
|
|
554
|
-
{
|
|
555
|
-
"content": "NetApp FAS8200, 48TB"
|
|
556
|
-
},
|
|
557
|
-
{
|
|
558
|
-
"content": "Cisco Catalyst 9300 stack"
|
|
559
|
-
},
|
|
560
|
-
{
|
|
561
|
-
"content": "Tape backup, 24hr RPO"
|
|
562
|
-
},
|
|
563
|
-
{
|
|
564
|
-
"content": "F5 BIG-IP pair (active/passive)"
|
|
565
|
-
},
|
|
566
|
-
{
|
|
567
|
-
"content": "RabbitMQ 3.8 (single node)"
|
|
568
|
-
}
|
|
569
|
-
]
|
|
570
|
-
},
|
|
571
|
-
{
|
|
572
|
-
"header": {
|
|
573
|
-
"content": "Age"
|
|
574
|
-
},
|
|
575
|
-
"cells": [
|
|
576
|
-
{
|
|
577
|
-
"content": "5-7 years"
|
|
578
|
-
},
|
|
579
|
-
{
|
|
580
|
-
"content": "6 years"
|
|
581
|
-
},
|
|
582
|
-
{
|
|
583
|
-
"content": "4 years"
|
|
584
|
-
},
|
|
585
|
-
{
|
|
586
|
-
"content": "8 years"
|
|
587
|
-
},
|
|
588
|
-
{
|
|
589
|
-
"content": "N/A"
|
|
590
|
-
},
|
|
591
|
-
{
|
|
592
|
-
"content": "5 years"
|
|
593
|
-
},
|
|
594
|
-
{
|
|
595
|
-
"content": "3 years"
|
|
596
|
-
}
|
|
597
|
-
]
|
|
598
|
-
},
|
|
599
|
-
{
|
|
600
|
-
"header": {
|
|
601
|
-
"content": "Risk Level"
|
|
602
|
-
},
|
|
603
|
-
"cells": [
|
|
604
|
-
{
|
|
605
|
-
"content": "High"
|
|
606
|
-
},
|
|
607
|
-
{
|
|
608
|
-
"content": "Critical"
|
|
609
|
-
},
|
|
610
|
-
{
|
|
611
|
-
"content": "Medium"
|
|
612
|
-
},
|
|
613
|
-
{
|
|
614
|
-
"content": "High"
|
|
615
|
-
},
|
|
616
|
-
{
|
|
617
|
-
"content": "Critical"
|
|
618
|
-
},
|
|
619
|
-
{
|
|
620
|
-
"content": "Medium"
|
|
621
|
-
},
|
|
622
|
-
{
|
|
623
|
-
"content": "Low"
|
|
624
|
-
}
|
|
625
|
-
]
|
|
626
|
-
},
|
|
627
|
-
{
|
|
628
|
-
"header": {
|
|
629
|
-
"content": "EoL Date"
|
|
630
|
-
},
|
|
631
|
-
"cells": [
|
|
632
|
-
{
|
|
633
|
-
"content": "Sep 2026"
|
|
634
|
-
},
|
|
635
|
-
{
|
|
636
|
-
"content": "Dec 2026"
|
|
637
|
-
},
|
|
638
|
-
{
|
|
639
|
-
"content": "Mar 2028"
|
|
640
|
-
},
|
|
641
|
-
{
|
|
642
|
-
"content": "Jun 2025 (past)"
|
|
643
|
-
},
|
|
644
|
-
{
|
|
645
|
-
"content": "N/A"
|
|
646
|
-
},
|
|
647
|
-
{
|
|
648
|
-
"content": "Mar 2027"
|
|
649
|
-
},
|
|
650
|
-
{
|
|
651
|
-
"content": "Jun 2029"
|
|
652
|
-
}
|
|
653
|
-
]
|
|
654
|
-
}
|
|
655
|
-
]
|
|
656
|
-
}
|
|
657
|
-
},
|
|
658
|
-
{
|
|
659
|
-
"name": "heading",
|
|
660
|
-
"props": {
|
|
661
|
-
"text": "Key Pain Points",
|
|
662
|
-
"level": 2
|
|
663
|
-
}
|
|
664
|
-
},
|
|
665
|
-
{
|
|
666
|
-
"name": "list",
|
|
667
|
-
"props": {
|
|
668
|
-
"format": "decimal",
|
|
669
|
-
"items": [
|
|
670
|
-
"Hardware refresh cycle requires $2.1M capital investment every 4 years, with a $1.8M refresh currently 6 months overdue",
|
|
671
|
-
"Scaling requires 6-8 week lead time for hardware procurement — three product launches were delayed in 2025 due to infrastructure constraints",
|
|
672
|
-
"Disaster recovery tested annually — last test in November 2025 revealed a 4-hour data gap and 12-hour RTO, far exceeding the 1-hour target",
|
|
673
|
-
"Security patching backlog of 47 critical vulnerabilities across end-of-life Cisco network equipment and Oracle database servers",
|
|
674
|
-
"Development teams blocked by shared staging environment contention — average wait time of 3.2 days for deployment slots",
|
|
675
|
-
"Monitoring is fragmented across 4 tools (Nagios, Splunk, custom scripts, manual checks) with no unified alerting or incident response automation"
|
|
676
|
-
]
|
|
677
|
-
}
|
|
678
|
-
},
|
|
679
|
-
{
|
|
680
|
-
"name": "heading",
|
|
681
|
-
"props": {
|
|
682
|
-
"text": "Compliance Gap Analysis",
|
|
683
|
-
"level": 2
|
|
684
|
-
}
|
|
685
|
-
},
|
|
686
|
-
{
|
|
687
|
-
"name": "paragraph",
|
|
688
|
-
"props": {
|
|
689
|
-
"text": "Meridian's current infrastructure does not meet several requirements mandated by the upcoming PCI-DSS v4.0 standard (effective March 2025) and SOC 2 Type II certification goals:"
|
|
690
|
-
}
|
|
691
|
-
},
|
|
692
|
-
{
|
|
693
|
-
"name": "table",
|
|
694
|
-
"props": {
|
|
695
|
-
"headerCellDefaults": {
|
|
696
|
-
"font": {
|
|
697
|
-
"bold": true,
|
|
698
|
-
"size": 10
|
|
699
|
-
},
|
|
700
|
-
"padding": {
|
|
701
|
-
"top": 8,
|
|
702
|
-
"right": 10,
|
|
703
|
-
"bottom": 8,
|
|
704
|
-
"left": 10
|
|
705
|
-
}
|
|
706
|
-
},
|
|
707
|
-
"cellDefaults": {
|
|
708
|
-
"padding": {
|
|
709
|
-
"top": 5,
|
|
710
|
-
"right": 10,
|
|
711
|
-
"bottom": 5,
|
|
712
|
-
"left": 10
|
|
713
|
-
},
|
|
714
|
-
"verticalAlignment": "middle",
|
|
715
|
-
"font": {
|
|
716
|
-
"size": 10
|
|
717
|
-
}
|
|
718
|
-
},
|
|
719
|
-
"borderColor": "EFEAE4",
|
|
720
|
-
"borderSize": 1,
|
|
721
|
-
"hideBorders": {
|
|
722
|
-
"insideVertical": true
|
|
723
|
-
},
|
|
724
|
-
"columns": [
|
|
725
|
-
{
|
|
726
|
-
"header": {
|
|
727
|
-
"content": "Requirement"
|
|
728
|
-
},
|
|
729
|
-
"cells": [
|
|
730
|
-
{
|
|
731
|
-
"content": "Encryption at rest"
|
|
732
|
-
},
|
|
733
|
-
{
|
|
734
|
-
"content": "Key rotation"
|
|
735
|
-
},
|
|
736
|
-
{
|
|
737
|
-
"content": "Audit logging"
|
|
738
|
-
},
|
|
739
|
-
{
|
|
740
|
-
"content": "Access controls"
|
|
741
|
-
},
|
|
742
|
-
{
|
|
743
|
-
"content": "Vulnerability scanning"
|
|
744
|
-
}
|
|
745
|
-
]
|
|
746
|
-
},
|
|
747
|
-
{
|
|
748
|
-
"header": {
|
|
749
|
-
"content": "Current State"
|
|
750
|
-
},
|
|
751
|
-
"cells": [
|
|
752
|
-
{
|
|
753
|
-
"content": "Partial (DB only)"
|
|
754
|
-
},
|
|
755
|
-
{
|
|
756
|
-
"content": "Manual, annual"
|
|
757
|
-
},
|
|
758
|
-
{
|
|
759
|
-
"content": "Application-level only"
|
|
760
|
-
},
|
|
761
|
-
{
|
|
762
|
-
"content": "LDAP, no MFA"
|
|
763
|
-
},
|
|
764
|
-
{
|
|
765
|
-
"content": "Quarterly manual scans"
|
|
766
|
-
}
|
|
767
|
-
]
|
|
768
|
-
},
|
|
769
|
-
{
|
|
770
|
-
"header": {
|
|
771
|
-
"content": "Required State"
|
|
772
|
-
},
|
|
773
|
-
"cells": [
|
|
774
|
-
{
|
|
775
|
-
"content": "All data stores"
|
|
776
|
-
},
|
|
777
|
-
{
|
|
778
|
-
"content": "Automated, 90-day"
|
|
779
|
-
},
|
|
780
|
-
{
|
|
781
|
-
"content": "Infrastructure + app"
|
|
782
|
-
},
|
|
783
|
-
{
|
|
784
|
-
"content": "SSO + MFA + RBAC"
|
|
785
|
-
},
|
|
786
|
-
{
|
|
787
|
-
"content": "Continuous automated"
|
|
788
|
-
}
|
|
789
|
-
]
|
|
790
|
-
},
|
|
791
|
-
{
|
|
792
|
-
"header": {
|
|
793
|
-
"content": "Gap Severity"
|
|
794
|
-
},
|
|
795
|
-
"cells": [
|
|
796
|
-
{
|
|
797
|
-
"content": "High"
|
|
798
|
-
},
|
|
799
|
-
{
|
|
800
|
-
"content": "Medium"
|
|
801
|
-
},
|
|
802
|
-
{
|
|
803
|
-
"content": "Critical"
|
|
804
|
-
},
|
|
805
|
-
{
|
|
806
|
-
"content": "High"
|
|
807
|
-
},
|
|
808
|
-
{
|
|
809
|
-
"content": "Critical"
|
|
810
|
-
}
|
|
811
|
-
]
|
|
812
|
-
}
|
|
813
|
-
]
|
|
814
|
-
}
|
|
815
|
-
}
|
|
816
|
-
]
|
|
817
|
-
},
|
|
818
|
-
{
|
|
819
|
-
"name": "section",
|
|
820
|
-
"props": {
|
|
821
|
-
"meta": {
|
|
822
|
-
"title": "Proposed Solution"
|
|
823
|
-
},
|
|
824
|
-
"pageBreak": true,
|
|
825
|
-
"header": "linkToPrevious",
|
|
826
|
-
"footer": "linkToPrevious"
|
|
827
|
-
},
|
|
828
|
-
"children": [
|
|
829
|
-
{
|
|
830
|
-
"name": "heading",
|
|
831
|
-
"props": {
|
|
832
|
-
"text": "Proposed Solution",
|
|
833
|
-
"level": 1
|
|
834
|
-
}
|
|
835
|
-
},
|
|
836
|
-
{
|
|
837
|
-
"name": "paragraph",
|
|
838
|
-
"props": {
|
|
839
|
-
"text": "We propose a three-phase migration to AWS, leveraging managed services to minimize operational burden while maximizing reliability and cost efficiency. Each phase includes defined success criteria, rollback procedures, and a go/no-go checkpoint before proceeding."
|
|
840
|
-
}
|
|
841
|
-
},
|
|
842
|
-
{
|
|
843
|
-
"name": "image",
|
|
844
|
-
"props": {
|
|
845
|
-
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"800\" height=\"340\" viewBox=\"0 0 800 340\"><rect width=\"800\" height=\"340\" fill=\"#FAF7F5\"/><rect x=\"0.5\" y=\"0.5\" width=\"799\" height=\"339\" fill=\"none\" stroke=\"#EFEAE4\"/><defs><marker id=\"arw\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0,0 L10,5 L0,10 z\" fill=\"#EF4130\"/></marker></defs><rect x=\"30\" y=\"115\" width=\"150\" height=\"110\" rx=\"6\" fill=\"#FFFFFF\" stroke=\"#282829\" stroke-width=\"1.5\"/><text x=\"105\" y=\"145\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"13\" font-weight=\"bold\" fill=\"#282829\">Meridian DC</text><text x=\"105\" y=\"166\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10\" fill=\"#58595B\">Oracle RAC · VMware</text><text x=\"105\" y=\"182\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10\" fill=\"#58595B\">12 physical hosts</text><text x=\"105\" y=\"203\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"9\" fill=\"#58595B\">decommissioned in Phase 3</text><line x1=\"180\" y1=\"170\" x2=\"253\" y2=\"170\" stroke=\"#EF4130\" stroke-width=\"2.5\" marker-end=\"url(#arw)\"/><text x=\"216\" y=\"150\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"9.5\" fill=\"#58595B\">Direct Connect</text><text x=\"216\" y=\"192\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"9.5\" fill=\"#58595B\">10 Gbps</text><rect x=\"258\" y=\"35\" width=\"512\" height=\"270\" rx=\"10\" fill=\"#FFFFFF\" stroke=\"#282829\" stroke-width=\"1.5\"/><text x=\"280\" y=\"62\" font-family=\"Calibri, sans-serif\" font-size=\"11\" font-weight=\"bold\" fill=\"#282829\">AWS</text><rect x=\"280\" y=\"75\" width=\"228\" height=\"205\" rx=\"8\" fill=\"#FFFFFF\" stroke=\"#58595B\"/><text x=\"394\" y=\"99\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10.5\" font-weight=\"bold\" fill=\"#282829\">us-east-1 — Production</text><rect x=\"299\" y=\"114\" width=\"190\" height=\"34\" rx=\"4\" fill=\"#FAF7F5\" stroke=\"#EFEAE4\"/><text x=\"394.0\" y=\"135\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10.5\" fill=\"#282829\">ECS Fargate — app tier</text><rect x=\"299\" y=\"158\" width=\"190\" height=\"34\" rx=\"4\" fill=\"#FAF7F5\" stroke=\"#EFEAE4\"/><text x=\"394.0\" y=\"179\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10.5\" fill=\"#282829\">Aurora PostgreSQL — Multi-AZ</text><rect x=\"299\" y=\"202\" width=\"190\" height=\"34\" rx=\"4\" fill=\"#FAF7F5\" stroke=\"#EFEAE4\"/><text x=\"394.0\" y=\"223\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10.5\" fill=\"#282829\">S3 — object storage</text><text x=\"394\" y=\"264\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"9\" fill=\"#58595B\">GuardDuty · Security Hub · Config</text><rect x=\"528\" y=\"75\" width=\"222\" height=\"205\" rx=\"8\" fill=\"#FFFFFF\" stroke=\"#58595B\"/><text x=\"639\" y=\"99\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10.5\" font-weight=\"bold\" fill=\"#282829\">eu-west-1 — DR</text><rect x=\"544\" y=\"114\" width=\"190\" height=\"34\" rx=\"4\" fill=\"#FAF7F5\" stroke=\"#EFEAE4\"/><text x=\"639.0\" y=\"135\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10.5\" fill=\"#282829\">Aurora Global — replica</text><rect x=\"544\" y=\"158\" width=\"190\" height=\"34\" rx=\"4\" fill=\"#FAF7F5\" stroke=\"#EFEAE4\"/><text x=\"639.0\" y=\"179\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10.5\" fill=\"#282829\">ECS — warm standby</text><rect x=\"544\" y=\"202\" width=\"190\" height=\"34\" rx=\"4\" fill=\"#FAF7F5\" stroke=\"#EFEAE4\"/><text x=\"639.0\" y=\"223\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10.5\" fill=\"#282829\">S3 — cross-region replication</text><text x=\"639\" y=\"264\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"9\" fill=\"#58595B\">RPO < 1 min · RTO < 15 min</text><line x1=\"508\" y1=\"170\" x2=\"528\" y2=\"170\" stroke=\"#EF4130\" stroke-width=\"2\" stroke-dasharray=\"4 3\" marker-end=\"url(#arw)\" marker-start=\"url(#arw)\"/></svg>",
|
|
846
|
-
"width": "100%",
|
|
847
|
-
"caption": "Figure 1: Target cloud architecture — multi-AZ deployment across us-east-1 and eu-west-1"
|
|
848
|
-
}
|
|
849
|
-
},
|
|
850
|
-
{
|
|
851
|
-
"name": "heading",
|
|
852
|
-
"props": {
|
|
853
|
-
"text": "Phase 1: Foundation (Weeks 1-8)",
|
|
854
|
-
"level": 2
|
|
855
|
-
}
|
|
856
|
-
},
|
|
857
|
-
{
|
|
858
|
-
"name": "paragraph",
|
|
859
|
-
"props": {
|
|
860
|
-
"text": "Establish the cloud landing zone with networking (VPC, Transit Gateway, Direct Connect), identity (AWS SSO with Okta integration), security baselines (GuardDuty, SecurityHub, Config Rules), and CI/CD pipelines (GitHub Actions with AWS CodeDeploy). Migrate non-critical workloads including dev/staging environments, internal tools, and documentation systems using lift-and-shift."
|
|
861
|
-
}
|
|
862
|
-
},
|
|
863
|
-
{
|
|
864
|
-
"name": "list",
|
|
865
|
-
"props": {
|
|
866
|
-
"format": "bullet",
|
|
867
|
-
"items": [
|
|
868
|
-
"Landing zone: AWS Control Tower with custom SCPs for financial services compliance",
|
|
869
|
-
"Network: Hub-and-spoke VPC architecture with 10Gbps Direct Connect to Meridian data center",
|
|
870
|
-
"Identity: AWS SSO federated with existing Okta tenant, enforcing MFA on all accounts",
|
|
871
|
-
"CI/CD: GitHub Actions pipelines with automated security scanning (Snyk, tfsec)",
|
|
872
|
-
"First migrations: Developer environments, staging, internal wiki, and monitoring dashboards"
|
|
873
|
-
]
|
|
874
|
-
}
|
|
875
|
-
},
|
|
876
|
-
{
|
|
877
|
-
"name": "heading",
|
|
878
|
-
"props": {
|
|
879
|
-
"text": "Phase 2: Core Migration (Weeks 9-20)",
|
|
880
|
-
"level": 2
|
|
881
|
-
}
|
|
882
|
-
},
|
|
883
|
-
{
|
|
884
|
-
"name": "paragraph",
|
|
885
|
-
"props": {
|
|
886
|
-
"text": "Migrate production databases to Aurora PostgreSQL with zero-downtime cutover using AWS DMS continuous replication. Re-platform application servers to ECS Fargate containers with auto-scaling policies. Implement multi-AZ redundancy across us-east-1 and eu-west-1 for the primary trading platform."
|
|
887
|
-
}
|
|
888
|
-
},
|
|
889
|
-
{
|
|
890
|
-
"name": "table",
|
|
891
|
-
"props": {
|
|
892
|
-
"headerCellDefaults": {
|
|
893
|
-
"font": {
|
|
894
|
-
"bold": true,
|
|
895
|
-
"size": 10
|
|
896
|
-
},
|
|
897
|
-
"padding": {
|
|
898
|
-
"top": 8,
|
|
899
|
-
"right": 10,
|
|
900
|
-
"bottom": 8,
|
|
901
|
-
"left": 10
|
|
902
|
-
}
|
|
903
|
-
},
|
|
904
|
-
"cellDefaults": {
|
|
905
|
-
"padding": {
|
|
906
|
-
"top": 5,
|
|
907
|
-
"right": 10,
|
|
908
|
-
"bottom": 5,
|
|
909
|
-
"left": 10
|
|
910
|
-
},
|
|
911
|
-
"verticalAlignment": "middle",
|
|
912
|
-
"font": {
|
|
913
|
-
"size": 10
|
|
914
|
-
}
|
|
915
|
-
},
|
|
916
|
-
"borderColor": "EFEAE4",
|
|
917
|
-
"borderSize": 1,
|
|
918
|
-
"hideBorders": {
|
|
919
|
-
"insideVertical": true
|
|
920
|
-
},
|
|
921
|
-
"columns": [
|
|
922
|
-
{
|
|
923
|
-
"header": {
|
|
924
|
-
"content": "Workload"
|
|
925
|
-
},
|
|
926
|
-
"cells": [
|
|
927
|
-
{
|
|
928
|
-
"content": "Trading Platform API"
|
|
929
|
-
},
|
|
930
|
-
{
|
|
931
|
-
"content": "Client Portal"
|
|
932
|
-
},
|
|
933
|
-
{
|
|
934
|
-
"content": "Risk Engine"
|
|
935
|
-
},
|
|
936
|
-
{
|
|
937
|
-
"content": "Reporting Service"
|
|
938
|
-
},
|
|
939
|
-
{
|
|
940
|
-
"content": "Notification System"
|
|
941
|
-
}
|
|
942
|
-
]
|
|
943
|
-
},
|
|
944
|
-
{
|
|
945
|
-
"header": {
|
|
946
|
-
"content": "Strategy"
|
|
947
|
-
},
|
|
948
|
-
"cells": [
|
|
949
|
-
{
|
|
950
|
-
"content": "Re-platform to ECS Fargate"
|
|
951
|
-
},
|
|
952
|
-
{
|
|
953
|
-
"content": "Re-platform to ECS Fargate"
|
|
954
|
-
},
|
|
955
|
-
{
|
|
956
|
-
"content": "Re-architect to Lambda + Step Functions"
|
|
957
|
-
},
|
|
958
|
-
{
|
|
959
|
-
"content": "Re-platform to ECS + Aurora"
|
|
960
|
-
},
|
|
961
|
-
{
|
|
962
|
-
"content": "Re-architect to SNS + SQS + Lambda"
|
|
963
|
-
}
|
|
964
|
-
]
|
|
965
|
-
},
|
|
966
|
-
{
|
|
967
|
-
"header": {
|
|
968
|
-
"content": "Downtime Window"
|
|
969
|
-
},
|
|
970
|
-
"cells": [
|
|
971
|
-
{
|
|
972
|
-
"content": "Zero (blue-green)"
|
|
973
|
-
},
|
|
974
|
-
{
|
|
975
|
-
"content": "Zero (blue-green)"
|
|
976
|
-
},
|
|
977
|
-
{
|
|
978
|
-
"content": "4 hours (weekend)"
|
|
979
|
-
},
|
|
980
|
-
{
|
|
981
|
-
"content": "2 hours (weekend)"
|
|
982
|
-
},
|
|
983
|
-
{
|
|
984
|
-
"content": "Zero (parallel run)"
|
|
985
|
-
}
|
|
986
|
-
]
|
|
987
|
-
},
|
|
988
|
-
{
|
|
989
|
-
"header": {
|
|
990
|
-
"content": "Week"
|
|
991
|
-
},
|
|
992
|
-
"cells": [
|
|
993
|
-
{
|
|
994
|
-
"content": "9-12"
|
|
995
|
-
},
|
|
996
|
-
{
|
|
997
|
-
"content": "11-14"
|
|
998
|
-
},
|
|
999
|
-
{
|
|
1000
|
-
"content": "13-16"
|
|
1001
|
-
},
|
|
1002
|
-
{
|
|
1003
|
-
"content": "15-18"
|
|
1004
|
-
},
|
|
1005
|
-
{
|
|
1006
|
-
"content": "17-20"
|
|
1007
|
-
}
|
|
1008
|
-
]
|
|
1009
|
-
}
|
|
1010
|
-
]
|
|
1011
|
-
}
|
|
1012
|
-
},
|
|
1013
|
-
{
|
|
1014
|
-
"name": "heading",
|
|
1015
|
-
"props": {
|
|
1016
|
-
"text": "Phase 3: Optimization (Weeks 21-26)",
|
|
1017
|
-
"level": 2
|
|
1018
|
-
}
|
|
1019
|
-
},
|
|
1020
|
-
{
|
|
1021
|
-
"name": "paragraph",
|
|
1022
|
-
"props": {
|
|
1023
|
-
"text": "Right-size instances based on 4+ weeks of production metrics. Enable reserved capacity purchasing for predictable workloads (estimated 35% savings on compute). Implement cloud-native monitoring with CloudWatch, X-Ray distributed tracing, and automated remediation playbooks. Decommission on-premise equipment and terminate data center lease."
|
|
1024
|
-
}
|
|
1025
|
-
},
|
|
1026
|
-
{
|
|
1027
|
-
"name": "list",
|
|
1028
|
-
"props": {
|
|
1029
|
-
"format": "bullet",
|
|
1030
|
-
"items": [
|
|
1031
|
-
"Right-sizing: Analyze CPU/memory utilization, adjust instance families and sizes",
|
|
1032
|
-
"Reserved capacity: Purchase 1-year reservations for baseline workloads, use Savings Plans for variable",
|
|
1033
|
-
"Monitoring: Unified CloudWatch dashboards, X-Ray tracing, automated incident response via PagerDuty",
|
|
1034
|
-
"Knowledge transfer: 40 hours of hands-on training for Meridian's 3-person ops team",
|
|
1035
|
-
"Decommission: Secure data wipe, equipment disposal, data center lease termination"
|
|
1036
|
-
]
|
|
1037
|
-
}
|
|
1038
|
-
}
|
|
1039
|
-
]
|
|
1040
|
-
},
|
|
1041
|
-
{
|
|
1042
|
-
"name": "section",
|
|
1043
|
-
"props": {
|
|
1044
|
-
"meta": {
|
|
1045
|
-
"title": "Investment & ROI"
|
|
1046
|
-
},
|
|
1047
|
-
"pageBreak": true,
|
|
1048
|
-
"header": "linkToPrevious",
|
|
1049
|
-
"footer": "linkToPrevious"
|
|
1050
|
-
},
|
|
1051
|
-
"children": [
|
|
1052
|
-
{
|
|
1053
|
-
"name": "heading",
|
|
1054
|
-
"props": {
|
|
1055
|
-
"text": "Investment & ROI",
|
|
1056
|
-
"level": 1
|
|
1057
|
-
}
|
|
1058
|
-
},
|
|
1059
|
-
{
|
|
1060
|
-
"name": "columns",
|
|
1061
|
-
"props": {
|
|
1062
|
-
"columns": 3
|
|
1063
|
-
},
|
|
1064
|
-
"children": [
|
|
1065
|
-
{
|
|
1066
|
-
"name": "statistic",
|
|
1067
|
-
"props": {
|
|
1068
|
-
"number": "$680K",
|
|
1069
|
-
"description": "Migration Investment",
|
|
1070
|
-
"trendValue": "One-time cost"
|
|
1071
|
-
}
|
|
1072
|
-
},
|
|
1073
|
-
{
|
|
1074
|
-
"name": "statistic",
|
|
1075
|
-
"props": {
|
|
1076
|
-
"number": "$1.14M/yr",
|
|
1077
|
-
"description": "Annual Savings",
|
|
1078
|
-
"trendValue": "vs. current spend"
|
|
1079
|
-
}
|
|
1080
|
-
},
|
|
1081
|
-
{
|
|
1082
|
-
"name": "statistic",
|
|
1083
|
-
"props": {
|
|
1084
|
-
"number": "7.2 months",
|
|
1085
|
-
"description": "Payback Period",
|
|
1086
|
-
"trendValue": "Full ROI"
|
|
1087
|
-
}
|
|
1088
|
-
}
|
|
1089
|
-
]
|
|
1090
|
-
},
|
|
1091
|
-
{
|
|
1092
|
-
"name": "heading",
|
|
1093
|
-
"props": {
|
|
1094
|
-
"text": "Migration Cost Breakdown",
|
|
1095
|
-
"level": 2
|
|
1096
|
-
}
|
|
1097
|
-
},
|
|
1098
|
-
{
|
|
1099
|
-
"name": "table",
|
|
1100
|
-
"props": {
|
|
1101
|
-
"headerCellDefaults": {
|
|
1102
|
-
"font": {
|
|
1103
|
-
"bold": true,
|
|
1104
|
-
"size": 10
|
|
1105
|
-
},
|
|
1106
|
-
"padding": {
|
|
1107
|
-
"top": 8,
|
|
1108
|
-
"right": 10,
|
|
1109
|
-
"bottom": 8,
|
|
1110
|
-
"left": 10
|
|
1111
|
-
}
|
|
1112
|
-
},
|
|
1113
|
-
"cellDefaults": {
|
|
1114
|
-
"padding": {
|
|
1115
|
-
"top": 5,
|
|
1116
|
-
"right": 10,
|
|
1117
|
-
"bottom": 5,
|
|
1118
|
-
"left": 10
|
|
1119
|
-
},
|
|
1120
|
-
"verticalAlignment": "middle",
|
|
1121
|
-
"font": {
|
|
1122
|
-
"size": 10
|
|
1123
|
-
}
|
|
1124
|
-
},
|
|
1125
|
-
"borderColor": "EFEAE4",
|
|
1126
|
-
"borderSize": 1,
|
|
1127
|
-
"hideBorders": {
|
|
1128
|
-
"insideVertical": true
|
|
1129
|
-
},
|
|
1130
|
-
"columns": [
|
|
1131
|
-
{
|
|
1132
|
-
"header": {
|
|
1133
|
-
"content": "Phase"
|
|
1134
|
-
},
|
|
1135
|
-
"cells": [
|
|
1136
|
-
{
|
|
1137
|
-
"content": "Phase 1: Foundation"
|
|
1138
|
-
},
|
|
1139
|
-
{
|
|
1140
|
-
"content": "Phase 2: Core Migration"
|
|
1141
|
-
},
|
|
1142
|
-
{
|
|
1143
|
-
"content": "Phase 3: Optimization"
|
|
1144
|
-
},
|
|
1145
|
-
{
|
|
1146
|
-
"content": "Contingency (15%)"
|
|
1147
|
-
},
|
|
1148
|
-
{
|
|
1149
|
-
"content": "Total"
|
|
1150
|
-
}
|
|
1151
|
-
]
|
|
1152
|
-
},
|
|
1153
|
-
{
|
|
1154
|
-
"header": {
|
|
1155
|
-
"content": "Duration"
|
|
1156
|
-
},
|
|
1157
|
-
"cells": [
|
|
1158
|
-
{
|
|
1159
|
-
"content": "8 weeks"
|
|
1160
|
-
},
|
|
1161
|
-
{
|
|
1162
|
-
"content": "12 weeks"
|
|
1163
|
-
},
|
|
1164
|
-
{
|
|
1165
|
-
"content": "6 weeks"
|
|
1166
|
-
},
|
|
1167
|
-
{
|
|
1168
|
-
"content": "—"
|
|
1169
|
-
},
|
|
1170
|
-
{
|
|
1171
|
-
"content": "26 weeks"
|
|
1172
|
-
}
|
|
1173
|
-
]
|
|
1174
|
-
},
|
|
1175
|
-
{
|
|
1176
|
-
"header": {
|
|
1177
|
-
"content": "Apex Fees"
|
|
1178
|
-
},
|
|
1179
|
-
"cells": [
|
|
1180
|
-
{
|
|
1181
|
-
"content": "$140K"
|
|
1182
|
-
},
|
|
1183
|
-
{
|
|
1184
|
-
"content": "$280K"
|
|
1185
|
-
},
|
|
1186
|
-
{
|
|
1187
|
-
"content": "$90K"
|
|
1188
|
-
},
|
|
1189
|
-
{
|
|
1190
|
-
"content": "$76.5K"
|
|
1191
|
-
},
|
|
1192
|
-
{
|
|
1193
|
-
"content": "$586.5K"
|
|
1194
|
-
}
|
|
1195
|
-
]
|
|
1196
|
-
},
|
|
1197
|
-
{
|
|
1198
|
-
"header": {
|
|
1199
|
-
"content": "AWS Costs"
|
|
1200
|
-
},
|
|
1201
|
-
"cells": [
|
|
1202
|
-
{
|
|
1203
|
-
"content": "$12K"
|
|
1204
|
-
},
|
|
1205
|
-
{
|
|
1206
|
-
"content": "$38K"
|
|
1207
|
-
},
|
|
1208
|
-
{
|
|
1209
|
-
"content": "$18K"
|
|
1210
|
-
},
|
|
1211
|
-
{
|
|
1212
|
-
"content": "$10.2K"
|
|
1213
|
-
},
|
|
1214
|
-
{
|
|
1215
|
-
"content": "$78.2K"
|
|
1216
|
-
}
|
|
1217
|
-
]
|
|
1218
|
-
},
|
|
1219
|
-
{
|
|
1220
|
-
"header": {
|
|
1221
|
-
"content": "Tooling/Licensing"
|
|
1222
|
-
},
|
|
1223
|
-
"cells": [
|
|
1224
|
-
{
|
|
1225
|
-
"content": "$8K"
|
|
1226
|
-
},
|
|
1227
|
-
{
|
|
1228
|
-
"content": "$4K"
|
|
1229
|
-
},
|
|
1230
|
-
{
|
|
1231
|
-
"content": "$3.5K"
|
|
1232
|
-
},
|
|
1233
|
-
{
|
|
1234
|
-
"content": "—"
|
|
1235
|
-
},
|
|
1236
|
-
{
|
|
1237
|
-
"content": "$15.5K"
|
|
1238
|
-
}
|
|
1239
|
-
]
|
|
1240
|
-
}
|
|
1241
|
-
]
|
|
1242
|
-
}
|
|
1243
|
-
},
|
|
1244
|
-
{
|
|
1245
|
-
"name": "heading",
|
|
1246
|
-
"props": {
|
|
1247
|
-
"text": "Annual Cost Comparison",
|
|
1248
|
-
"level": 2
|
|
1249
|
-
}
|
|
1250
|
-
},
|
|
1251
|
-
{
|
|
1252
|
-
"name": "columns",
|
|
1253
|
-
"props": {
|
|
1254
|
-
"columns": 2,
|
|
1255
|
-
"gap": 0.5
|
|
1256
|
-
},
|
|
1257
|
-
"children": [
|
|
1258
|
-
{
|
|
1259
|
-
"name": "table",
|
|
1260
|
-
"props": {
|
|
1261
|
-
"headerCellDefaults": {
|
|
1262
|
-
"font": {
|
|
1263
|
-
"bold": true,
|
|
1264
|
-
"size": 9
|
|
1265
|
-
},
|
|
1266
|
-
"padding": {
|
|
1267
|
-
"top": 6,
|
|
1268
|
-
"right": 8,
|
|
1269
|
-
"bottom": 6,
|
|
1270
|
-
"left": 8
|
|
1271
|
-
}
|
|
1272
|
-
},
|
|
1273
|
-
"cellDefaults": {
|
|
1274
|
-
"padding": {
|
|
1275
|
-
"top": 4,
|
|
1276
|
-
"right": 8,
|
|
1277
|
-
"bottom": 4,
|
|
1278
|
-
"left": 8
|
|
1279
|
-
},
|
|
1280
|
-
"verticalAlignment": "middle",
|
|
1281
|
-
"font": {
|
|
1282
|
-
"size": 9
|
|
1283
|
-
}
|
|
1284
|
-
},
|
|
1285
|
-
"borderColor": "EFEAE4",
|
|
1286
|
-
"borderSize": 1,
|
|
1287
|
-
"hideBorders": {
|
|
1288
|
-
"insideVertical": true
|
|
1289
|
-
},
|
|
1290
|
-
"columns": [
|
|
1291
|
-
{
|
|
1292
|
-
"header": {
|
|
1293
|
-
"content": "Current (On-Premise)"
|
|
1294
|
-
},
|
|
1295
|
-
"cells": [
|
|
1296
|
-
{
|
|
1297
|
-
"content": "Hardware depreciation"
|
|
1298
|
-
},
|
|
1299
|
-
{
|
|
1300
|
-
"content": "Data center lease"
|
|
1301
|
-
},
|
|
1302
|
-
{
|
|
1303
|
-
"content": "Ops staff (3 FTE)"
|
|
1304
|
-
},
|
|
1305
|
-
{
|
|
1306
|
-
"content": "Oracle licensing"
|
|
1307
|
-
},
|
|
1308
|
-
{
|
|
1309
|
-
"content": "VMware licensing"
|
|
1310
|
-
},
|
|
1311
|
-
{
|
|
1312
|
-
"content": "Network maintenance"
|
|
1313
|
-
},
|
|
1314
|
-
{
|
|
1315
|
-
"content": "DR infrastructure"
|
|
1316
|
-
},
|
|
1317
|
-
{
|
|
1318
|
-
"content": "Total"
|
|
1319
|
-
}
|
|
1320
|
-
]
|
|
1321
|
-
},
|
|
1322
|
-
{
|
|
1323
|
-
"header": {
|
|
1324
|
-
"content": "Annual Cost"
|
|
1325
|
-
},
|
|
1326
|
-
"cells": [
|
|
1327
|
-
{
|
|
1328
|
-
"content": "$525K"
|
|
1329
|
-
},
|
|
1330
|
-
{
|
|
1331
|
-
"content": "$240K"
|
|
1332
|
-
},
|
|
1333
|
-
{
|
|
1334
|
-
"content": "$420K"
|
|
1335
|
-
},
|
|
1336
|
-
{
|
|
1337
|
-
"content": "$210K"
|
|
1338
|
-
},
|
|
1339
|
-
{
|
|
1340
|
-
"content": "$100K"
|
|
1341
|
-
},
|
|
1342
|
-
{
|
|
1343
|
-
"content": "$65K"
|
|
1344
|
-
},
|
|
1345
|
-
{
|
|
1346
|
-
"content": "$85K"
|
|
1347
|
-
},
|
|
1348
|
-
{
|
|
1349
|
-
"content": "$1,645K"
|
|
1350
|
-
}
|
|
1351
|
-
]
|
|
1352
|
-
}
|
|
1353
|
-
]
|
|
1354
|
-
}
|
|
1355
|
-
},
|
|
1356
|
-
{
|
|
1357
|
-
"name": "table",
|
|
1358
|
-
"props": {
|
|
1359
|
-
"headerCellDefaults": {
|
|
1360
|
-
"font": {
|
|
1361
|
-
"bold": true,
|
|
1362
|
-
"size": 9
|
|
1363
|
-
},
|
|
1364
|
-
"padding": {
|
|
1365
|
-
"top": 6,
|
|
1366
|
-
"right": 8,
|
|
1367
|
-
"bottom": 6,
|
|
1368
|
-
"left": 8
|
|
1369
|
-
}
|
|
1370
|
-
},
|
|
1371
|
-
"cellDefaults": {
|
|
1372
|
-
"padding": {
|
|
1373
|
-
"top": 4,
|
|
1374
|
-
"right": 8,
|
|
1375
|
-
"bottom": 4,
|
|
1376
|
-
"left": 8
|
|
1377
|
-
},
|
|
1378
|
-
"verticalAlignment": "middle",
|
|
1379
|
-
"font": {
|
|
1380
|
-
"size": 9
|
|
1381
|
-
}
|
|
1382
|
-
},
|
|
1383
|
-
"borderColor": "EFEAE4",
|
|
1384
|
-
"borderSize": 1,
|
|
1385
|
-
"hideBorders": {
|
|
1386
|
-
"insideVertical": true
|
|
1387
|
-
},
|
|
1388
|
-
"columns": [
|
|
1389
|
-
{
|
|
1390
|
-
"header": {
|
|
1391
|
-
"content": "Proposed (AWS)"
|
|
1392
|
-
},
|
|
1393
|
-
"cells": [
|
|
1394
|
-
{
|
|
1395
|
-
"content": "Compute (ECS Fargate)"
|
|
1396
|
-
},
|
|
1397
|
-
{
|
|
1398
|
-
"content": "Database (Aurora)"
|
|
1399
|
-
},
|
|
1400
|
-
{
|
|
1401
|
-
"content": "Storage (S3 + EBS)"
|
|
1402
|
-
},
|
|
1403
|
-
{
|
|
1404
|
-
"content": "Network (Direct Connect)"
|
|
1405
|
-
},
|
|
1406
|
-
{
|
|
1407
|
-
"content": "Ops staff (1 FTE)"
|
|
1408
|
-
},
|
|
1409
|
-
{
|
|
1410
|
-
"content": "Monitoring (CloudWatch)"
|
|
1411
|
-
},
|
|
1412
|
-
{
|
|
1413
|
-
"content": "Security tooling"
|
|
1414
|
-
},
|
|
1415
|
-
{
|
|
1416
|
-
"content": "Total"
|
|
1417
|
-
}
|
|
1418
|
-
]
|
|
1419
|
-
},
|
|
1420
|
-
{
|
|
1421
|
-
"header": {
|
|
1422
|
-
"content": "Annual Cost"
|
|
1423
|
-
},
|
|
1424
|
-
"cells": [
|
|
1425
|
-
{
|
|
1426
|
-
"content": "$142K"
|
|
1427
|
-
},
|
|
1428
|
-
{
|
|
1429
|
-
"content": "$96K"
|
|
1430
|
-
},
|
|
1431
|
-
{
|
|
1432
|
-
"content": "$28K"
|
|
1433
|
-
},
|
|
1434
|
-
{
|
|
1435
|
-
"content": "$48K"
|
|
1436
|
-
},
|
|
1437
|
-
{
|
|
1438
|
-
"content": "$140K"
|
|
1439
|
-
},
|
|
1440
|
-
{
|
|
1441
|
-
"content": "$18K"
|
|
1442
|
-
},
|
|
1443
|
-
{
|
|
1444
|
-
"content": "$32K"
|
|
1445
|
-
},
|
|
1446
|
-
{
|
|
1447
|
-
"content": "$504K"
|
|
1448
|
-
}
|
|
1449
|
-
]
|
|
1450
|
-
}
|
|
1451
|
-
]
|
|
1452
|
-
}
|
|
1453
|
-
}
|
|
1454
|
-
]
|
|
1455
|
-
},
|
|
1456
|
-
{
|
|
1457
|
-
"name": "paragraph",
|
|
1458
|
-
"props": {
|
|
1459
|
-
"text": "The migration eliminates Oracle and VMware licensing entirely, reduces operations staffing from 3 FTE to 1 FTE through automation, and replaces capital-intensive hardware cycles with predictable cloud spend. The 2 freed operations engineers will be retrained as cloud/DevOps engineers, increasing Meridian's internal cloud capability."
|
|
1460
|
-
}
|
|
1461
|
-
}
|
|
1462
|
-
]
|
|
1463
|
-
},
|
|
1464
|
-
{
|
|
1465
|
-
"name": "section",
|
|
1466
|
-
"props": {
|
|
1467
|
-
"meta": {
|
|
1468
|
-
"title": "Risk Mitigation"
|
|
1469
|
-
},
|
|
1470
|
-
"pageBreak": true,
|
|
1471
|
-
"header": "linkToPrevious",
|
|
1472
|
-
"footer": "linkToPrevious"
|
|
1473
|
-
},
|
|
1474
|
-
"children": [
|
|
1475
|
-
{
|
|
1476
|
-
"name": "heading",
|
|
1477
|
-
"props": {
|
|
1478
|
-
"text": "Risk Mitigation",
|
|
1479
|
-
"level": 1
|
|
1480
|
-
}
|
|
1481
|
-
},
|
|
1482
|
-
{
|
|
1483
|
-
"name": "paragraph",
|
|
1484
|
-
"props": {
|
|
1485
|
-
"text": "Every migration carries inherent risk. Our approach minimizes exposure through proven methodologies, comprehensive testing, and clearly defined rollback procedures at each phase gate."
|
|
1486
|
-
}
|
|
1487
|
-
},
|
|
1488
|
-
{
|
|
1489
|
-
"name": "table",
|
|
1490
|
-
"props": {
|
|
1491
|
-
"headerCellDefaults": {
|
|
1492
|
-
"font": {
|
|
1493
|
-
"bold": true,
|
|
1494
|
-
"size": 10
|
|
1495
|
-
},
|
|
1496
|
-
"padding": {
|
|
1497
|
-
"top": 8,
|
|
1498
|
-
"right": 10,
|
|
1499
|
-
"bottom": 8,
|
|
1500
|
-
"left": 10
|
|
1501
|
-
}
|
|
1502
|
-
},
|
|
1503
|
-
"cellDefaults": {
|
|
1504
|
-
"padding": {
|
|
1505
|
-
"top": 5,
|
|
1506
|
-
"right": 10,
|
|
1507
|
-
"bottom": 5,
|
|
1508
|
-
"left": 10
|
|
1509
|
-
},
|
|
1510
|
-
"verticalAlignment": "middle",
|
|
1511
|
-
"font": {
|
|
1512
|
-
"size": 10
|
|
1513
|
-
}
|
|
1514
|
-
},
|
|
1515
|
-
"borderColor": "EFEAE4",
|
|
1516
|
-
"borderSize": 1,
|
|
1517
|
-
"hideBorders": {
|
|
1518
|
-
"insideVertical": true
|
|
1519
|
-
},
|
|
1520
|
-
"columns": [
|
|
1521
|
-
{
|
|
1522
|
-
"header": {
|
|
1523
|
-
"content": "Risk"
|
|
1524
|
-
},
|
|
1525
|
-
"cells": [
|
|
1526
|
-
{
|
|
1527
|
-
"content": "Data loss during migration"
|
|
1528
|
-
},
|
|
1529
|
-
{
|
|
1530
|
-
"content": "Extended downtime"
|
|
1531
|
-
},
|
|
1532
|
-
{
|
|
1533
|
-
"content": "Performance regression"
|
|
1534
|
-
},
|
|
1535
|
-
{
|
|
1536
|
-
"content": "Security breach during transition"
|
|
1537
|
-
},
|
|
1538
|
-
{
|
|
1539
|
-
"content": "Budget overrun"
|
|
1540
|
-
},
|
|
1541
|
-
{
|
|
1542
|
-
"content": "Team knowledge gap"
|
|
1543
|
-
}
|
|
1544
|
-
]
|
|
1545
|
-
},
|
|
1546
|
-
{
|
|
1547
|
-
"header": {
|
|
1548
|
-
"content": "Probability"
|
|
1549
|
-
},
|
|
1550
|
-
"cells": [
|
|
1551
|
-
{
|
|
1552
|
-
"content": "Low"
|
|
1553
|
-
},
|
|
1554
|
-
{
|
|
1555
|
-
"content": "Low"
|
|
1556
|
-
},
|
|
1557
|
-
{
|
|
1558
|
-
"content": "Medium"
|
|
1559
|
-
},
|
|
1560
|
-
{
|
|
1561
|
-
"content": "Low"
|
|
1562
|
-
},
|
|
1563
|
-
{
|
|
1564
|
-
"content": "Medium"
|
|
1565
|
-
},
|
|
1566
|
-
{
|
|
1567
|
-
"content": "High"
|
|
1568
|
-
}
|
|
1569
|
-
]
|
|
1570
|
-
},
|
|
1571
|
-
{
|
|
1572
|
-
"header": {
|
|
1573
|
-
"content": "Impact"
|
|
1574
|
-
},
|
|
1575
|
-
"cells": [
|
|
1576
|
-
{
|
|
1577
|
-
"content": "Critical"
|
|
1578
|
-
},
|
|
1579
|
-
{
|
|
1580
|
-
"content": "High"
|
|
1581
|
-
},
|
|
1582
|
-
{
|
|
1583
|
-
"content": "Medium"
|
|
1584
|
-
},
|
|
1585
|
-
{
|
|
1586
|
-
"content": "Critical"
|
|
1587
|
-
},
|
|
1588
|
-
{
|
|
1589
|
-
"content": "Medium"
|
|
1590
|
-
},
|
|
1591
|
-
{
|
|
1592
|
-
"content": "Medium"
|
|
1593
|
-
}
|
|
1594
|
-
]
|
|
1595
|
-
},
|
|
1596
|
-
{
|
|
1597
|
-
"header": {
|
|
1598
|
-
"content": "Mitigation"
|
|
1599
|
-
},
|
|
1600
|
-
"cells": [
|
|
1601
|
-
{
|
|
1602
|
-
"content": "Continuous DMS replication with automated validation checksums; dual-write for 2 weeks pre-cutover"
|
|
1603
|
-
},
|
|
1604
|
-
{
|
|
1605
|
-
"content": "Blue-green deployments; instant DNS failback to on-premise; weekend windows for non-zero-downtime workloads"
|
|
1606
|
-
},
|
|
1607
|
-
{
|
|
1608
|
-
"content": "Load testing at 2x production volumes before cutover; 1-week parallel-run period"
|
|
1609
|
-
},
|
|
1610
|
-
{
|
|
1611
|
-
"content": "Dedicated security engineer on migration team; WAF deployed Day 1; penetration testing at each phase gate"
|
|
1612
|
-
},
|
|
1613
|
-
{
|
|
1614
|
-
"content": "15% contingency buffer; fixed-price phases with clear scope boundaries; weekly budget reviews"
|
|
1615
|
-
},
|
|
1616
|
-
{
|
|
1617
|
-
"content": "40-hour training program; runbook documentation; 90-day post-migration support included"
|
|
1618
|
-
}
|
|
1619
|
-
]
|
|
1620
|
-
}
|
|
1621
|
-
]
|
|
1622
|
-
}
|
|
1623
|
-
}
|
|
1624
|
-
]
|
|
1625
|
-
},
|
|
1626
|
-
{
|
|
1627
|
-
"name": "section",
|
|
1628
|
-
"props": {
|
|
1629
|
-
"meta": {
|
|
1630
|
-
"title": "Next Steps"
|
|
1631
|
-
},
|
|
1632
|
-
"pageBreak": true,
|
|
1633
|
-
"header": "linkToPrevious",
|
|
1634
|
-
"footer": "linkToPrevious"
|
|
1635
|
-
},
|
|
1636
|
-
"children": [
|
|
1637
|
-
{
|
|
1638
|
-
"name": "heading",
|
|
1639
|
-
"props": {
|
|
1640
|
-
"text": "Next Steps",
|
|
1641
|
-
"level": 1
|
|
1642
|
-
}
|
|
1643
|
-
},
|
|
1644
|
-
{
|
|
1645
|
-
"name": "paragraph",
|
|
1646
|
-
"props": {
|
|
1647
|
-
"text": "We recommend initiating a 2-week discovery sprint in May 2026 to validate assumptions, complete infrastructure dependency mapping, and finalize the migration runbook. This sprint is included in the Phase 1 budget and serves as the formal project kickoff."
|
|
1648
|
-
}
|
|
1649
|
-
},
|
|
1650
|
-
{
|
|
1651
|
-
"name": "list",
|
|
1652
|
-
"props": {
|
|
1653
|
-
"format": "decimal",
|
|
1654
|
-
"items": [
|
|
1655
|
-
"Sign statement of work and mutual NDA (target: April 14, 2026)",
|
|
1656
|
-
"Complete infrastructure audit and full dependency mapping (Weeks 1-2 of Phase 1)",
|
|
1657
|
-
"Finalize migration runbook with rollback procedures and success criteria (Week 2)",
|
|
1658
|
-
"Establish joint project team — Apex lead architect + 2 engineers, Meridian ops lead + security officer",
|
|
1659
|
-
"Set up communication cadence — weekly stakeholder updates, daily standups during active migration",
|
|
1660
|
-
"Begin Phase 1 execution (target: May 5, 2026)"
|
|
1661
|
-
]
|
|
1662
|
-
}
|
|
1663
|
-
},
|
|
1664
|
-
{
|
|
1665
|
-
"name": "paragraph",
|
|
1666
|
-
"props": {
|
|
1667
|
-
"text": ""
|
|
1668
|
-
}
|
|
1669
|
-
},
|
|
1670
|
-
{
|
|
1671
|
-
"name": "columns",
|
|
1672
|
-
"props": {
|
|
1673
|
-
"columns": 2,
|
|
1674
|
-
"gap": 0.5
|
|
1675
|
-
},
|
|
1676
|
-
"children": [
|
|
1677
|
-
{
|
|
1678
|
-
"name": "statistic",
|
|
1679
|
-
"props": {
|
|
1680
|
-
"number": "May 5",
|
|
1681
|
-
"description": "Proposed Start Date",
|
|
1682
|
-
"trendValue": "Phase 1 kickoff"
|
|
1683
|
-
}
|
|
1684
|
-
},
|
|
1685
|
-
{
|
|
1686
|
-
"name": "statistic",
|
|
1687
|
-
"props": {
|
|
1688
|
-
"number": "Oct 31",
|
|
1689
|
-
"description": "Projected Completion",
|
|
1690
|
-
"trendValue": "All 3 phases"
|
|
1691
|
-
}
|
|
1692
|
-
}
|
|
1693
|
-
]
|
|
1694
|
-
},
|
|
1695
|
-
{
|
|
1696
|
-
"name": "paragraph",
|
|
1697
|
-
"props": {
|
|
1698
|
-
"text": ""
|
|
1699
|
-
}
|
|
1700
|
-
},
|
|
1701
|
-
{
|
|
1702
|
-
"name": "paragraph",
|
|
1703
|
-
"props": {
|
|
1704
|
-
"text": "For questions or to schedule the discovery sprint, contact:",
|
|
1705
|
-
"font": {
|
|
1706
|
-
"bold": true
|
|
1707
|
-
}
|
|
1708
|
-
}
|
|
1709
|
-
},
|
|
1710
|
-
{
|
|
1711
|
-
"name": "paragraph",
|
|
1712
|
-
"props": {
|
|
1713
|
-
"text": "Elena Vasquez, Principal Cloud Architect\nsolutions@apexconsulting.io | +1 (415) 555-0142",
|
|
1714
|
-
"alignment": "left",
|
|
1715
|
-
"font": {
|
|
1716
|
-
"color": "textSecondary"
|
|
1717
|
-
}
|
|
1718
|
-
}
|
|
1719
|
-
}
|
|
1720
|
-
]
|
|
1721
|
-
}
|
|
1722
|
-
]
|
|
1723
|
-
}
|