With dynamically defined infrastructure, scaling and migration are yesterday's issues
Infrastructur as Code (IaC) is an IT infrastructure definition with a machine / program-understandable language, e.g. yaml or json. It is the basis for the automatic construction of the complete infrastructure through appropriate programs.
The demands on IT operations are changing. Instead of security and BCCM (business continuity), costs and time play a much greater role.
Agile software development requires more computing resources and faster deployments. At the same time, infrastructure must be operated cost-effectively.
Cloud is often proposed as a solution, but lack of transparency and lack of know-how often turns it into a security risk and a cost trap.
The idea behind IaC is to fully describe a desired infrastructure state. This state description or the infrastructure code is managed in a source code management tool (SCM).
IaC likes to take on other elements of software development:
These methods provide the ability to quickly respond to resource requests through simple code changes. Resources can be removed just as quickly, ensuring an optimal cost environment. The reuse of existing and tested code or infrastructure elements improves security. Another advantage is the elimination of IT documentation, because SCM logs all changes to the infrastructure (IT audits), etc.
However, the use of IaC has many challenges: