Dentropy Cloud Design Document
Problem Analysis
Application Portability
Just use linux containers, sorry BSD.
Storage
Linux containers have many options for storage. Docker supports on host storage while kubernetes requires network storage.
Backup + Restore
One should be able to backup entire applications to a single file. With the Dentropy Cloud CLI they should be able to point it at the TAR ball, be asked questions about where to run, store, and route the application and have it work.
Right now there are two solutions for this, one for kubernetes and one for docker.
The docker solution involves stopping the container running the application then mounting anouther container with the volumes of the stopped continaer with an additional volume where the backup is stored in transit. This container then tar balls the entire volume. This backup method words with any type of docker volume. This process can be done in reverse, even on a different volume type or location, to get the data back.
For kubernetes just use velero. Having scripts that automate setting up object storage and optionally tar ball the object storage are features worth adding.
DNS + Dynamic IP
- Public DNS Reccomendations
- FreeDNS
- Cloudflare
- Cloudflare
- Private DNS Reccomendations
- AdGuard — World's most advanced adblocker!
- Pi-hole – Network-wide protection
TLS Certificate Management
- For Docker there are two options
- Nginx Proxy Manager is the easiest to use though it does not have an API to automate DNS configuration
- Traefik with Let's Encrypt allows for stateless DNS configuration within each container itself using labels.
- For Kubernetes use cert-manager
Security
TODO
Scalability
Wrote a version that uses Kubernetes
Multiple Hosts
Wrote a version that uses Kubernetes
Redundancy / Availability
Wrote a version that uses Kubernetes