Infrastructure as Code Concepts
External
Internal
Overview
Infrastructure is not something you build and forget, in requires constant change: fixing, updating and improving. Infrastructure as Code is a set of technology and engineering practices aimed at delivering change more frequently (or, some would say continuously), quickly and reliably, while improving the overall quality of the system at the same time. Trading speed for quality is a false dichotomy. Used correctly, Infrastructure as Code embeds speed, quality, reliability and compliance into the process of making changes. Changing infrastructure becomes safer.
Core Practices
Define Everything as Code
Code can be versioned and compared, it can benefit from lessons learned in software design patterns, principles and techniques such as test driven development, continuous integration, continuous delivery or refactoring.
Continuously Test and Deliver
Continuously testing small pieces encourages a modular, loosely coupled design.
Build Small, Simple, Loosely Coupled Pieces that Can Be Changed Independently
Microservices fall into this category.
Stack
Collection of infrastructure resources provisioned from cloud platforms.