#devops
Ich benutze nun seit mehreren Jahren intensiv die Hetzner Cloud Plattform. In meinem Job als DevOps Engineer[^1] für ein Insurtech Startup habe ich dort mehrere Produktiv- und Entwicklungsumgebungen betrieben. Außerhalb der Arbeit nutze ich die Plattform für Hobby Projekte wie z.B. das Betreiben von TOR Relays, meiner eigenen GitLab Instanz oder freeBSD Playgrounds.[^2]
Ich bin ein großer Fan von Hetzner. Es ist meines Erachtens nach die perfekte Plattform, wenn man mit DIY-Spirit und einem kleinen Budget tolle Projekte umsetzen will. Trotzdem bin ich immer wieder an Grenzen gestoßen, die mir viel Kopfzerbrechen bereitet haben. Die folgenden Punkte hätten meine Arbeit damals wesentlich leichter gemacht.
## Object Storage
~~Object Storage würde das Angebot von Hetzner gut abrunden. Wir haben versucht mit minIO einen eigenen S3 Storage zu betreiben, der dafür benötigte Mehraufwand hat hier jedoch keinen wirtschaftlichen Betrieb zugelassen. Am Ende habe wir uns dafür entschieden, den S3 Service von AWS zu nutzen.~~
__Update:__ Seit dem 05.12.2024 bietet Hetzner einen eigenen S3 kompatiblen Object Storage an.[^3]
## Snapshots für Volumes
Ich hätte gerne die Möglichkeit gehabt einfach Snapshots von Volumes zu erstellen. Wir haben hierfür Umwege genutzt[^4], jedoch war dies für uns immer mit einem (kleinen) manuellen Aufwand verbunden.
## Einheitliche DNS API
Ich hätte mir gewünscht, dass die DNS API in der Cloud API aufgeht oder die Möglichkeit gegeben wird, DNS über die Cloud API zu konfigurieren. Es ist momentan nicht möglich mit dem offiziellen HCLOUD Terraform Provider Domains/DNS Einträge zu managen.
Die einzige Möglichkeit die Hetzner DNS API mit Terraform (oder Ansible) zu nutzen sind von der Community gewartete Provider. Wir haben damals auf [Terraform Provider Hetznerdns](https://github.com/timohirt/terraform-provider-hetznerdns)[^5]zurückgegriffen. Einen inoffiziellen Provider als zentralen Bestandteil unseres Infrastructure-as-Code Stacks zu nutzen war suboptional.
Zusätzlich finde ich es verwirrend, dass man im Hetzner DNS Modul sowie im Robot Domains registrieren kann. Ich gehe davon aus, dass dies historisch gewachsen ist.
## Multifaktor Authentisierung mit Hardware-Token
Hetzner's Unterstützung für FIDO2-Token ist Mangelhaft. Es werden nur Yubikeys unterstützt, jedoch wird auch hier auf OTP zurückgegriffen.
## Routing von Root Servern zu Cloud-Instanzen
Das Routing von Root Servern zu Cloud-Instanzen und umgekehrt hat uns viele Probleme bereitet. vSwitches funktionieren, jedoch hatten wir teilweise mit unerklärlichen Ausfällen zu kämpfen. Die Konfiguration dieser "Frankenstein" Netzwerke hat sich als sehr umständlich erwiesen. Wir haben viel Zeit fürs Debuggen verschwendet.
Auf mich wirkt die vSwitch wie ein Produkt was "aus der Not heraus" geboren wurde. Ich kann die Verwendung nicht empfehlen und würde stattdessen jedem Raten in der reinen "Cloud" Umgebung von Hetzner zu bleiben.
## Managed Kubernetes
Auch wenn es gegen den DIY-Spirit von Hetzner spricht: wir hätten gerne ein managed Kubernetes eingekauft.
Die Community und einige Beratungsunternehmen haben diese Lücke gefüllt.
Mittlerweile gibt es eine Vielzahl von Projekten, welche Kubernetes in der Hetzner Cloud ermöglichen:
- [Kube-Hetzner](https://github.com/kube-hetzner/terraform-hcloud-kube-hetzner)
- [CAPH](https://github.com/syself/cluster-api-provider-hetzner)
- [Terraform - Hcloud - Talos](https://github.com/hcloud-talos/terraform-hcloud-talos)
- [Gardener Extension for Hetzner Cloud provider](https://github.com/23technologies/gardener-extension-provider-hcloud)
Einige dieser Projekte unterstützt Hetzner offiziell durch das Bereitstellen von Infrastruktur. Ich denke der Kundenwunsch nach einer offiziellen Lösung ist da.
[^1]: Siehe [[Postmortem meiner drei Jahre bei tech11]]
[^2]: Hetzner unterstützt offiziell nicht mehr freeBSD, jedoch lässt es sich mit etwas manuellen Aufwand installieren: [Install FreeBSD 14.1 on Hetzner server](https://gist.github.com/ctsrc/9a72bc9a0229496aab5e4d3745af0bb9)
[^3]: [Alternative zu Amazon S3: Hetzner bietet Objektspeicher an](https://www.heise.de/news/Alternative-zu-Amazon-S3-Hetzner-bietet-Objektspeicher-an-10189014.html)
[^4]: Ein simpler Snapshot eines Volumes lässt sich durch das einhängen eines zweiten Volumes + rsync recht leicht einrichten
[^5]: Der Terraform Provider ist mittlerweile deprecated.