---
title: Lessons Learned from Building a Database Operator
weight: 10
tags:
 - platform
 - db
---

Another talk as part of the Data On Kubernetes Day.

## Baseline

### Hosting Models

* Managed: Atlas
* Semi: Cloud manager
* Selfhosted: Enterprise and community operator

### Mongo on K8s

* Cluster Architecture
  * Control Plane: Operator
  * Data Plane: MongoDB Server + Agen (Sidecar Proxy)
* Enterprise Operator
  * Opsmanager CR: Deploys 3-node operator DB and OpsManager
  * MongoDB CR: The MongoDB cLusters (Compromised of agents)
* Advanced Usecase: Data Platform with mongodb on demand
  * Control Plane on one cluster (or on VMs/Hardmetal), data plane in tennant clusters
  * Result: MongoDB CR can not relate to OpsManager CR directly

## Pitfalls

* Storage: Agnostic, Topology aware, configureable and resizeable (can't be done with statefulset)
* Networking: Cluster-internal (Pod to Pod/Service), External (Split horizon over multicluster)