Files
zeekay abf99d05fc papers: reorganize into per-paper dirs, add Antje Worring as co-author
Restructured from flat .tex/.pdf files into per-paper subdirectories.
Added Antje Worring as co-author on all papers.
Synced PDFs to pdfs/ for download site.
2026-04-18 21:50:07 -07:00

58 lines
2.2 KiB
TeX

\section{Operational Considerations}
\label{sec:ops}
%% ============================================================
\subsection{Monitoring}
The replicator exposes Prometheus metrics on \texttt{:9091/metrics}:
\begin{itemize}[nosep]
\item \texttt{replicate\_wal\_bytes\_total} --- total WAL bytes shipped.
\item \texttt{replicate\_wal\_segments\_total} --- total WAL segments
uploaded.
\item \texttt{replicate\_snapshot\_bytes\_total} --- total snapshot
bytes uploaded.
\item \texttt{replicate\_last\_sync\_seconds} --- time since last
successful sync.
\item \texttt{replicate\_restore\_duration\_seconds} --- histogram
of restore times.
\item \texttt{replicate\_encryption\_errors\_total} --- age
encryption failures.
\end{itemize}
An alert fires if \texttt{replicate\_last\_sync\_seconds} exceeds
$3\times$ the configured sync interval.
\subsection{Disaster Recovery}
\begin{enumerate}[nosep]
\item \textbf{Pod restart}: Init container restores from S3.
Automatic. No data loss.
\item \textbf{Node failure}: Pod rescheduled to new node. Init
container restores from S3. No data loss.
\item \textbf{S3 bucket loss}: Restore from S3 cross-region
replication (configured separately). RPO = cross-region
replication lag (typically < 15\,min).
\item \textbf{Master key loss}: Unrecoverable without KMS backup.
KMS itself uses Shamir secret sharing for its unseal key.
\item \textbf{Corrupted WAL}: Replicator detects checksum mismatch,
falls back to last valid snapshot, alerts operator.
\end{enumerate}
\subsection{Cost Model}
S3 storage cost for a typical ATS deployment (500 orgs, avg 50\,MB
per org DB, hourly snapshots, 1\,s WAL sync):
\begin{itemize}[nosep]
\item Snapshot storage: $500 \times 50\,\text{MB} \times 24 = 600\,\text{GB/day}$
(with 24h retention). At \$0.023/GB: \$13.80/day.
\item WAL storage: approximately $10\times$ DB size per day with
30-day retention. At \$0.023/GB: \$2.88/day.
\item Total: approximately \$500/month for 500 orgs with full
durability. Lifecycle policies garbage-collect snapshots older
than 30 days.
\end{itemize}
%% ============================================================