Infrastructure as code: dynamic systems for the cloud age
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Beijing
O'Reilly
2020
|
Ausgabe: | second edition |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XXIV, 399 Seiten Diagramme |
ISBN: | 9781098114671 |
Internformat
MARC
LEADER | 00000nam a22000002c 4500 | ||
---|---|---|---|
001 | BV046953384 | ||
003 | DE-604 | ||
005 | 20210216 | ||
007 | t | ||
008 | 201022s2020 |||| |||| 00||| eng d | ||
020 | |a 9781098114671 |c pbk |9 978-1-098-11467-1 | ||
035 | |a (OCoLC)1248927136 | ||
035 | |a (DE-599)BVBBV046953384 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
049 | |a DE-473 | ||
084 | |a ST 200 |0 (DE-625)143611: |2 rvk | ||
100 | 1 | |a Morris, Kief |e Verfasser |0 (DE-588)1108594522 |4 aut | |
245 | 1 | 0 | |a Infrastructure as code |b dynamic systems for the cloud age |c Kief Morris |
250 | |a second edition | ||
264 | 1 | |a Beijing |b O'Reilly |c 2020 | |
264 | 4 | |c © 2021 | |
300 | |a XXIV, 399 Seiten |b Diagramme | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Cloud Computing |0 (DE-588)7623494-0 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Cloud Computing |0 (DE-588)7623494-0 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Bamberg - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032361849&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-032361849 |
Datensatz im Suchindex
_version_ | 1804181866992893952 |
---|---|
adam_text | Table of Contents Preface....................................................... ................................................ Parti. xv Foundations 1. What Is Infrastructure as Code?...................................................................................1 From the Iron Age to the Cloud Age Infrastructure as Code Benefits of Infrastructure as Code Use Infrastructure as Code to Optimize for Change Objection: “We don’t make changes often enough to justify automating them” Objection: “We should build first and automate later” Objection: “We must choose between speed and quality” The Four Key Metrics Three Core Practices for Infrastructure as Code Core Practice: Define Everything as Code Core Practice: Continuously Test and Deliver All Work in Progress Core Practice: Build Small, Simple Pieces That You Can Change Independently Conclusion 2. Principles of Cloud Age Infrastructure..... ............ ................. . Principle: Assume Systems Are Unreliable Principle: Make Everything Reproducible Pitfall: Snowflake Systems Principle: Create Disposable Things Principle: Minimize Variation 2 4 4 4 5 6 7 9 9 10 10 11 U 13 14 14 1516 17
Configuration Drift Principle: Ensure That You Can Repeat Any Process Conclusion 3. Infrastructure Platforms........................................ The Parts of an Infrastructure System Infrastructure Platforms Infrastructure Resources Compute Resources Storage Resources Network Resources Conclusion 4. Core Practice: Define Everything as Code.................................... Why You Should Define Your Infrastructure as Code What You Can Define as Code Choose Tools with Externalized Configuration Manage Your Code in a Version Control System Infrastructure Coding Languages Infrastructure Scripting Declarative Infrastructure Languages Programmable, Imperative Infrastructure Languages Declarative Versus Imperative Languages for Infrastructure Domain-Specific Infrastructure Languages General-Purpose Languages Versus DSLs for Infrastructure Implementation Principles for Defining Infrastructure as Code Separate Declarative and Imperative Code Treat Infrastructure Code Like Real Code Conclusion Part II. 18 20 21 23 23 25 27 28 29 31 33 35 35 36 36 37 38 39 41 43 44 44 46 46 47 47 48 Working with Infrastructure Stacks 5. Building Infrastructure Stacks as Code........................................................... 51 What Is an Infrastructure Stack? Stack Code Stack Instance Configuring Servers in a Stack Low-Level Infrastructure Languages High-Level Infrastructure Languages Patterns and Antipatterns for Structuring Stacks Antipattern: Monolithic Stack vi Į Table of Contents 51 53 53 54 54 55 56 56
Pattern: Application Group Stack Pattern: Service Stack Pattern: Micro Stack Conclusion 59 60 62 63 6. Building Environments with Stacks................................ 65 What Environments Are All About Delivery Environments Multiple Production Environments Environments, Consistency, and Configuration Patterns for Building Environments Antipattern: Multiple-Environment Stack Antipattern: Copy-Paste Environments Pattern: Reusable Stack Building Environments with Multiple Stacks Conclusion 65 66 66 67 68 68 70 72 74 75 7. Configuring Stack Instances................................................................. Using Stack Parameters to Create Unique Identifiers Example Stack Parameters Patterns for Configuring Stacks Antipattern: Manual Stack Parameters Pattern: Stack Environment Variables Pattern: Scripted Parameters Pattern: Stack Configuration Files Pattern: Wrapper Stack Pattern: Pipeline Stack Parameters Pattern: Stack Parameter Registry Configuration Registry Implementing a Configuration Registry Single or Multiple Configuration Registries Handling Secrets as Parameters Encrypting Secrets Secretless Authorization Injecting Secrets at Runtime Disposable Secrets Conclusion 77 79 79 80 81 82 84 87 90 93 96 99 100 102 102 102 103 103 104 104 8. Core Practice: Continuously Test and Deliver...................................................... 105 Why Continuously Test Infrastructure Code? What Continuous Testing Means What Should We Test with Infrastructure? 106 106 108 Table of Contents I vii
Challenges with Testing Infrastructure Code Challenge: Tests for Declarative Code Often Have Low Value Challenge: Testing Infrastructure Code Is Slow Challenge: Dependencies Complicate Testing Infrastructure Progressive Testing Test Pyramid Swiss Cheese Testing Model Infrastructure Delivery Pipelines Pipeline Stages Scope of Components Tested in a Stage Scope of Dependencies Used for a Stage Platform Elements Needed for a Stage Delivery Pipeline Software and Services Testing in Production What You Can’t Replicate Outside Production Managing the Risks of Testing in Production Conclusion 110 110 113 114 115 116 118 119 120 121 121 122 123 125 125 126 128 9. Testing Infrastructure Stacks................................................................... 129 Example Infrastructure The Example Stack Pipeline for the Example Stack Offline Testing Stages for Stacks Syntax Checking Offline Static Code Analysis Static Code Analysis with API Testing with a Mock API Online Testing Stages for Stacks Preview: Seeing What Changes Will Be Made Verification: Making Assertions About Infrastructure Resources Outcomes: Proving Infrastructure Works Correctly Using Test Fixtures to Handle Dependencies Test Doubles for Upstream Dependencies Test Fixtures for Downstream Dependencies Refactor Components So They Can Be Isolated Life Cycle Patterns for Test Instances of Stacks Pattern: Persistent Test Stack Pattern: Ephemeral Test Stack Antipattern: Dual Persistent and Ephemeral Stack Stages Pattern: Periodic Stack Rebuild Pattern: Continuous Stack Reset Test Orchestration viii I Table of Contents
129 130 131 131 132 132 133 133 134 134 135 137 137 139 139 141 142 142 143 145 146 147 149
Support Local Testing Avoid Tight Coupling with Pipeline Tools Test Orchestration Tools Conclusion Part III. 149 150 150 15! Working with Servers and Other Application Runtime Platforms 10. Application Runtimes.......................................................................................... . 155 Cloud Native and Application-Driven Infrastructure Application Runtime Targets Deployable Parts of an Application Deployment Packages Deploying Applications to Servers Packaging Applications in Containers Deploying Applications to Server Clusters Deploying Applications to Application Clusters Packages for Deploying Applications to Clusters Deploying FaaS Serverless Applications Application Data Data Schemas and Structures Cloud Native Application Storage Infrastructure Application Connectivity Service Discovery Conclusion 156 157 157 158 159 159 160 161 162 163 164 164 165 165 166 168 11. Building Servers as Code................................... 169 What’s on a Server Where Things Come From Server Configuration Code Server Configuration Code Modules Designing Server Configuration Code Modules Versioning and Promoting Server Code Server Roles Testing Server Code Progressively Testing Server Code What to Test with Server Code How to Test Server Code Creating a New Server Instance Hand-Building a New Server Instance Using a Script to Create a Server Using a Stack Management Tool to Create a Server 170 171 172 173 174 175 175 176 177 177 178 179 180 181 181 Table of Contents | ix
Configuring the Platform to Automatically Create Servers Using a Networked Provisioning Tool to Build a Server Prebuilding Servers Hot-Cloning a Server Using a Server Snapshot Creating a Clean Server Image Configuring a New Server Instance Frying a Server Instance Baking Server Images Combining Baking and Frying Applying Server Configuration When Creating a Server Conclusion 12. Managing Changes to Servers....................................... Change Management Patterns: When to Apply Changes Antipattern: Apply On Change Pattern: Continuous Configuration Synchronization Pattern: Immutable Server How to Apply Server Configuration Code Pattern: Push Server Configuration Pattern: Pull Server Configuration Other Server Life Cycle Events Stopping and Restarting a Server Instance Replacing a Server Instance Recovering a Failed Server Conclusion 182 182 183 184 184 185 185 186 187 188 189 189 191 192 192 194 195 198 198 200 202 202 203 204 205 13. Server Images as Code............................................................................. 207 Building a Server Image Why Build a Server Image? How to Build a Server Image Tools for Building Server Images Online Image Building Process Offline Image Building Process Origin Content for a Server Image Building from a Stock Server Image Building a Server Image from Scratch Provenance of a Server Image and its Content Changing a Server Image Reheating or Baking a Fresh Image Versioning a Server Image Updating Server Instances When an Image Changes x I Table of Contents 208 208 209 209 210 213 214 215 215 215 216 216 217 218
Providing and Using a Server Image Across Teams Handling Major Changes to an Image Using a Pipeline to Test and Deliver a Server Image Build Stage for a Server Image Test Stage for a Server Image Delivery Stages for a Server Image Using Multiple Server Images Server Images for Different Infrastructure Platforms Server Images for Different Operating Systems Server Images for Different Hardware Architectures Server Images for Different Roles Layering Server Images Sharing Code Across Server Images Conclusion 220 220 221 շշշ 223 224 225 225 225 226 226 226 228 228 14. Building Clusters as Code................ 229 Application Cluster Solutions Cluster as a Service Packaged Cluster Distribution Stack Topologies for Application Clusters Monolithic Stack Using Cluster as a Service Monolithic Stack for a Packaged Cluster Solution Pipeline for a Monolithic Application Cluster Stack Example of Multiple Stacks for a Cluster Sharing Strategies for Application Clusters One Big Cluster for Everything Separate Clusters for Delivery Stages Clusters for Governance Clusters for Teams Service Mesh Infrastructure for FaaS Serverless Conclusion Part IV. 230 230 231 232 233 234 235 238 241 242 242 243 244 244 246 248 Designing Infrastructure 15. Core Practice: Small, Simple Pieces............... . ................. ....... . Designing for Modularity Characteristics of Well-Designed Components Rules for Designing Components Use Testing to Drive Design Decisions Modularizing Infrastructure 251 252 252 253 256 256 Table of Contents | xi
Stack Components Versus Stacks as Components Using a Server in a Stack Drawing Boundaries Between Components Align Boundaries with Natural Change Patterns Align Boundaries with Component Life Cycles Align Boundaries with Organizational Structures Create Boundaries That Support Resilience Create Boundaries That Support Scaling Align Boundaries to Security and Governance Concerns Conclusion 16. Building Stacks from Components............................. Infrastructure Languages for Stack Components Reuse Declarative Code with Modules Dynamically Create Stack Elements with Libraries Patterns for Stack Components Pattern: Facade Module Antipattern: Obfuscation Module Antipattern: Unshared Module Pattern: Bundle Module Antipattern: Spaghetti Module Pattern: Infrastructure Domain Entity Building an Abstraction Layer Conclusion 17. Using Stacks as Components.................... Discovering Dependencies Across Stacks Pattern: Resource Matching Pattern: Stack Data Lookup Pattern: Integration Registry Lookup Dependency Injection Conclusion PartV. Organizing Projects and Repositories One Repository, or Many? One Repository for Everything A Separate Repository for Each Project (Microrepo) Multiple Repositories with Multiple Projects I 271 272 272 273 274 274 276 277 279 280 283 285 286 287 287 288 291 294 296 299 Delivering Infrastructure 18. Organizing Infrastructure Code............... xii 257 259 262 262 263 265 265 266 269 270 Table of Contents 303 303 304 304 307 308
Organizing Different Types of Code Project Support Files Cross-Project Tests Dedicated Integration Test Projects Organize Code by Domain Concept Organizing Configuration Value Files Managing Infrastructure and Application Code Delivering Infrastructure and Applications Testing Applications with Infrastructure Testing Infrastructure Before Integrating Using Infrastructure Code to Deploy Applications Conclusion 19. Delivering Infrastructure Code...... . ................. Delivering Infrastructure Code Building an Infrastructure Project Packaging Infrastructure Code as an Artifact Using a Repository to Deliver Infrastructure Code Integrating Projects Pattern: Build-Time Project Integration Pattern: Delivery-Time Project Integration Pattern: Apply-Time Project Integration Using Scripts to Wrap Infrastructure Tools Assembling Configuration Values Simplifying Wrapper Scripts Conclusion 20. Team Workflows......................... The People Who Writes Infrastructure Code? Applying Code to Infrastructure Applying Code from Your Local Workstation Applying Code from a Centralized Service Personal Infrastructure Instances Source Code Branches in Workflows Preventing Configuration Drift Minimize Automation Lag Avoid Ad Hoc Apply Apply Code Continuously Immutable Infrastructure Governance in a Pipeline-based Workflow Reshuffling Responsibilities 309 309 310 311 312 312 313 314 315 316 317 319 321 321 322 323 323 326 327 330 333 335 336 337 338 339 340 342 344 344 345 347 348 349 349 350 350 351 352 352 Table of Contents | xiii
Shift Left An Example Process for Infrastructure as Code with Governance Conclusion 353 353 354 355 21. Safely Changing Infrastructure...................... Reduce the Scope of Change Small Changes Example of Refactoring Pushing Incomplete Changes to Production Parallel Instances Backward Compatible Transformations Feature Toggles Changing Live Infrastructure Infrastructure Surgery Expand and Contract Zero Downtime Changes Continuity Continuity by Preventing Errors Continuity by Fast Recovery Continuous Disaster Recovery Chaos Engineering Planning for Failure Data Continuity in a Changing System Lock Segregate Replicate Reload Mixing Data Continuity Approaches Conclusion 355 358 359 361 361 364 366 368 370 372 375 376 377 378 379 379 380 382 382 382 383 383 384 384 Index. 385 xiv Į Table of Contents
|
adam_txt |
Table of Contents Preface. . Parti. xv Foundations 1. What Is Infrastructure as Code?.1 From the Iron Age to the Cloud Age Infrastructure as Code Benefits of Infrastructure as Code Use Infrastructure as Code to Optimize for Change Objection: “We don’t make changes often enough to justify automating them” Objection: “We should build first and automate later” Objection: “We must choose between speed and quality” The Four Key Metrics Three Core Practices for Infrastructure as Code Core Practice: Define Everything as Code Core Practice: Continuously Test and Deliver All Work in Progress Core Practice: Build Small, Simple Pieces That You Can Change Independently Conclusion 2. Principles of Cloud Age Infrastructure. . . . Principle: Assume Systems Are Unreliable Principle: Make Everything Reproducible Pitfall: Snowflake Systems Principle: Create Disposable Things'" Principle: Minimize Variation 2 4 4 4 5 6 7 9 9 10 10 11 U 13 14 14 1516 17
Configuration Drift Principle: Ensure That You Can Repeat Any Process Conclusion 3. Infrastructure Platforms. The Parts of an Infrastructure System Infrastructure Platforms Infrastructure Resources Compute Resources Storage Resources Network Resources Conclusion 4. Core Practice: Define Everything as Code. Why You Should Define Your Infrastructure as Code What You Can Define as Code Choose Tools with Externalized Configuration Manage Your Code in a Version Control System Infrastructure Coding Languages Infrastructure Scripting Declarative Infrastructure Languages Programmable, Imperative Infrastructure Languages Declarative Versus Imperative Languages for Infrastructure Domain-Specific Infrastructure Languages General-Purpose Languages Versus DSLs for Infrastructure Implementation Principles for Defining Infrastructure as Code Separate Declarative and Imperative Code Treat Infrastructure Code Like Real Code Conclusion Part II. 18 20 21 23 23 25 27 28 29 31 33 35 35 36 36 37 38 39 41 43 44 44 46 46 47 47 48 Working with Infrastructure Stacks 5. Building Infrastructure Stacks as Code. 51 What Is an Infrastructure Stack? Stack Code Stack Instance Configuring Servers in a Stack Low-Level Infrastructure Languages High-Level Infrastructure Languages Patterns and Antipatterns for Structuring Stacks Antipattern: Monolithic Stack vi Į Table of Contents 51 53 53 54 54 55 56 56
Pattern: Application Group Stack Pattern: Service Stack Pattern: Micro Stack Conclusion 59 60 62 63 6. Building Environments with Stacks. 65 What Environments Are All About Delivery Environments Multiple Production Environments Environments, Consistency, and Configuration Patterns for Building Environments Antipattern: Multiple-Environment Stack Antipattern: Copy-Paste Environments Pattern: Reusable Stack Building Environments with Multiple Stacks Conclusion 65 66 66 67 68 68 70 72 74 75 7. Configuring Stack Instances. Using Stack Parameters to Create Unique Identifiers Example Stack Parameters Patterns for Configuring Stacks Antipattern: Manual Stack Parameters Pattern: Stack Environment Variables Pattern: Scripted Parameters Pattern: Stack Configuration Files Pattern: Wrapper Stack Pattern: Pipeline Stack Parameters Pattern: Stack Parameter Registry Configuration Registry Implementing a Configuration Registry Single or Multiple Configuration Registries Handling Secrets as Parameters Encrypting Secrets Secretless Authorization Injecting Secrets at Runtime Disposable Secrets Conclusion 77 79 79 80 81 82 84 87 90 93 96 99 100 102 102 102 103 103 104 104 8. Core Practice: Continuously Test and Deliver. 105 Why Continuously Test Infrastructure Code? What Continuous Testing Means What Should We Test with Infrastructure? 106 106 108 Table of Contents I vii
Challenges with Testing Infrastructure Code Challenge: Tests for Declarative Code Often Have Low Value Challenge: Testing Infrastructure Code Is Slow Challenge: Dependencies Complicate Testing Infrastructure Progressive Testing Test Pyramid Swiss Cheese Testing Model Infrastructure Delivery Pipelines Pipeline Stages Scope of Components Tested in a Stage Scope of Dependencies Used for a Stage Platform Elements Needed for a Stage Delivery Pipeline Software and Services Testing in Production What You Can’t Replicate Outside Production Managing the Risks of Testing in Production Conclusion 110 110 113 114 115 116 118 119 120 121 121 122 123 125 125 126 128 9. Testing Infrastructure Stacks. 129 Example Infrastructure The Example Stack Pipeline for the Example Stack Offline Testing Stages for Stacks Syntax Checking Offline Static Code Analysis Static Code Analysis with API Testing with a Mock API Online Testing Stages for Stacks Preview: Seeing What Changes Will Be Made Verification: Making Assertions About Infrastructure Resources Outcomes: Proving Infrastructure Works Correctly Using Test Fixtures to Handle Dependencies Test Doubles for Upstream Dependencies Test Fixtures for Downstream Dependencies Refactor Components So They Can Be Isolated Life Cycle Patterns for Test Instances of Stacks Pattern: Persistent Test Stack Pattern: Ephemeral Test Stack Antipattern: Dual Persistent and Ephemeral Stack Stages Pattern: Periodic Stack Rebuild Pattern: Continuous Stack Reset Test Orchestration viii I Table of Contents
129 130 131 131 132 132 133 133 134 134 135 137 137 139 139 141 142 142 143 145 146 147 149
Support Local Testing Avoid Tight Coupling with Pipeline Tools Test Orchestration Tools Conclusion Part III. 149 150 150 15! Working with Servers and Other Application Runtime Platforms 10. Application Runtimes. . 155 Cloud Native and Application-Driven Infrastructure Application Runtime Targets Deployable Parts of an Application Deployment Packages Deploying Applications to Servers Packaging Applications in Containers Deploying Applications to Server Clusters Deploying Applications to Application Clusters Packages for Deploying Applications to Clusters Deploying FaaS Serverless Applications Application Data Data Schemas and Structures Cloud Native Application Storage Infrastructure Application Connectivity Service Discovery Conclusion 156 157 157 158 159 159 160 161 162 163 164 164 165 165 166 168 11. Building Servers as Code. 169 What’s on a Server Where Things Come From Server Configuration Code Server Configuration Code Modules Designing Server Configuration Code Modules Versioning and Promoting Server Code Server Roles Testing Server Code Progressively Testing Server Code What to Test with Server Code How to Test Server Code Creating a New Server Instance Hand-Building a New Server Instance Using a Script to Create a Server Using a Stack Management Tool to Create a Server 170 171 172 173 174 175 175 176 177 177 178 179 180 181 181 Table of Contents | ix
Configuring the Platform to Automatically Create Servers Using a Networked Provisioning Tool to Build a Server Prebuilding Servers Hot-Cloning a Server Using a Server Snapshot Creating a Clean Server Image Configuring a New Server Instance Frying a Server Instance Baking Server Images Combining Baking and Frying Applying Server Configuration When Creating a Server Conclusion 12. Managing Changes to Servers. Change Management Patterns: When to Apply Changes Antipattern: Apply On Change Pattern: Continuous Configuration Synchronization Pattern: Immutable Server How to Apply Server Configuration Code Pattern: Push Server Configuration Pattern: Pull Server Configuration Other Server Life Cycle Events Stopping and Restarting a Server Instance Replacing a Server Instance Recovering a Failed Server Conclusion 182 182 183 184 184 185 185 186 187 188 189 189 191 192 192 194 195 198 198 200 202 202 203 204 205 13. Server Images as Code. 207 Building a Server Image Why Build a Server Image? How to Build a Server Image Tools for Building Server Images Online Image Building Process Offline Image Building Process Origin Content for a Server Image Building from a Stock Server Image Building a Server Image from Scratch Provenance of a Server Image and its Content Changing a Server Image Reheating or Baking a Fresh Image Versioning a Server Image Updating Server Instances When an Image Changes x I Table of Contents 208 208 209 209 210 213 214 215 215 215 216 216 217 218
Providing and Using a Server Image Across Teams Handling Major Changes to an Image Using a Pipeline to Test and Deliver a Server Image Build Stage for a Server Image Test Stage for a Server Image Delivery Stages for a Server Image Using Multiple Server Images Server Images for Different Infrastructure Platforms Server Images for Different Operating Systems Server Images for Different Hardware Architectures Server Images for Different Roles Layering Server Images Sharing Code Across Server Images Conclusion 220 220 221 շշշ 223 224 225 225 225 226 226 226 228 228 14. Building Clusters as Code. 229 Application Cluster Solutions Cluster as a Service Packaged Cluster Distribution Stack Topologies for Application Clusters Monolithic Stack Using Cluster as a Service Monolithic Stack for a Packaged Cluster Solution Pipeline for a Monolithic Application Cluster Stack Example of Multiple Stacks for a Cluster Sharing Strategies for Application Clusters One Big Cluster for Everything Separate Clusters for Delivery Stages Clusters for Governance Clusters for Teams Service Mesh Infrastructure for FaaS Serverless Conclusion Part IV. 230 230 231 232 233 234 235 238 241 242 242 243 244 244 246 248 Designing Infrastructure 15. Core Practice: Small, Simple Pieces. . . . . Designing for Modularity Characteristics of Well-Designed Components Rules for Designing Components Use Testing to Drive Design Decisions Modularizing Infrastructure 251 252 252 253 256 256 Table of Contents | xi
Stack Components Versus Stacks as Components Using a Server in a Stack Drawing Boundaries Between Components Align Boundaries with Natural Change Patterns Align Boundaries with Component Life Cycles Align Boundaries with Organizational Structures Create Boundaries That Support Resilience Create Boundaries That Support Scaling Align Boundaries to Security and Governance Concerns Conclusion 16. Building Stacks from Components. Infrastructure Languages for Stack Components Reuse Declarative Code with Modules Dynamically Create Stack Elements with Libraries Patterns for Stack Components Pattern: Facade Module Antipattern: Obfuscation Module Antipattern: Unshared Module Pattern: Bundle Module Antipattern: Spaghetti Module Pattern: Infrastructure Domain Entity Building an Abstraction Layer Conclusion 17. Using Stacks as Components. Discovering Dependencies Across Stacks Pattern: Resource Matching Pattern: Stack Data Lookup Pattern: Integration Registry Lookup Dependency Injection Conclusion PartV. Organizing Projects and Repositories One Repository, or Many? One Repository for Everything A Separate Repository for Each Project (Microrepo) Multiple Repositories with Multiple Projects I 271 272 272 273 274 274 276 277 279 280 283 285 286 287 287 288 291 294 296 299 Delivering Infrastructure 18. Organizing Infrastructure Code. xii 257 259 262 262 263 265 265 266 269 270 Table of Contents 303 303 304 304 307 308
Organizing Different Types of Code Project Support Files Cross-Project Tests Dedicated Integration Test Projects Organize Code by Domain Concept Organizing Configuration Value Files Managing Infrastructure and Application Code Delivering Infrastructure and Applications Testing Applications with Infrastructure Testing Infrastructure Before Integrating Using Infrastructure Code to Deploy Applications Conclusion 19. Delivering Infrastructure Code. . . Delivering Infrastructure Code Building an Infrastructure Project Packaging Infrastructure Code as an Artifact Using a Repository to Deliver Infrastructure Code Integrating Projects Pattern: Build-Time Project Integration Pattern: Delivery-Time Project Integration Pattern: Apply-Time Project Integration Using Scripts to Wrap Infrastructure Tools Assembling Configuration Values Simplifying Wrapper Scripts Conclusion 20. Team Workflows. The People Who Writes Infrastructure Code? Applying Code to Infrastructure Applying Code from Your Local Workstation Applying Code from a Centralized Service Personal Infrastructure Instances Source Code Branches in Workflows Preventing Configuration Drift Minimize Automation Lag Avoid Ad Hoc Apply Apply Code Continuously Immutable Infrastructure Governance in a Pipeline-based Workflow Reshuffling Responsibilities 309 309 310 311 312 312 313 314 315 316 317 319 321 321 322 323 323 326 327 330 333 335 336 337 338 339 340 342 344 344 345 347 348 349 349 350 350 351 352 352 Table of Contents | xiii
Shift Left An Example Process for Infrastructure as Code with Governance Conclusion 353 353 354 355 21. Safely Changing Infrastructure. Reduce the Scope of Change Small Changes Example of Refactoring Pushing Incomplete Changes to Production Parallel Instances Backward Compatible Transformations Feature Toggles Changing Live Infrastructure Infrastructure Surgery Expand and Contract Zero Downtime Changes Continuity Continuity by Preventing Errors Continuity by Fast Recovery Continuous Disaster Recovery Chaos Engineering Planning for Failure Data Continuity in a Changing System Lock Segregate Replicate Reload Mixing Data Continuity Approaches Conclusion 355 358 359 361 361 364 366 368 370 372 375 376 377 378 379 379 380 382 382 382 383 383 384 384 Index. 385 xiv Į Table of Contents |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Morris, Kief |
author_GND | (DE-588)1108594522 |
author_facet | Morris, Kief |
author_role | aut |
author_sort | Morris, Kief |
author_variant | k m km |
building | Verbundindex |
bvnumber | BV046953384 |
classification_rvk | ST 200 |
ctrlnum | (OCoLC)1248927136 (DE-599)BVBBV046953384 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | second edition |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01272nam a22003372c 4500</leader><controlfield tag="001">BV046953384</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20210216 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">201022s2020 |||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781098114671</subfield><subfield code="c">pbk</subfield><subfield code="9">978-1-098-11467-1</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1248927136</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV046953384</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-473</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 200</subfield><subfield code="0">(DE-625)143611:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Morris, Kief</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1108594522</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Infrastructure as code</subfield><subfield code="b">dynamic systems for the cloud age</subfield><subfield code="c">Kief Morris</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">second edition</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Beijing</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">2020</subfield></datafield><datafield tag="264" ind1=" " ind2="4"><subfield code="c">© 2021</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXIV, 399 Seiten</subfield><subfield code="b">Diagramme</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Cloud Computing</subfield><subfield code="0">(DE-588)7623494-0</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Cloud Computing</subfield><subfield code="0">(DE-588)7623494-0</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032361849&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-032361849</subfield></datafield></record></collection> |
id | DE-604.BV046953384 |
illustrated | Not Illustrated |
index_date | 2024-07-03T15:41:56Z |
indexdate | 2024-07-10T08:58:28Z |
institution | BVB |
isbn | 9781098114671 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-032361849 |
oclc_num | 1248927136 |
open_access_boolean | |
owner | DE-473 DE-BY-UBG |
owner_facet | DE-473 DE-BY-UBG |
physical | XXIV, 399 Seiten Diagramme |
publishDate | 2020 |
publishDateSearch | 2020 |
publishDateSort | 2020 |
publisher | O'Reilly |
record_format | marc |
spelling | Morris, Kief Verfasser (DE-588)1108594522 aut Infrastructure as code dynamic systems for the cloud age Kief Morris second edition Beijing O'Reilly 2020 © 2021 XXIV, 399 Seiten Diagramme txt rdacontent n rdamedia nc rdacarrier Cloud Computing (DE-588)7623494-0 gnd rswk-swf Cloud Computing (DE-588)7623494-0 s DE-604 Digitalisierung UB Bamberg - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032361849&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Morris, Kief Infrastructure as code dynamic systems for the cloud age Cloud Computing (DE-588)7623494-0 gnd |
subject_GND | (DE-588)7623494-0 |
title | Infrastructure as code dynamic systems for the cloud age |
title_auth | Infrastructure as code dynamic systems for the cloud age |
title_exact_search | Infrastructure as code dynamic systems for the cloud age |
title_exact_search_txtP | Infrastructure as code dynamic systems for the cloud age |
title_full | Infrastructure as code dynamic systems for the cloud age Kief Morris |
title_fullStr | Infrastructure as code dynamic systems for the cloud age Kief Morris |
title_full_unstemmed | Infrastructure as code dynamic systems for the cloud age Kief Morris |
title_short | Infrastructure as code |
title_sort | infrastructure as code dynamic systems for the cloud age |
title_sub | dynamic systems for the cloud age |
topic | Cloud Computing (DE-588)7623494-0 gnd |
topic_facet | Cloud Computing |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032361849&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT morriskief infrastructureascodedynamicsystemsforthecloudage |