Operational documentation package for open source and 24/7
Which policies, runbooks and diagrams are needed for open source platforms so the operational documentation package makes 24/7 support predictable.

What problem operational documentation solves for 24/7 support
24/7 support often breaks not because people are weak or monitoring is bad, but because knowledge lives in the heads of one or two engineers. By day you can ask in chat; at night you are left guessing: what counts as an outage, where to look and who to wake.
In practice, “not depending on one engineer” means a simple thing: any on-call, even a new one, can repeat the correct steps and get the same result. If the key person is on vacation, asleep or unavailable, the service should not become a lottery.
A good operational documentation package answers questions you don't have time for during a real incident:
- what the service is and why it matters to the business (and what can be temporarily turned off)
- which symptoms are incidents and which are warnings
- where to check health, logs and metrics
- what actions the on-call may perform and which require the system owner
- who and when to escalate to, and what to write in the first message
Documents reduce recovery time because they remove unnecessary branching. Instead of “let's restart everything,” there is a clear route: check specific signals, take safe steps, quickly decide whether this is a local problem or a broader outage.
Example: at 02:30 the API fails and alerts flash, customers complain. Without instructions the on-call wastes time finding the owner, then making guesses, and may make things worse. With clear diagrams, contacts and a runbook, in 5–10 minutes you can check dependent components, see that disk space ran out, perform a pre-approved action and immediately report status and ETA using a template.
Package contents: what should be in the folder
For 24/7 support to be predictable, the docs folder must answer three questions: who is responsible, what to do right now, and where to quickly see the service picture. The package doesn't have to be large, but it must be clear at 03:00.
A minimal set usually includes:
- Operational regulations: roles, on-call schedules, SLA, escalation matrix, communication rules.
- Runbooks: step-by-step actions for common incidents and checks (with commands, checkpoints and rollback criteria).
- Diagrams and maps: service architecture, dependencies, data flows, monitoring points.
- Contacts and access: who is on call, how to get into consoles, where keys live, what to do if access is blocked (without storing secrets in the text).
- Service registry: environments, versions, critical components, maintenance windows, list of integrations.
It's important to separate operations from development. Operations include actions that can and should be done by rules: restart, switchovers, recovery, temporary workarounds, data collection for diagnosis. Development covers everything that requires code changes, DB schema changes, API logic changes or long investigations without a clear outcome. Fix this separation in the documents: what support can do, and what must be escalated.
Required documents are those without which on-call becomes guesswork: regulations, runbooks, diagrams, contacts and responsibilities (RACI or a simple table). Add everything else as maturity grows.
When the base is working, teams usually add postmortem and report templates, a catalog of typical changes, a risk table, a resilience test plan and short quick-reference notes for new on-call engineers.
If responsibilities are clear, support won't get stuck between teams. For example: “support restores the service to working order; development fixes the root cause and ships the fix in the next release.”
Regulations: roles, on-call, SLA and escalations
24/7 support becomes predictable not because of monitoring, but because of clear regulations. They answer four questions: who is responsible for what, who is on call now, what is urgent, and who to wake if we can't resolve it.
Roles and responsibilities
Usually 4–5 roles are enough, but boundaries matter. The service owner sets priorities and accepts risks. The on-call engineer accepts the incident and runs it until stabilization. The platform administrator (or SRE) is responsible for changes, accesses, backups and routine operations. A security specialist joins when there is suspected data leakage, compromise or policy violation. For infrastructure it's useful to have a vendor/integrator contact for hardware failures.
To work at night, the regulations must state which decisions the on-call can make independently (for example, rollback, switch to the backup) and which require the service owner's approval.
On-call schedules and handover
Publish the on-call schedule in advance and duplicate it in a calendar. In handover rules add a short handover note: what happened in the last 24 hours, current risks, ongoing works and frequently firing alerts. A good norm is 10 minutes for handover and one shared channel where "on-call accepted/handed over" is recorded.
SLA, priorities and escalation matrix
Write SLA in plain language: response time, recovery time, availability window. Tie SLA to priorities:
- P1 - service down or critical users affected
- P2 - degradation
- P3 - partial problem
- P4 - request/consultation
Keep an escalation matrix nearby: who to call for P1 after 15 minutes without progress, who to involve for suspected security incidents, who decides about mass notifications.
Fix communication channels and update rhythm in advance: for example, status every 15–30 minutes for P1, using the template "what happened, what we're doing, next update time." This reduces chaos and helps everyone act in sync, including external partners and service providers.
Runbook: how to write instructions that work at night
A runbook is needed for when a sleepy person sees the service for the first time and is afraid to make things worse. A good runbook doesn't try to describe everything. It helps you quickly make a safe decision: restore, rollback or escalate. Runbooks are usually the most used part of the operational package.
One template for all procedures reduces risk: the on-call doesn't hunt for where important info is hidden. It's convenient when every runbook starts the same way and fits on 1–2 screens.
A minimal structure to repeat:
- Purpose and symptom: what counts as the problem and how to notice it
- Primary checks: what to verify in 5 minutes
- Step-by-step actions: one step at a time, with expected result
- Stop criteria and escalation: when to stop and escalate
- Rollback and safe actions: what to do when unsure
Start steps with the things that fail most often and are easiest to check: service availability, free disk space, certificate expiry, queue status, recent changes. If there are commands and parameters, keep them next to the runbook and in a single version so instructions don't go out of date after an update. Note where to run the command (host, container, dashboard) and what a normal output looks like.
For night incidents include a short "first 10 minutes" block: check if one service or many are affected; compare monitoring with recent deploys; look at errors from the last 15 minutes; assess data loss risk; decide whether to fix, rollback or escalate.
Always state stop conditions: no access, unknown cause, data risk, irreversible action. In these cases the runbook should say clearly: record observations, collect minimal logs, stop and raise the next line.
If uncertainty is high, predefine safe actions: set the system to read-only mode, throttle traffic, temporarily disable the failing component. For critical systems (e.g., healthcare or government) such steps often matter more than trying to "fix everything at once."
Diagrams and maps: what to draw to speed up diagnosis
At night the on-call doesn't have time to remember the service layout. Good diagrams turn "looks like everything is broken" into a clear check path. In the operational package they act as quick cues: where to look, what not to touch, and who to involve.
A good rule: one diagram answers one question and fits on a single page. If it doesn't fit, it's a manual.
Most value comes from this minimum:
- architecture map: main components and their roles, without extra detail
- dependency map: what is critical, what can fail without downtime, which external systems can take the service down
- network diagram: segments, entry points, DNS, load balancers, key ports and where they lead
- data flows: a short trace of a request from client to storage and back, with typical latency points
- access and secrets map: who can access what (accounts, groups), where keys and tokens are stored, what to do for urgent access
Example: at 03:20 502 errors spike. The flow map shows requests go through a load balancer to the API, then to an external authorization service. The dependency map indicates that if authorization fails the API returns 502. The on-call checks the integration status instead of restarting everything.
Diagrams must match reality. The easiest way to keep them current is to update them together with changes (release, migration, DNS update). Otherwise after a month they will do more harm than good.
Monitoring and incidents: documents around observability
Monitoring alone won't save you if people interpret alerts differently and don't know next steps. Add a few pages on observability to the operational package so the on-call acts by rules, not guesses.
Start with a list of metrics and thresholds in plain language. Not "CPU 90%," but "if CPU stays above 90% for 10+ minutes the service will slow; check the task queue and number of workers." Indicate alert priority (P1–P3), expected response time and who to wake.
Separately describe where to read logs and how to quickly reduce noise: source (agent, syslog, app), typical filters by correlation ID, user, pod/host, plus a couple of examples of "normal" errors that are not incidents. If the platform runs on racks or in a datacenter, add the entry point for hardware events (BMC, RAID, disks) — this speeds diagnostics for rack-level servers like the GSE S200 Series.
Predefine the difference between an "incident" and a "request." Incident — degradation or outage, data loss risk, SLA breach. Request — change, planned configuration, access or consultation. This reduces disputed escalations and avoids inflating incident stats.
Add a short postmortem template, mandatory for P1–P2:
- what happened and how it was detected
- timeline of actions and decisions
- root cause and contributing factors
- immediate fixes and follow-up tasks
- deadlines and owners
Also add a rule for updating knowledge after an incident. Closed incident = updated runbook, alert thresholds, dashboards and FAQ so the next on-call doesn't repeat the same steps.
Step-by-step plan: how to build the package in 2–4 weeks
If the package is gathered "on the side," it won't work at 03:00. Run it as a small project: assign an owner, set deadlines and a clear outcome.
Immediately appoint one owner responsible for the package integrity; the team helps fill it in. Pick a single template for all documents (same fields, same section names) so in stress you don't search different formats.
A plan that usually fits 2–4 weeks even for several services:
- Week 1: assign owner, approve folder structure and templates (regulations, runbook, diagrams, contacts). Decide where the single source of truth will live.
- Week 1–2: document critical services and dependencies: which parts fail first and what they depend on (DB, network, storage, external APIs, certs, DNS).
- Week 2: collect operational items: contacts, escalation matrix, on-call rules, maintenance windows, list of accesses and who issues them. Note break-glass access for emergencies.
- Week 2–3: write 10–15 key runbooks for common failures (service down, error spike, out of disk, expired certificate, DB degradation). Each runbook should start with symptom checks and end with recovery criteria.
- Week 3–4: run a drill: one person plays on-call, another plays the incident. Measure time to find diagrams, contacts and first actions, then improve documents immediately.
Drill example: disk space runs out. A good runbook doesn't speculate — it guides steps: where to check metrics, how to confirm cause, what can be safely cleared, and when to escalate. In projects with 24/7 distributed across shifts, the package must work the same for any engineer.
Common mistakes that still break 24/7
The most common situation: a docs folder exists but is remembered last at night. Usually this means materials are hard to find, written for the checkbox, or out of date.
People don't open documents when they don't help make a decision in 2–3 minutes. If the first screen doesn't answer "what happened," "what to do first" and "when to call seniors," the on-call goes to chat, not the runbook.
Runbooks often miss success criteria and timing expectations. "Restart the service" without saying what should change in metrics or logs becomes guesswork. Worse is when no one says how long to wait for an effect before the next step.
Diagrams lose trust fastest because they silently age. Simple test: let a new engineer find the load balancer and the log destination from the diagram. If they ask many questions, the diagram is already broken.
A separate pain is binding procedures to one person and their access. If only one engineer knows where keys live, how to reach the hypervisor or who can approve changes, 24/7 becomes a string of phone calls.
Short-start before details works well. The minimum that must be visible immediately:
- the first 3 actions to stabilize
- a control point: which metric or symptom should improve
- a wait timer: how many minutes to wait before the next step
- escalation conditions: who to call and on what signal
- things absolutely forbidden during an incident
One more mistake — too much text. At night half a page of clear steps beats ten pages of explanation, even for a complex open source platform.
Quick checks: a short readiness checklist for support
If 24/7 depends on a couple of people's memory, it will break at the worst moment. These checks show whether your operational documentation package is ready for night incidents and shift handovers.
Check five things (preferably without prep, right now):
- An owner is assigned to the documentation (by role, not by name) and there is an update rhythm: every sprint or monthly, plus ad hoc after major changes.
- One-page on-call guide exists: where to look in monitoring, how to assess severity, the first 3 actions and when to wake second line.
- The escalation matrix is alive: who owns app, DB, network, security; what channels to use; and what to do if someone doesn't respond within 15 minutes.
- Dependency diagrams are current: external services, queues, DB, DNS, certs, single points of failure and what normal looks like.
- Recovery and rollback procedures are step-by-step: how to revert to a previous version, restore config, verify the service is actually up and what rollback risks are.
To make this real, run a short test. Take someone who hasn't worked with the system (or an on-call who returned from leave) and ask them to run a scenario: "500 error", "out of disk", "integration failures." If they find checks and know who to call within 10–15 minutes, the base exists.
Mini-score in 10 minutes:
- 0–1 items: support depends on people; you need minimal docs.
- 2–3 items: on-call is possible but you will have extra downtime and night calls.
- 4–5 items: support is predictable and risks are manageable.
Real example: a night incident and following the runbook
02:13. After a planned update the service stops responding: external checks timeout and users message support. One on-call is on shift until morning. The team's goal is simple: reaction must be predictable and not rely on a specific person.
First action — determine priority. The on-call opens the incident runbook: is it degradation or full outage, how many users are affected, is there a workaround. By the priority matrix it's P1 (full outage of a critical service), so the notification chain starts and start time is recorded.
Next — gather context without guessing. The ticket immediately contains: time of the update, changed components list, recent alerts, release version, who ran the change, current metrics (5xx errors, latency, CPU/RAM). This saves 15–20 minutes of back-and-forth.
The on-call opens pages that help narrow the problem quickly:
- "Availability checks" (what counts as "alive" and which checks are mandatory)
- "Rollback procedure" (conditions, commands, success criteria, risk limits)
- "Post-deploy problems" (typical symptoms: migrations, configs, certs)
- "Dependency checks" (DB, queue, DNS, load balancer)
The dependency diagram solves half the problem. It shows API depends on the DB and an authorization service. Metrics show the DB responds but the auth service had a spike of 401s and then stopped accepting connections. The deployment diagram shows the component is on a separate node (or a server like S200 in a rack). Logs reveal a deployed config with an incorrect endpoint URL.
Runbook decision: apply a documented hotfix — restore the previous config and restart components in the correct order. The service recovers and the incident status is set to "resolved."
After stabilization a short postmortem is prepared without blame and the operational package is updated. Typical changes: record the cause (which parameter changed and why), add a "detector" alert that should have fired earlier, improve the runbook (a precise check that removes ambiguity) and correct the diagram if the real dependency differed from the drawing.
Thus a night shift turns from chaos into a repeatable process: one person can reliably restore service and the team receives clear material in the morning to improve.
Next steps: keep the package alive and scale 24/7
Most often 24/7 slips back into heroics for one reason: the documentation package was built and then forgotten. Docs must live with the service, otherwise they fail you at the worst time.
To keep docs current, use a short update cycle. It's useful when each file has an owner and a clear next review date, and any production change forces diagram and runbook updates.
A minimal rhythm that usually works:
- monthly review of critical runbooks and escalation matrix
- quarterly drills (tabletop or simulated incidents in a test environment)
- change control: a task isn't closed until diagrams and instructions are updated
- incident reviews with explicit documentation changes
- one template for new services so 24/7 scales consistently
Training new engineers is easier when based on documents, not on oral handovers. Give a newcomer a two-week path: "read — rehearse in test — shadow on-call." If the runbook is written well, it will hold when the engineer sees the system for the first time and only has access and instructions.
Measure results with numbers, not feelings: response and recovery times, share of incidents resolved without L3, number of night escalations and their causes, repeat incidents of the same type.
If there are many services, distributed teams and strict reporting requirements, a single operations standard helps: common regulations, runbook templates, on-call and observability practices. In such projects GSE.kz (gse.kz) can act as a vendor-neutral systems integrator: build 24/7 processes, tidy operational documentation and support infrastructure at an operational level.
FAQ
Why do we need operational documentation for 24/7 support if we have monitoring?
Documentation makes incident response repeatable. Even a new on-call engineer will understand what counts as an outage, where to look for symptoms, and which safe actions can be taken without risking a worse outcome.
What is the minimum set of documents so 24/7 doesn't depend on a single engineer?
Keep the minimal set that helps during the first minutes: regulations (roles, SLA, escalations), a few key runbooks, up-to-date dependency diagrams, and clear contacts with access procedures. Add other materials as the documentation is actually used during shifts.
How to decide which runbooks to write first?
Start with what is critical for the business and what fails most often: public entry points, databases, queues, external authorization, disks, and certificates. Prioritize by the rule: if an on-call engineer loses more than 10 minutes without an instruction, a runbook is needed.
What should a runbook look like to work at 03:00?
A good runbook is short and predictable: symptom, quick checks, steps with expected results, success criteria and clear stop conditions. If after reading it someone cannot tell in 2–3 minutes "what to do first" and "when to call seniors", simplify it.
Can passwords, tokens and keys be stored in operational documentation?
Do not store secrets in the document text. Instead, record where and how to get access, who issues permissions, what to do if access is blocked, and how emergency (break-glass) access is audited afterward.
How to describe escalation properly so there is no chaos at night?
Separate priorities and set triggers: when to call second line, the service owner, security or infrastructure, and how long to wait. In the first escalation message include facts: symptoms, start time, what was already checked and the current status.
How to prevent dependency diagrams from becoming outdated quickly?
Update diagrams together with production changes: releases, migrations, DNS changes, service moves or access rule updates. If a diagram becomes outdated it becomes harmful, so assign an owner and review it regularly — at least monthly for critical services.
Where to draw the line between support and development?
Separate operations from development by risk and reversibility. Actions like restart, failover, collecting logs and approved rollback procedures can be done by support. Code changes, DB schema changes and long investigations without a clear plan should be escalated.
How to quickly train a new engineer to be on-call without relying on oral handover?
Build training around documents: the newcomer reads core pages, repeats scenarios in a test environment, then takes shifts under supervision. If too many oral explanations are needed, the documents lack a short "first 10 minutes" checklist and clear action criteria.
Why is a postmortem needed and how does it improve the documentation package?
A postmortem prevents repeating the same incident: it records the timeline, root cause, what worked and what didn't, and what changes will be made to alerts, dashboards and runbooks. The main result is concrete edits to documentation and deadlines — not blame.