Many Roads
Sector
Editorial photograph for DevOps

DevOps

Operating dozens of sites across regions and stacks is competent engineering work, and the teams running them are competent. What's been hardest to do well is the work that grows in proportion to site count: bringing an on-call engineer up to speed when an alert fires, keeping the response playbooks current as the system changes, and seeing the patterns across incidents that hint at the next one.

Engagement
Multi-site operations for a large multinational NGO

We've built and operated the platform behind a large multinational NGO's digital presence in 100+ countries for years. One foundation, 100+ independent branch sites; we run the on-call, the releases, and the upgrade path. AI is part of how we operate at this scale: alerts arrive with the context already assembled, every code change gets a risk score before it ships, and the on-call playbooks stay current as the system changes. We start with one alert type, one risk score, or one playbook on real on-call shifts, then expand once it has earned trust. We won't ever let AI take action on its own; the engineer keeps the call, AI just compresses the time to it.

What it looks like
An APM dashboard for the GlobalAid platform showing the Production environment, v2.45.1, US East. Top-line metrics across the strip: Apdex 0.92, p95 response time 1.48s (up 320%), throughput 28.7k rpm, error rate 2.35%, availability 99.96%. The web transactions chart shows a spike from 7am to 9am with a callout 'Incident resolved 9:32 AM, Database connection pool optimized'. The right rail shows two alerts (critical high response time, warning high error rate), recent deployments with 'Database config update' by DevOps Bot at 9:28 AM, and three error log lines about a connection pool exhausted on the donations endpoint.
What we can build here

Capabilities

The operational foundation AI sits on

AI on operations only works when the platform underneath produces the data AI needs and stays predictable under the conditions AI runs in. We engineer that foundation first: one shared codebase across hundreds of sites, a structured record of every release and incident, monitoring data AI can actually read. The engineering economies are real (one upgrade cycle for 100+ sites); the data foundation is what everything else here builds on.

Alerts that arrive with context

When an alert fires at 3am, the on-call engineer's first job is gathering context: recent releases, related logs, similar past incidents, what else might be affected. AI does that gathering ahead of time and presents the alert with the context already attached. The engineer makes the call; they just don't start from zero.

Risk scoring before changes ship

Each code change gets a risk score based on what it touches, how often those parts of the system have caused issues before, and how well the change is tested. Risky changes get extra review attention; routine changes ship faster. The score arrives with the reasoning attached, so engineers can accept it, override it, or refine it. Overrides feed back into how the model scores next time.

Response playbooks that stay current

Playbooks drift the moment the system changes, and systems change every week. AI reads the incident history and the system layout together, generating playbook updates as the system changes. When reality drifts from the playbook, you find out before the next incident, not during it.

Ask questions of the operational data from your own AI client

Authorized engineers can connect their AI client to the platform through a Model Context Protocol (MCP) endpoint, scoped by role and audited. Logs, releases, incident history, and playbooks become available to query in plain language from the AI client they already use, instead of jumping across half a dozen dashboards. The data stays inside the partner's perimeter; the conversation comes to it.

Outcome
75% faster triage
Time to start work on a typical alert drops from 8 minutes to 2 when AI assembles the context (recent releases, related logs, similar past incidents) before the engineer is paged. The on-call shift starts with the alert already framed, leaving room to dig into causes that used to get deferred until the next incident.
Questions

FAQ

What if the AI suggests the wrong response step?
AI proposes; humans approve. We never let AI carry out a step on its own without a human in the loop. The job is to compress the time to action, not replace the action.
How does the AI know what's normal for our system?
It learns from your operational data over the first weeks: release patterns, what alerts typically look like, incident history, the on-call team's own response patterns. We baseline what 'normal' looks like for your platform specifically rather than applying off-the-shelf alerting rules. The flags get sharper as the baseline accumulates.
Can the AI explain why it scored a code change as risky?
Yes. Every risk score arrives with the reasoning attached: which parts of the system were touched, how often those parts have caused issues before, how well the change is tested, similar past changes. Engineers can accept the score, override it, or refine it; overrides feed back into how the model scores next time.
How quickly will we see when the AI starts drifting?
Every AI output is logged with its reasoning and what the engineer did with it. We watch how often engineers override the AI: if that rate climbs, we tune before it becomes noise. The drift shows up in the data, not in the next outage.
Does this work with our existing monitoring tools (Datadog, Grafana, PagerDuty)?
Yes. The AI reads from wherever your operational data already lives. We integrate with the existing tools rather than replacing them.
Also relevant in