For dedicated servers:
- deploy from source repo? Terraform?
* local build server, which rsyncs to application servers (e.g. files), or through docker registry
* scripts to start/stop/restart services
* centralised database on which services run on which servers, which serves as base where specific applications run
- keep software up to date? ex: Postgres, OS
ansible for automated installs (through hetzner API)
ansible scripts to execute commands on servers (e.g. update software, or adapt firewall when new hosts are being added)
- do load balancing? built-in load balancer?
* proxy to route requests to multiple backend servers (e.g nginx)
* flexi ip (needs to manually mapped to new server in case of failure over API, so you need to check yourself that the IP is reachable)
- handle scaling? Terraform?
* more servers
- automate backups? ex: databases, storage. Do you use provided backups and snapshots?
* Seperate hdfs cluster, which allows production nodes to write once and read data, but not delete/overwrite any data.
* For less data, you could also use their backup servers.
* The "backups and snapshots" feature you mention is only available for vservers, not for dedicated servers.
- maintain security? built-in firewall and DDoS protection?
* Hetzner router Firewall
* Software firewall (managed through ansible)
* Don't use their VLAN feature, as there seems to be often some problems with connectivity (see their forum).
* Never had DDos issues
- monitoring of failures:
* internal tool to monitor hardware and software issues (e.g. wrongly deployed software, etc...).