Static content explosion
Let's imagine that we are managing a cluster of hundreds of web servers spanning across multiple data centers. Since we have the server_name
parameter hardcoded in to the config
file, we will have to create one file per server. This also means that we will manage hundreds of static files, which will quickly get out of control. Our infrastructure is dynamic, and managing change is one of the most common aspects of a DevOps engineer's routine tasks. If tomorrow, our company policy states that we should run web servers on the port 8080 instead of the port 80, only in a production environment, imagine the headache you'd get having to change all these files individually. Wouldn't it be better to have a single file that takes dynamic inputs, which are specific to the host it's running on? This is exactly what templates are for and, as depicted in the following diagram, a single template could replace a multitude of static files:
Before we define...