← Documentation home

Canonical Markdown source · Oct 20, 2018

Wikibase Cloud -> Self-Host Migration Checklist

wikibase-cloud-migration-checklist.md · 107 lines · SHA-256 170657fcbf2b

Status: Active operational playbook (Cloud now, self-host later).

Purpose: keep hosting costs low now with Wikibase Cloud while preserving a clean migration path to Docker/custom Wikibase when scale, control, or compliance needs increase.

Current state (pre-filled, non-secret)

  • Deployment mode: Wikibase Cloud (cost-first starter mode)
  • Cloud owner username: `Sundog358`
  • Primary project owner: `@rsung`
  • Canonical internal IDs: `https://lod.metamuseum.org/{type}/{ulid}`
  • Service account for automation: _pending setup_
  • MFA status on owner account: _verify and record_
  • Last credential rotation date: _record in runbook/release notes_
  • Self-host target mode (future): _TBD_ (`Docker Compose` or `Kubernetes`)

1) Cloud-first baseline (do now)

  • [ ] Confirm owner account has MFA enabled.
  • [ ] Rotate temporary bootstrap password after first login.
  • [ ] Create a dedicated service/bot account for automation; do not automate with personal account credentials.
  • [ ] Store secrets only in environment variables/secret manager; never in committed files.
  • [ ] Record current Wikibase Cloud tenant URL, org owner, and backup owner in runbook.

2) Portability guardrails (must stay true at all times)

  • [ ] Keep Meta Museum canonical IDs stable: `https://lod.metamuseum.org/{type}/{ulid}`.
  • [ ] Treat Wikibase Q/P identifiers as mapped externals, not canonical internal IDs.
  • [ ] Preserve bidirectional mapping table: internal ID <-> Wikibase entity ID.
  • [ ] Require source citation + rights metadata on publishable claims.
  • [ ] Keep write operations audit-logged (who, what, when, before/after references).

3) Data model and schema discipline

  • [ ] Freeze a documented minimum property set for first publishing scope (object/work/agent/place/set + rights + citations).
  • [ ] Track schema changes with migration notes (new property, deprecation, mapping updates).
  • [ ] Define statement-reference requirements for publishable facts.
  • [ ] Maintain round/fixture-linked tests for publish payload shape and reference completeness.

4) Backup and export routine (Cloud phase)

  • [ ] Schedule recurring full exports (items/properties/statements/references).
  • [ ] Keep at least two independent backup locations (primary + secondary).
  • [ ] Record restore drill owner and cadence (for example, monthly).
  • [ ] Run a restore drill at least once before any self-host cutover decision.

5) Trigger criteria for self-host activation

Move from Cloud to self-host when one or more are true:

  • [ ] Cost threshold exceeded for 2 consecutive cycles.
  • [ ] Required extension/feature unavailable in Cloud.
  • [ ] Compliance, data residency, or network control requirement cannot be satisfied in Cloud.
  • [ ] Performance/SLO needs require infra-level tuning not available in Cloud.

6) Target self-host design decision

  • [ ] Choose platform: Docker Compose (starter) or Kubernetes (production scale).
  • [ ] Pick database and storage sizing profile with 12-month growth buffer.
  • [ ] Define auth/SSO strategy and service-account policy.
  • [ ] Define observability baseline (metrics, logs, alerts, backup-monitoring).
  • [ ] Define DR objectives (RPO/RTO) and test schedule.

7) Dry-run migration (no public cutover yet)

  • [ ] Export from Wikibase Cloud snapshot N.
  • [ ] Import into self-host staging.
  • [ ] Run parity checks:
  • [ ] entity counts (items/properties/statements/references)
  • [ ] random sample semantic equivalence checks
  • [ ] external-ID mapping integrity
  • [ ] citation/reference completeness
  • [ ] Run application integration tests against staging endpoint.
  • [ ] Fix mapping or schema drift before production cutover planning.

8) Production cutover checklist

  • [ ] Announce maintenance window and rollback window.
  • [ ] Freeze writes on Cloud publication path.
  • [ ] Take final export snapshot N+1 and checksum it.
  • [ ] Import N+1 into self-host production.
  • [ ] Reconcile counts and integrity checks.
  • [ ] Switch application publish target via configuration flag.
  • [ ] Run post-cutover smoke tests (read, write, references, rights, citation surfaces).
  • [ ] Unfreeze writes after verification sign-off.

9) Rollback plan (must be prepared before cutover)

  • [ ] Keep Cloud environment available during rollback window.
  • [ ] Keep publish-target toggle reversible without code changes.
  • [ ] Document exact rollback operator and decision authority.
  • [ ] Rehearse rollback once in staging.

10) Post-cutover stabilization

  • [ ] Monitor error rates, latency, and queue backlog for 7-14 days.
  • [ ] Re-run parity audit after first full sync cycle.
  • [ ] Capture lessons learned and update this checklist.
  • [ ] Decide Cloud decommission timeline only after stabilization is complete.

Ownership and review cadence

  • Owner: `@rsung` (or assigned platform owner)
  • Review cadence: monthly during Cloud phase; weekly during migration window
  • Last review date: _fill when first adopted_