In Dridi's post, you learned about Varnish's technical choices regarding backends, and why a VMOD was necessary. If you didn't read the article (shame on you), here's the recap:
- Varnish resolves domain names and IP when compiling the VCL, so the resolved address is set in stone.
- And there must be exactly one resolved address, if the domain name is not found, or is served by multiple IPs, the VCL won't load.
- You can work around this with a cron'd script, periodically generating a VCL with the correct and updated addresses.
- However, this forces you to garbage-collect the old VCL; you'll have to take extra care of the probes and you'll reset the backend stats everytime you reload since backends are tied to the VCL.
- So we built a VMOD.
And that VMOD is named "named", another proof that engineers shouldn't be allowed to name things.