In the past you would stand up and hand-configure all of the hardware that would run your software. This is a way to define the hardware configuration in software and apply it automatically. Advantages of this approach include increased scalability, reproducibility, and being able to use version control.