Do this after a certain productive scale has been reached or problems have been noticed
[ ] Infra will do this proactively with you
Must-Have Requirements
Delete sections depending on target maturity stage
Subsequent stages also require the previous stages
If you're smart, try to prepare the deployment units rather early than late
"Minimal Requirements for any Deployment"
[ ] "Home Repo" for the Product Package
[ ] Readme: What is this package? Why do we need this package?
[ ] Deployment Guide for Infra:
[ ] Table of Deployment Units (Name, Description, Pinned Version!)
[ ] Table of Vault Secrets if used / required (Name, Description, Example content / format)
[ ] Table of Keycloak Clients (Name, Description, Explicit configuration)
[ ] Port / Path mapping, Auth Proxies, Reverse Proxy, TLS Termination, etc.
[ ] Configuration of all Deployment Units as needed for the infra deployment
[ ] Communication: Given to infra in a pinned state, e.g. via Commit Hash
"Alpha"
[ ] "Home Repo" for the Product Package
[ ] Local Development Guide (if developed component)
[ ] Deployment Guide: For infra / support: How to enable debug logging?
[ ] CHANGELOG
[ ] SemVer
[ ] Deployment Migration Notes
[ ] Compatible Versions
[ ] Release Guide
[ ] Release on GitHub: Pinned documentation, versions, artifacts
[ ] Infra: Terraform Modules
[ ] Communication: Release-pinned Deployment Guide + Deployment Migration Notes given to infra
"Validation"
[ ] Telemetry and Observability
[ ] OTEL configuration
[ ] Health checks (live, ready, health) are documented
Maturity Stages
When deploying a new product package, the target product package maturity is important.
Target stages of maturity:
Brownfield Deployment":Reviews
Reviews are independant of the maturity stages, but need to be done at some point. Plan accordingly!
Must-Have Requirements
"Minimal Requirements for any Deployment"
"Alpha"
"Validation"
"Scale"
data-testid
attributes for our code