About the Authors |
|
xiii | |
About the Technical Reviewer |
|
xv | |
Acknowledgments |
|
xvii | |
Introduction |
|
xix | |
|
|
1 | (96) |
|
Chapter 1 Introduction to Infrastructure as Code |
|
|
3 | (16) |
|
|
4 | (1) |
|
The Evolution from DevOps to Infrastructure as Code |
|
|
5 | (1) |
|
What Is Infrastructure as Code? |
|
|
6 | (2) |
|
|
7 | (1) |
|
Benefits Adapting Infrastructure as Code |
|
|
8 | (2) |
|
Improved Time to Production |
|
|
9 | (1) |
|
Reduction in Drifting Configurations |
|
|
9 | (1) |
|
Faster and Efficient Development Life Cycle |
|
|
9 | (1) |
|
Maximizing the Scope of Provisioning |
|
|
10 | (1) |
|
Lowered Costs and Increase in ROI |
|
|
10 | (1) |
|
Adapting Tools of Infrastructure as Code |
|
|
10 | (3) |
|
Factors Deciding Adaption of Infrastructure as Code |
|
|
11 | (1) |
|
Approaches for Infrastructure as Code |
|
|
12 | (1) |
|
Best Practices of Infrastructure as Code |
|
|
13 | (4) |
|
|
17 | (2) |
|
Chapter 2 Patterns and Principles of Infrastructure as Code |
|
|
19 | (30) |
|
The Emergence of Infrastructure as Code |
|
|
20 | (1) |
|
The Focus with Infrastructure as Code |
|
|
20 | (1) |
|
The Challenges with Infrastructure as Code |
|
|
21 | (4) |
|
|
22 | (1) |
|
|
22 | (1) |
|
|
23 | (1) |
|
Fragility of Infrastructure |
|
|
23 | (1) |
|
|
24 | (1) |
|
Erosion of Infrastructure |
|
|
24 | (1) |
|
Considerations for Quality Infrastructure |
|
|
25 | (2) |
|
|
26 | (1) |
|
|
26 | (1) |
|
|
27 | (1) |
|
The Principles of Infrastructure as Code |
|
|
27 | (8) |
|
|
28 | (1) |
|
|
28 | (1) |
|
Easily Reproducible Systems |
|
|
29 | (1) |
|
Easily Disposable Systems |
|
|
30 | (1) |
|
Easily Repeatable Processes |
|
|
31 | (1) |
|
|
32 | (1) |
|
|
33 | (1) |
|
Self-Reliant Documentation |
|
|
34 | (1) |
|
The Patterns of Infrastructure as Code |
|
|
35 | (8) |
|
|
36 | (1) |
|
|
36 | (1) |
|
Securing Your Infrastructure |
|
|
37 | (5) |
|
Testing the Infrastructure |
|
|
42 | (1) |
|
Concerns with Infrastructure as Code |
|
|
43 | (2) |
|
Infrastructure as Code at Scale |
|
|
45 | (3) |
|
Evolving Business Requirements |
|
|
45 | (1) |
|
Evolving Security Requirements |
|
|
46 | (1) |
|
Evolving Provider Requirements |
|
|
47 | (1) |
|
|
48 | (1) |
|
Chapter 3 Management of Infrastructure as Code |
|
|
49 | (14) |
|
The Emergence of Infrastructure Teams |
|
|
50 | (1) |
|
Preparing Infrastructure as Code |
|
|
50 | (4) |
|
Evaluation of Infrastructure |
|
|
51 | (1) |
|
Choosing the Right Security Mechanisms |
|
|
52 | (1) |
|
|
52 | (1) |
|
|
53 | (1) |
|
|
53 | (1) |
|
|
54 | (1) |
|
Blue-Green Deployment Strategy |
|
|
54 | (7) |
|
|
56 | (1) |
|
|
57 | (1) |
|
|
57 | (2) |
|
|
59 | (1) |
|
Environment Replicability |
|
|
60 | (1) |
|
|
61 | (1) |
|
|
61 | (1) |
|
|
62 | (1) |
|
Chapter 4 Production Complexity Management |
|
|
63 | (20) |
|
Modern Application Infrastructures |
|
|
64 | (1) |
|
Managing Deployments Without Downtime |
|
|
64 | (2) |
|
Canary Deployment Strategy |
|
|
66 | (5) |
|
|
67 | (1) |
|
|
68 | (1) |
|
|
69 | (1) |
|
Environment Replicability |
|
|
70 | (1) |
|
Rolling Release Deployment Strategy |
|
|
71 | (2) |
|
|
73 | (1) |
|
Steps for Managing Production Complexity |
|
|
73 | (6) |
|
|
74 | (1) |
|
Fail-Safe Environment Management |
|
|
74 | (1) |
|
Monitoring Your Infrastructure |
|
|
75 | (1) |
|
Compartmentalizing Releases |
|
|
75 | (1) |
|
Adapting Serverless Architecture |
|
|
76 | (1) |
|
|
76 | (2) |
|
The Impact of Deployment Strategies |
|
|
78 | (1) |
|
Caveats While Managing Complex Production Environments |
|
|
79 | (1) |
|
|
80 | (3) |
|
Chapter 5 Business Solutions with Infrastructure as Code |
|
|
83 | (14) |
|
Managing Modern Infrastructures |
|
|
84 | (1) |
|
Enabling Business Possibilities |
|
|
85 | (2) |
|
Enabling Domain Sustainability |
|
|
87 | (3) |
|
Supporting Evolving Strategies |
|
|
90 | (2) |
|
Decision-Making for Businesses |
|
|
92 | (4) |
|
|
96 | (1) |
|
Part 2 Hands-on Experience |
|
|
97 | (80) |
|
Chapter 6 Hands-on Infrastructure as Code with Hashicorp Terraform |
|
|
99 | (36) |
|
Introduction to Terraform |
|
|
100 | (1) |
|
|
101 | (1) |
|
|
102 | (3) |
|
|
103 | (1) |
|
|
104 | (1) |
|
|
105 | (2) |
|
|
105 | (1) |
|
|
106 | (1) |
|
Implementing Terraform in Real Projects |
|
|
107 | (19) |
|
Priority Order for Terraform Variables |
|
|
109 | (1) |
|
Declaring Output Variables |
|
|
110 | (1) |
|
Declaring Terraform Resources |
|
|
111 | (2) |
|
|
113 | (3) |
|
|
116 | (1) |
|
|
117 | (1) |
|
|
117 | (1) |
|
Example Terraform Configuration |
|
|
118 | (4) |
|
Terraform Command-Line Interface |
|
|
122 | (4) |
|
|
126 | (6) |
|
Supporting Platform as a Service |
|
|
127 | (1) |
|
Managing Self-Service Clusters |
|
|
127 | (1) |
|
Performing Multicloud Deployments |
|
|
127 | (1) |
|
Managing Parallel Environments |
|
|
128 | (1) |
|
Application Infrastructure Automation |
|
|
128 | (1) |
|
Managing Software-Defined Networks |
|
|
129 | (1) |
|
|
130 | (2) |
|
|
132 | (3) |
|
Chapter 7 Hands-on Infrastructure as Code with Puppet |
|
|
135 | (30) |
|
|
136 | (2) |
|
|
138 | (1) |
|
|
139 | (8) |
|
|
141 | (3) |
|
|
144 | (1) |
|
|
145 | (1) |
|
|
146 | (1) |
|
|
147 | (2) |
|
|
147 | (1) |
|
|
148 | (1) |
|
|
149 | (1) |
|
Implementing Puppet in Real Projects |
|
|
149 | (14) |
|
Getting Started with Puppet |
|
|
150 | (2) |
|
|
152 | (1) |
|
|
153 | (1) |
|
|
153 | (1) |
|
|
154 | (1) |
|
|
155 | (2) |
|
|
157 | (1) |
|
|
158 | (2) |
|
Puppet Command-Line Interface |
|
|
160 | (3) |
|
|
163 | (2) |
|
Chapter 8 Introduction to Infrastructure as Code with Chef |
|
|
165 | (12) |
|
|
166 | (1) |
|
|
167 | (4) |
|
|
167 | (1) |
|
|
168 | (1) |
|
|
168 | (1) |
|
|
169 | (1) |
|
|
170 | (1) |
|
|
170 | (1) |
|
|
171 | (1) |
|
|
171 | (3) |
|
|
172 | (1) |
|
Configuration of Nodes with Chef Clients |
|
|
173 | (1) |
|
|
173 | (1) |
|
|
174 | (1) |
|
|
174 | (3) |
Index |
|
177 | |