Kief Morris,ThoughtWorks首席云技术专家,已经从事设计、构建和运行自动化IT服务器基础设施相关工作接近20年。作为一名ThoughtWorks咨询师,他和客户一起工作,使用来自Lean、Continuous Delivery和DevOps的理念,帮助客户规划、设计并实现流程及系统,以交付和托管软件。
Preface
Part Ⅰ. Foundations
1. Challenges and Principles
Why Infrastructure as Code?
What Is Infrastructure as Code?
Goals of Infrastructure as Code
Challenges with Dynamic Infrastructure
Server Sprawl
Configuration Drift
Snowflake Servers
Fragile Infrastructure
Automation Fear
Erosion
Principles of Infrastructure as Code
Systems Can Be Easily Reproduced
Systems Are Disposable
Systems Are Consistent
Processes Are Repeatable
Design Is Always Changing
Practices
Use Definition Files
Self-Documented Systems and Processes
Version All the Things
Continuously Test Systems and Processes
Small Changes Rather Than Batches
Keep Services Available Continuously
Antifragility: Beyond "Robust"
The Secret Ingredient of Antifragile IT Systems
Conclusion
What's Next?
2. Dynamic Infrastructure Platforms
What Is a Dynamic Infrastructure Platform?
Requirements for a Dynamic Infrastructure Platform
Programmable
On-Demand
Self-Service
Infrastructure Resources Provided by the Platform
Compute Resources
Storage Resources
Network Resources
Types of Dynamic Infrastructure Platforms
Public IaaS Cloud
Community IaaS Cloud
Private IaaS Cloud
Antipattern: Hand-Cranked Cloud
Hybrid and Mixed Cloud Options
Bare-Metal Clouds
Deciding on a Dynamic Infrastructure Platform
Public or Private?
Cloud Portability
Mechanical Sympathy with the Cloud and Virtualization
Conclusion
3. Infrastructure Definition Tools
Choosing Tools for Infrastructure as Code
Requirement: Scriptable Interface
Requirement: Unattended Mode for Command-Line Tools
Requirement: Support for Unattended Execution
Requirement: Externalized Configuration
Configuration Definition Files
Reusability with Configuration Definitions
Working with Infrastructure Definition Tools
Provisioning Infrastructure with Procedural Scripts
Defining Infrastructure Declaratively
Using Infrastructure Definition Tools
Configuring Servers
……
Part Ⅱ.Patterns
Part Ⅲ.Practices