Conclusion
Infrastructure as code is about enabling the reconstruction of the business from nothing but a source code repository, an application data backup, and bare metal resources. To get there, you follow a two-step process:
Break the infrastructure down into reusable, network-accessible services.
Each service should have some combination of the 10 core principles of well-built infrastructure services:
It should be modular.
It should be cooperative.
It should be composable.
It should be flexible.
It should be extensible.
It should be repeatable.
It should be declarative.
It should be abstract.
It should be idempotent.
It should be convergent.
Integrate those services together.
Build policies for how each service should function individually, and then start building policies about how they interact with each other to solve larger and larger chunks of your infrastructure. Follow the pattern of policy creation, execution, auditing, and testing set out in traditional configuration management:
Document what the problem is, and what the final result of any solution should be. (Setting the policy)
Write the code to do what you laid out in the policy. (Executing the policy)
Confirm that the final results are correct. (Auditing the policy)
Repeat the process so that you are certain you can reliably do it again someday. (Testing the policy)
By following this process, you will create a powerful, flexible infrastructure that can be managed entirely as code.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access