3 ms·
I keep things cloud agnostic by using exclusively: - Terraform - Ansible - Systemd (sometimes Docker) This way the only thing that changes between providers
by tkiolp4 5y ago
I keep things cloud agnostic by using exclusively:
- Terraform
- Ansible
- Systemd (sometimes Docker)
This way the only thing that changes between providers (e.g., moving my whole infra from digital ocean to linode) are the terraform files.
Do I need a load balancer? That’s nginx on a droplet (terraform apply + ansible-playbook). A database? That’s mysql on a droplet (same commands to deploy and provisioning)
- linkdd 5y ago> Do I need a load balancer? That’s nginx on a droplet Multiple droplets and a keepalived/haproxy on each one if you don't want a Single Point Of Failure in your infra, being the load balancer. > A database? That’s mysql on a droplet And another one for backups, making sure your first droplet has 2 network interfaces, one used by your application, the other one used by your backup procedure so that it does not create too much latency. Also, potentially multiple droplets if you want your database to be highly available so that you avoid yet another SPOF in your infra. What you propose is fine for small needs, but it does not scale well unfortunately. I'd still recommend to keep things simple and avoid premature optimization though. In my case, my production infrastructure runs on a k8s provided by DigitalOcean with one of their load balancer (provided by a k8s Service of type LoadBalancer). I have a droplet running a single-node k8s provided by k0s[0] for testing purposes. I have a terraform to create the cluster and configure the DNS, then I developed klifter[1] (based on ansible) and klander[2] to provision my cluster via Github Actions. [0] - https://k0sproject.io/ [1] - https://klifter.datapio.co [2] - https://klander.datapio.co