Chapter 27 — Deployment and validation
Lesson map
Lesson 27 published. Map, example, EX079.
flowchart TD
N0["Learning outcomes"]
N1["27.1 Rollout plan"]
N2["27.2 Validation tests"]
N3["27.3 Recording results"]
N4["27.4 Projects that cannot comply"]
N5["27.5 Rollback"]
N6["27.6 Communicating"]
N7["Validation as a habit"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Worked example"]
EX --> Q["Exercise EX079"]
Logical drawing
flowchart LR
N0["Learning outcomes"]
N1["27.1 Rollout plan"]
N2["27.2 Validation tests"]
N3["27.3 Recording results"]
N4["27.4 Projects that cannot comply"]
N5["27.5 Rollback"]
N6["27.6 Communicating"]
N7["Validation as a habit"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX079"]
[Learning outcomes]
|
v
[27.1 Rollout plan]
|
v
[27.2 Validation tests]
|
v
[27.3 Recording results]
|
v
[27.4 Projects that cannot comply]
|
v
[27.5 Rollback]
|
v
[27.6 Communicating]
|
v
[Validation as a habit]
|
v
[Worked example] --> [Exercise EX079]
Learning outcomes
You will (1) deploy the security controls to all client projects; (2) validate each works; (3) record results; (4) handle projects that cannot yet comply.
27.1 Rollout plan
Controls are rolled out project by project, starting with the most sensitive clients identified in chapter 11. Each project gets the shared upload module, the pipeline template, lock-file enforcement and digest recording. Starting with Greenleaf and museum-tickets, whose data is most sensitive, means the highest-risk sites gain the controls first if the rollout is interrupted. Each project receives the same four controls, so the validation checklist can be identical across projects. The two legacy projects come last because they need separate handling.
27.2 Validation tests
For each project, Diego runs a validation checklist with synthetic data: a disallowed upload is rejected with its reason; the pipeline uses pinned actions and a read-only token; a lock-file mismatch fails the build; the deployment record holds a digest; the drift check reports the project as matching. Each item on the checklist tests exactly one of the rolled-out controls. If any item fails, the project is not marked complete until the fix is deployed and the whole checklist is run again. Using the same synthetic files for every project means a result in one project can be compared directly with another, and a failure points to the project rather than the test data.
27.3 Recording results
Results are recorded per project with date and tester, forming evidence for clients and for Brightwave's own review. Recording the tester and date makes each validation result traceable to a person. When a client asks whether their site has the new upload checks, Brightwave answers from the record rather than from memory. The results also feed the capstone presentation, where Diego shows validation records for all 23 projects as evidence that the controls exist. Records also show when each project was last validated, so later changes can trigger a fresh run.
27.4 Projects that cannot comply
Two legacy projects cannot use the new upload module without a rewrite. They get compensating steps (tighter size limits and storage rules) and a rebuild date. The compensating steps reduce exposure until the rebuild without pretending the projects comply. A tighter size limit and stricter storage rules cover the most important gaps, and the rebuild date is tracked in the monthly report. These are the same two legacy projects that held most of the remaining stale libraries and the slowest fixes.
27.5 Rollback
Each rollout can be reversed by redeploying the previous approved digest if a client site breaks. Because every deployment records its digest, the previous version is known exactly and can be redeployed through the pipeline in minutes. Rollback does not bypass the approved-image rule, since the earlier digest is already on the approved list. The one rollback during the rollout used this path, and the corrected change was redeployed the next day. Owners are told how to roll back before each project's rollout begins.
27.6 Communicating
Clients receive a short note on what changed and any visible effects, such as new upload messages. Telling clients in advance prevents surprise when an upload is now rejected with a message. Greenleaf's note mentions the new upload messages and the 5 MB limit, so reception staff can explain them to pet owners. The note is short and avoids technical detail, following the same style as the January message. Clients with no visible change still receive a brief note confirming what was updated.
Validation as a habit
The validation checklist becomes part of the release process for new projects, so each new client starts with every control in place and recorded. The checklist takes about twenty minutes per project with the synthetic test files ready.
Worked example
Rollout across 23 projects takes five weeks. Twenty-one pass every validation item on the first attempt or after small fixes, including one that first needs a rollback when an upload change rejects a file format the client really uses; the format is added to its allowed list after review and redeployed the next day. The two legacy projects are validated against their compensating steps instead.
Synthetic case. Projects and results are synthetic.
Errors and limits
Validation proves the control is present; monitoring proves it stays present.
Exercises
- EX079 — Rollout order. Which projects went first? Rubric: 3 = most sensitive clients; 2 = partial; 1 = vague; 0 = none.
- EX080 — Legacy projects. How were the two legacy projects handled? Rubric: 3 = compensating steps and rebuild date; 2 = partial; 1 = vague; 0 = none.
- EX081 — Rollback case. Why was one project rolled back? Rubric: 3 = rejected a format the client used; 2 = partial; 1 = vague; 0 = none.
Synthesis
Roll out in order, validate each project and plan for exceptions.
Continue studying — chapter 27 of 30
← Chapter 26 (draft) · Course chapter index · Chapter 28 (draft) →