Configuration Management
Configuration Management is a critical concept included in IaC and Idempotence. It's not always possible to set up servers, networks, load balancers, etc right out of the box. Having a tool to 'configure' and 'manage' the servers and applications is extremely important. Instead of allowing someone to manually login to a server and change the configuration for Tomcat (heap upsize, java path, etc), a configuration management solution should be utilized to track those changes. This ensures the state of the application/server is always consistent and Idempotence is satisfied.
If the server gets wiped out, and the manual configuration is lost, valuable time might be wasted trying to remember the last state of the configuration. While containers and container orchestration are able to manage these issues, not all applications are able to run in a containerized fashion.