Index
A
- abstraction layers, Building an Abstraction Layer
- Accelerate State of DevOps Report, Preface, Use Infrastructure as Code to Optimize for Change, What Continuous Testing Means
- actionability, of code, Manage Your Code in a Version Control System
- activity, as a pipeline stage, Pipeline Stages
- ad hoc apply, Avoid Ad Hoc Apply
- ADRs (architecture decision records), Treat Infrastructure Code Like Real Code
- AKS (Azure Kubernetes Service), Compute Resources, Cluster as a Service, Monolithic Stack Using Cluster as a Service
- Amazon, Recovering a Failed Server
- Amazon DynamoDB, Compute Resources
- Amazon Elastic Container Service for Kubernetes (EKS), Compute Resources, Cluster as a Service, Monolithic Stack Using Cluster as a Service
- Amazon Elastic Container Services (ECS), Compute Resources, Cluster as a Service, Monolithic Stack Using Cluster as a Service
- Amazon's S3, Storage Resources
- Ambler, Scott
- Aminator (website), Tools for Building Server Images
- Andrew File System, Storage Resources
- Ansible, Infrastructure Coding Languages, Domain-Specific Infrastructure Languages, Server Configuration Code
- Ansible Cloud Modules (website), What Is an Infrastructure Stack?
- Ansible for OpenShift (website), Monolithic Stack for a Packaged Cluster Solution
- Ansible Tower, Infrastructure automation tool registries, Server Configuration Code
- antipatterns
- apply on change, Antipattern: Apply On Change
- copy-paste environments, Antipattern: Copy-Paste Environments
- defined, Principles, Practices, and Patterns
- dual persistent and ephemeral stack stages, Antipattern: Dual Persistent and Ephemeral Stack Stages
- for infrastructure stacks, Patterns and Antipatterns for Structuring Stacks-Related Patterns
- manual stack parameters, Patterns for Configuring Stacks-Related patterns
- monolithic stack, Patterns and Antipatterns for Structuring Stacks-Related patterns
- multiple-environment stack, Antipattern: Multiple-Environment Stack
- obfuscation module, Antipattern: Obfuscation Module
- spaghetti module, Antipattern: Spaghetti Module-Related patterns
- unshared module, Antipattern: Unshared Module
- Apache Mesos (website), Deploying Applications to Application Clusters, Packaged Cluster Distribution
- Apache OpenWhisk (website), Infrastructure for FaaS Serverless
- API gateways, Network Resources, Service Discovery
- APIs
- application clusters, Building Clusters as Code-Conclusion
- application data, Application Data-Cloud Native Application Storage Infrastructure
- application group stack pattern, Patterns and Antipatterns for Structuring Stacks, Pattern: Application Group Stack
- application hosting clusters, Compute Resources
- application package, What You Can Define as Code
- application runtimes
- about, Application Runtimes
- application connectivity, Application Connectivity-Conclusion
- application data, Application Data-Cloud Native Application Storage Infrastructure
- application-driven infrastructure, Cloud Native and Application-Driven Infrastructure
- as components of infrastructure systems, The Parts of an Infrastructure System
- cloud native infrastructure, Cloud Native and Application-Driven Infrastructure
- deploying applications to servers, Deploying Applications to Servers
- deployment packages, Deployment Packages
- injecting secrets at, Injecting Secrets at Runtime
- targets for, Application Runtime Targets
- application server, Example Infrastructure
- application-driven infrastructure, Cloud Native and Application-Driven Infrastructure
- applications
- as components of infrastructure systems, The Parts of an Infrastructure System
- connectivity with, Application Connectivity-Conclusion
- delivering, Delivering Infrastructure and Applications
- deployable parts of, Deployable Parts of an Application
- deploying FaaS serverless, Deploying FaaS Serverless Applications
- deploying to application clusters, Deploying Applications to Application Clusters
- deploying to server clusters, Deploying Applications to Server Clusters
- deploying to servers, Deploying Applications to Servers
- deploying using infrastructure code, Using Infrastructure Code to Deploy Applications
- packages for deploying to clusters, Packages for Deploying Applications to Clusters-Deploying FaaS Serverless Applications
- packaging in containers, Packaging Applications in Containers
- testing with infrastructure, Testing Applications with Infrastructure
- apply on change antipattern, Antipattern: Apply On Change
- apply-time project integration pattern, Pattern: Apply-Time Project Integration-Related patterns
- approval, as a pipeline stage, Pipeline Stages
- AppVeyor (website), Delivery Pipeline Software and Services
- Architectural Quantum, Stack Components Versus Stacks as Components
- architecture decision records (ADRs), Treat Infrastructure Code Like Real Code
- Artifactory (website), Specialized artifact repository
- artifacts, Packaging Infrastructure Code as an Artifact
- ASG (Auto Scaling Group), Compute Resources
- Assume Systems Are Unreliable principle, Principle: Assume Systems Are Unreliable
- asynchronous messaging, Network Resources
- Atlantis, Delivery Pipeline Software and Services, Applying Code from a Centralized Service
- authentication, as service mesh service, Service Mesh
- authorization, secretless, Secretless Authorization
- auto-recovery, Configuring the Platform to Automatically Create Servers
- automated testing, in pipeline-based workflow, Reshuffling Responsibilities
- automation fear spiral, Configuration Drift
- automation lag, Minimize Automation Lag
- autoscaling, Configuring the Platform to Automatically Create Servers
- availability
- AWS CodeBuild (website), Delivery Pipeline Software and Services
- AWS CodePipeline (website), Delivery Pipeline Software and Services
- AWS ECS Services (website), Packages for Deploying Applications to Clusters
- AWS Elastic BeanStalk, Infrastructure Platforms, Storage Resources
- AWS Image Builder (website), Tools for Building Server Images
- AWS Lambda, Compute Resources, Infrastructure for FaaS Serverless
- AWS SageMaker, Compute Resources
- AWS subnets, Network Resources
- Awspec (website), Verification: Making Assertions About Infrastructure Resources
- Azure App Service Plans (website), Packages for Deploying Applications to Clusters
- Azure Block Blobs, Storage Resources
- Azure Cosmos DB, Compute Resources
- Azure Devops, Infrastructure Platforms
- Azure Functions, Compute Resources, Infrastructure for FaaS Serverless
- Azure Image Builder (website), Tools for Building Server Images
- Azure Kubernetes Service (AKS), Compute Resources, Cluster as a Service, Monolithic Stack Using Cluster as a Service
- Azure ML Services, Compute Resources
- Azure Page Blobs, Storage Resources
- Azure Pipelines (website), Delivery Pipeline Software and Services
- Azure Resource Manager (wesbite), What Is an Infrastructure Stack?
- Azurite (website), Testing with a Mock API
B
- BaaS (Backend as a Service), Infrastructure for FaaS Serverless
- backward compatible transformation, Backward Compatible Transformations
- bake servers, Related patterns
- baking server images, Baking Server Images, Reheating or Baking a Fresh Image
- Bamboo (website), Delivery Pipeline Software and Services
- bare metal, Compute Resources
- base operating system, as a source for servers, Where Things Come From
- batect (website), Personal Infrastructure Instances
- Bazel (website), Implementation
- Beck, Kent, Characteristics of Well-Designed Components, Small Changes
- Behr, Kevin
- best practice, Principles, Practices, and Patterns
- blameless postmortem, An Example Process for Infrastructure as Code with Governance, Infrastructure Surgery
- blast radius, Consequences
- block storage (virtual disk volumes), Storage Resources
- blue-green deployment pattern, Blue-green changes
- Borg, Deploying Applications to Application Clusters
- Bosh (website), What Is an Infrastructure Stack?
- boundaries
- BoxFuse (website), Delivery Pipeline Software and Services
- branch by abstraction, Parallel Instances
- "break glass" process, Consequences
- "A Brief and Incomplete History of Build Pipelines" blog post, Infrastructure Delivery Pipelines
- Buck (website), Implementation
- build server, Delivery Pipeline Software and Services
- build stage, Pipeline for the Example Stack
- build-time project integration pattern, Pattern: Build-Time Project Integration-Related patterns
- builder instances, Infrastructure for the builder instance
- builders
- BuildKite (website), Delivery Pipeline Software and Services
- bundle module pattern, Related patterns, Pattern: Bundle Module, Related patterns
- Butler-Cole, Ben, Pattern: Immutable Server
C
- CaaS (Containers as a Service), Compute Resources, Example of Refactoring
- cache, Network Resources
- Campbell, Laine
- canary development pattern, Parallel Instances
- can_connect method, Test Fixtures for Downstream Dependencies
- Capistrano (website), Deploying Applications to Server Clusters
- causes and prevention, Planning for Failure
- CD (Continuous Delivery)
- CD software, Delivery Pipeline Software and Services
- CDC (consumer-driven contract testing), Implementation
- CDK (Cloud Development Kit), Infrastructure Coding Languages, Programmable, Imperative Infrastructure Languages, Implementation, Implementation
- CDN (Content Distribute Network), Network Resources
- Centos, Handling Major Changes to an Image
- centralized service, applying code from a, Applying Code from a Centralized Service
- CFAR (Cloud Foundry Application Runtime), Packaged Cluster Distribution
- CFEngine, Infrastructure Coding Languages, Server Configuration Code
- cfn_nag (website), Offline Static Code Analysis
- CFRs (Cross-Functional Requirements), What Should We Test with Infrastructure?
- change fail percentage, as a key metric for software delivery and operational performance, The Four Key Metrics
- change management
- changelog, Multiple Repositories with Multiple Projects
- chaos engineering, Principle: Assume Systems Are Unreliable, Managing the Risks of Testing in Production, Recovering a Failed Server, Chaos Engineering
- Chaos Monkey, Chaos Engineering
- checkov (website), Offline Static Code Analysis
- Chef, Some History of Infrastructure as Code, Infrastructure Coding Languages, Domain-Specific Infrastructure Languages, General-Purpose Languages Versus DSLs for Infrastructure, Server Configuration Code, Designing Server Configuration Code Modules
- Chef Community Cookbooks (website), Tool-specific repository
- Chef Infra Server (website), Infrastructure automation tool registries
- Chef Provisioning (website), What Is an Infrastructure Stack?
- Chef Server, Server Configuration Code, Using a Repository to Deliver Infrastructure Code, Tool-specific repository
- chroot command, Offline Image Building Process
- CI, Related patterns
- CI servers, Consequences
- CircleCI (website), Delivery Pipeline Software and Services
- circular logic risk, Challenge: Tests for Declarative Code Often Have Low Value
- Clarity (website), Verification: Making Assertions About Infrastructure Resources
- Clay-Shafer, Andrew, Some History of Infrastructure as Code
- Cloud Age
- cloud agnostic, Infrastructure Platforms
- cloud computing, Infrastructure Platforms
- Cloud Development Kit (CDK) (see CDK (Cloud Development Kit))
- Cloud Foundry Application Runtime (CFAR), Packaged Cluster Distribution
- Cloud Native Computing Foundation, Cloud Native and Application-Driven Infrastructure
- cloud native infrastructure, Cloud Native and Application-Driven Infrastructure, Cloud Native Application Storage Infrastructure
- cloud platform services, Delivery Pipeline Software and Services
- cloud-first strategy, Preface
- cloud-init (website), Implementation
- CloudFormation, Infrastructure Coding Languages, Domain-Specific Infrastructure Languages, What Is an Infrastructure Stack?, Stack Code, Implementation, Deploying FaaS Serverless Applications, Reuse Declarative Code with Modules, Implementation
- CloudFormation Linter (website), Offline Static Code Analysis
- CloudFoundry app manifests, Domain-Specific Infrastructure Languages
- cluster, Cluster as a Service, Cluster as a Service
- (see also application clusters)
- (see also server clusters)
- cluster as a service, Cluster as a Service, Monolithic Stack Using Cluster as a Service
- CMDB (Configuration Management Database), Motivation
- CNAB (Cloud Native Application Bundle) (website), Packages for Deploying Applications to Clusters
- Cobbler (website), Using a Networked Provisioning Tool to Build a Server
- code
- codebase, Infrastructure Coding Languages, Implementation Principles for Defining Infrastructure
as Code, Stack Instance, Motivation, Consequences, What Continuous Testing Means, Test Pyramid, Deployable Parts of an Application, Server Configuration Code, Delivering Infrastructure Code, Source Code Branches in Workflows, Reshuffling Responsibilities
- coding languages
- about, Infrastructure Coding Languages
- declarative infrastructure languages, Declarative Infrastructure Languages
- domain-specific infrastructure languages (DSL), Domain-Specific Infrastructure Languages
- for stack components, Infrastructure Languages for Stack Components-Dynamically Create Stack Elements with Libraries
- general-purpose languages, General-Purpose Languages Versus DSLs for Infrastructure
- high-level infrastructure languages, High-Level Infrastructure Languages
- imperative infrastructure languages, Programmable, Imperative Infrastructure Languages-Declarative Versus Imperative Languages for Infrastructure
- low-level infrastructure languages, Low-Level Infrastructure Languages
- procedural languages, Infrastructure Scripting, General-Purpose Languages Versus DSLs for Infrastructure, Testing variable declarative code
- programmable (see imperative infrastructure languages)
- cohesion, Designing for Modularity
- compliance, of testing, What Should We Test with Infrastructure?
- components
- composition, as reason for modularizing stacks, Building Stacks from Components
- compute instances, Continuous Disaster Recovery
- compute resources, Compute Resources
- ConcourseCI, Pattern: Pipeline Stack Parameters, Delivery Pipeline Software and Services
- concurrency, testing and, What You Can’t Replicate Outside Production
- configuration
- configuration drift, Configuration Drift, Preventing Configuration Drift-Immutable Infrastructure
- configuration files, Consequences
- Configuration Management Database (CMDB), Motivation
- configuration parameters, Deployable Parts of an Application
- configuration patterns, chaining, Related patterns
- configuration registries, Pattern: Stack Parameter Registry, Configuration Registry-Single or Multiple Configuration Registries, Service Discovery
- configuration values, Organizing Configuration Value Files, Assembling Configuration Values
- connectivity, Deployable Parts of an Application
- consistency
- Consul (website), General-purpose configuration registry products, Service Discovery, Service Mesh
- consumer-driven contract testing (CDC), Implementation
- consumers, Using Test Fixtures to Handle Dependencies, Law of Demeter
- containers
- Containers as a Service (CaaS), Compute Resources, Example of Refactoring
- Content Distribute Network (CDN), Network Resources
- continuity
- continuous configuration synchronizatio pattern, Related patterns, Related patterns
- Continuous Delivery (CD) (see CD (Continuous Delivery))
- Continuous Delivery (Humble and Farley), Core Practice:
Continuously Test and Deliver, Infrastructure Delivery Pipelines
- continuous stack reset pattern, Pattern: Continuous Stack Reset
- Conway's Law, Align Boundaries with Organizational Structures, Organizing Projects and Repositories
- copy-paste environments antipattern, Antipattern: Copy-Paste Environments
- CoreOS rkt (website), Packaging Applications in Containers
- correction, Planning for Failure
- correlation, of code, Manage Your Code in a Version Control System
- coupling, Designing for Modularity
- cowboy IT, What Is Infrastructure as Code?
- Create Disposable Things principle, Principle: Create Disposable Things
- Cron, Server Configuration Code
- Cross-Functional Requirements (CFRs), What Should We Test with Infrastructure?
- cross-project tests, Cross-Project Tests
- Crowbar (website), Using a Networked Provisioning Tool to Build a Server
D
- dark launching, Parallel Instances
- data
- data center, Network Resources, Programmable, Imperative Infrastructure Languages, Blue-green changes
- data schemas, Data Schemas and Structures
- data set, What You Can’t Replicate Outside Production, Separate Clusters for Delivery Stages
- data structures, Deployable Parts of an Application, Data Schemas and Structures
- database, Example Infrastructure
- Database Reliability Engineering (Campbell and Majors), Data Schemas and Structures
- DBaaS (Database as a Service), Storage Resources
- DBDeploy (website), Data Schemas and Structures
- dbmigrate (website), Data Schemas and Structures
- DDD (Domain Driven Design), Implementation
- DDNS (Dynamic DNS), Service Discovery
- .deb files, Using Infrastructure Code to Deploy Applications, Packaging Infrastructure Code as an Artifact
- DebianPreseed (website), Creating a New Server Instance, Building a Server Image from Scratch
- Debois, Patrick, Some History of Infrastructure as Code
- decentralized configuration, Related patterns
- declarative code
- declarative infrastructure languages, Declarative Infrastructure Languages
- declarative tests, Challenge: Tests for Declarative Code Often Have Low Value
- decoupling dependencies, Issues with mixing dependency and definition code
- dedicated integration test projects, Dedicated Integration Test Projects
- delivering, Delivering Infrastructure Code-Conclusion
- about, Delivering Infrastructure Code
- building infrastructure projects, Building an Infrastructure Project
- configuration and scripts for services, What You Can Define as Code
- environments for, Delivery Environments
- integrating projects, Integrating Projects-Related patterns
- lead time, as a key metric for software delivery and operational performance, The Four Key Metrics
- packaging infrastructure code as artifacts, Packaging Infrastructure Code as an Artifact
- pipeline software and services, Delivery Pipeline Software and Services-Delivery Pipeline Software and Services
- using repositories to deliver infrastructure code, Using a Repository to Deliver Infrastructure Code-Delivering code from a source code repository
- delivery-time project integration pattern, Pattern: Delivery-Time Project Integration-Related patterns
- democratic quality, in pipeline-based workflow, Reshuffling Responsibilities
- dependencies
- across component stacks, Discovering Dependencies Across Stacks-Conclusion
- as a script task, Using Scripts to Wrap Infrastructure Tools
- circular, No circular dependencies
- clarifying, Challenge: Testing Infrastructure Code Is Slow
- decoupling, Issues with mixing dependency and definition code
- isolating, Challenge: Testing Infrastructure Code Is Slow
- minimizing, Challenge: Testing Infrastructure Code Is Slow
- minimizing with definition code, Issues with mixing dependency and definition code
- scope used for stages, Scope of Dependencies Used for a Stage
- servers and, Frying a Server Instance
- using text fixtures to handle, Using Test Fixtures to Handle Dependencies-Refactor Components So They Can Be Isolated
- Dependencies Complicate Testing Infrastructure challenge, Challenge: Dependencies Complicate Testing Infrastructure
- dependency injection (DI) (see DI (dependency injection))
- deployment frequency, as a key metric for software delivery and operational performance, The Four Key Metrics
- deployment manifest, Packages for Deploying Applications to Clusters
- deployment packages, Deployment Packages
- design smell, Separate Declarative and Imperative Code
- designers, in team workflow, The People
- detection, Planning for Failure
- DevOps, Some History of Infrastructure as Code, What Is Infrastructure as Code?, Managing Infrastructure and Application Code
- DI (dependency injection), Dependency Injection-Conclusion
- direct connection, Network Resources
- disaster recovery, Continuous Disaster Recovery
- disposable secrets, Disposable Secrets
- DIY configuration registries, DIY configuration registries
- DNS (Domain Name System), Service Discovery
- Do Better As Code (website), Challenge: Dependencies Complicate Testing Infrastructure
- Docker (website), Packaging Applications in Containers
- documentation, code as, Treat Infrastructure Code Like Real Code
- Dojo (website), Personal Infrastructure Instances
- domain concepts, Design components around domain concepts, not technical ones, Organize Code by Domain Concept
- Domain Driven Design (DDD), Implementation
- Domain Name System (DNS), Service Discovery
- doozerd (website), General-purpose configuration registry products
- DORA, The Four Key Metrics
- downstream dependencies, Using Test Fixtures to Handle Dependencies, Test Fixtures for Downstream Dependencies
- Drone (website), Delivery Pipeline Software and Services
- Dropwizard (website), Using Infrastructure Code to Deploy Applications
- DRY (Don't Repeat Tourself) principle, Avoid duplication
- DSL (domain-specific language), Domain-Specific Infrastructure Languages
- dual persistent and ephemeral stack stages antipattern, Antipattern: Dual Persistent and Ephemeral Stack Stages
- duplication, avoiding, Avoid duplication
- Dynamic DNS (DDNS), Service Discovery
E
- ECS (Amazon Elastic Container Services), Compute Resources, Cluster as a Service, Monolithic Stack Using Cluster as a Service
- EDGE model, Principle: Minimize Variation
- EDGE: Value-Driven Digital Transformation (Highscmith, Luu and Robinson), Principle: Minimize Variation
- efficiency, servers and, Frying a Server Instance
- EKS (Amazon Elastic Container Service for Kubernetes), Compute Resources, Cluster as a Service, Monolithic Stack Using Cluster as a Service
- emergency fix process, An Example Process for Infrastructure as Code with Governance
- encrypting secrets, Encrypting Secrets
- Ensure That You Can Repeat Any Process principle, Principle: Ensure That You Can Repeat Any Process
- entr utility, What Continuous Testing Means
- environment branches, Related patterns
- environments, Building Environments with Stacks-Building Environments with Multiple Stacks
- about, Building Environments with Stacks
- building with multiple stacks, Building Environments with Multiple Stacks
- configuring, Environments, Consistency, and Configuration
- consistency of, Environments, Consistency, and Configuration
- delivery, Delivery Environments
- multiple production, Multiple Production Environments
- patterns for building, Patterns for Building Environments-Related patterns
- Envoy (website), Service Mesh
- ephemeral instances, Challenge: Testing Infrastructure Code Is Slow
- ephemeral test stack pattern, Pattern: Ephemeral Test Stack
- etcd (website), General-purpose configuration registry products
- eventual testing, What Continuous Testing Means
- "Evolutionary Database Design" (Sadalage), Data Schemas and Structures
- execitables, Deployable Parts of an Application
- execution, as a script task, Using Scripts to Wrap Infrastructure Tools
- expand and contract pattern, Expand and Contract-Expand and Contract
- Extreme Programming (XP), Core Practice:
Continuously Test and Deliver
F
- FaaS (Function as a Service)
- Fabric (website), Deploying Applications to Server Clusters
- facade module pattern, Pattern: Facade Module-Related patterns, Related patterns, Related patterns, Related patterns
- Facebook, One Repository for Everything
- Facts and Fallacies of Software Engineering (Glass), Implementation
- failure mode, Planning for Failure
- failure, planning for, Planning for Failure
- "fan-in" pipeline design, Implementation
- Farley, David
- fault tolerance, for multiple production environments, Multiple Production Environments
- FCS (Fictional Cloud Service), The ShopSpinner Examples, Online Image Building Process
- Feathers, Michael
- feature branching, Related patterns
- Feature Flags (see Feature Toggles)
- Feature Toggles, Feature Toggles
- files
- Fission (website), Infrastructure for FaaS Serverless
- 5 Lessons We've Learned Using AWS (website), Chaos Engineering
- FKS (Fictional Kubernetes Service), The ShopSpinner Examples, Parallel Instances
- Flyway (website), Data Schemas and Structures
- Foreman (website), Using a Networked Provisioning Tool to Build a Server
- Fowler, Martin, Domain-Specific Infrastructure Languages, Test Pyramid, Refactor Components So They Can Be Isolated
- framework repository, as a source for servers, Where Things Come From
- Freeman, Steve
- frying server instances, Frying a Server Instance
- FSI (Fictional Server Image), The ShopSpinner Examples, Online Image Building Process
- Function as a Service (FaaS) (see FaaS (Function as a Service))
- functionality, of testing, What Should We Test with Infrastructure?
G
- gateways, Network Resources
- GCE Persistent Disk, Storage Resources
- GDPR (website), Clusters for Governance
- general file storage repository, General file storage repository
- general-purpose configuration registry products, General-purpose configuration registry products
- general-purpose languages, General-Purpose Languages Versus DSLs for Infrastructure
- get_fixture() method, Test Fixtures for Downstream Dependencies
- get_networking_subrange function, Testing variable declarative code
- get_vpc function, Testing variable declarative code
- Gillard-Moss, Peter, Pattern: Immutable Server
- git-crypt (website), Encrypting Secrets
- GitHub, Delivery Pipeline Software and Services, Delivery Pipeline Software and Services
- GitLab, Delivery Pipeline Software and Services
- GitOps (website), Delivery Pipeline Software and Services
- GitOps methodology, Apply Code Continuously
- Given, When, Then format, Challenge: Tests for Declarative Code Often Have Low Value
- GKE (Google Kubernetes Engine), Compute Resources, Cluster as a Service, Monolithic Stack Using Cluster as a Service
- Glass, Robert
- GoCD, Pattern: Pipeline Stack Parameters, Delivery Pipeline Software and Services
- golden images, Creating a Clean Server Image
- "The Goldilocks Zone of Lightweight Architectural Governance", Principle: Minimize Variation
- Google, The Four Key Metrics, One Repository for Everything
- Google Cloud Deployment Manager (website), What Is an Infrastructure Stack?
- Google Cloud Functions, Compute Resources, Infrastructure for FaaS Serverless
- Google Cloud Storage, Storage Resources
- Google Kubernetes Engine (GKE), Compute Resources, Cluster as a Service, Monolithic Stack Using Cluster as a Service
- Google ML Engine, Compute Resources
- governance
- governance specialists
- GPG (website), Implementation
- Growing Object-Oriented Software, Guided by Tests (Freeman and Pryce), Small Changes
H
- hardcoded IP addresses, Service Discovery
- hardware architectures, server images for different, Server Images for Different Hardware Architectures
- HashiCorp, General-purpose configuration registry products
- HCL configuration language, Programmable, Imperative Infrastructure Languages
- Helm (website), Packages for Deploying Applications to Clusters, Using Infrastructure Code to Deploy Applications
- Helm charts, Domain-Specific Infrastructure Languages
- Heroku, Infrastructure Platforms
- high-level infrastructure languages, High-Level Infrastructure Languages
- Highsmith, Jim
- Hirschfield, Rob, Sharing Strategies for Application Clusters
- Hodgson, Pete, Feature Toggles
- Honeycomb, Managing the Risks of Testing in Production
- horizontal groupings, Create Boundaries That Support Scaling
- hostfile entries, Service Discovery
- hot-cloning servers, Hot-Cloning a Server
- HPE Container Platform (website), Packaged Cluster Distribution
- Humble, Jez
- Hunt, Craig
- hybrid cloud, Infrastructure Platforms
I
- IaaS (Infrastructure as a Service), The Parts of an Infrastructure System, Infrastructure Platforms
- idempotency, Declarative Infrastructure Languages
- immediate testing, What Continuous Testing Means
- immutable infrastructure, Immutable Infrastructure
- immutable server pattern, Related patterns, Pattern: Immutable Server-Related patterns, Related patterns
- imperative code, Infrastructure Coding Languages, Declarative Versus Imperative Languages for Infrastructure, Separate Declarative and Imperative Code
- incremental changes, Small Changes
- infrastructure
- application-driven, Cloud Native and Application-Driven Infrastructure
- automation tool registries, Infrastructure automation tool registries
- building projects, Building an Infrastructure Project
- changing live, Changing Live Infrastructure-Conclusion
- cloud native, Cloud Native and Application-Driven Infrastructure, Cloud Native Application Storage Infrastructure
- coding languages (see coding languages)
- delivering, Delivering Infrastructure and Applications
- delivery pipelines, Infrastructure Delivery Pipelines-Delivery Pipeline Software and Services
- dividing into tractable pieces, Challenge: Testing Infrastructure Code Is Slow-Challenge: Testing Infrastructure Code Is Slow
- for builder instances, Infrastructure for the builder instance
- for FaaS serverless, Infrastructure for FaaS Serverless-Infrastructure for FaaS Serverless
- immutable, Immutable Infrastructure
- modularizing, Modularizing Infrastructure-Using a Server in a Stack
- platforms (see platforms)
- resources for, Infrastructure Resources-Network Resources
- safely changing, Safely Changing Infrastructure-Conclusion
- system components of, The Parts of an Infrastructure System
- testing before integration, Testing Infrastructure Before Integrating
- using scripts to wrap tools, Using Scripts to Wrap Infrastructure Tools-Conclusion
- Infrastructure as Code
- infrastructure domain entity pattern, Related patterns, Pattern: Infrastructure Domain Entity
- infrastructure scripting, Infrastructure Scripting
- infrastructure stacks, Configuring Stack Instances-Disposable Secrets, Testing Infrastructure Stacks-Conclusion
- about, What You Can Define as Code, What Is an Infrastructure Stack?
- building environments with multiple, Building Environments with Multiple Stacks
- configuring servers in, Configuring Servers in a Stack
- example, Testing Infrastructure Stacks
- high-level infrastructure languages, High-Level Infrastructure Languages
- life cycle patterns for test instances of, Life Cycle Patterns for Test Instances of Stacks-Related patterns
- low-level infrastructure languages, Low-Level Infrastructure Languages
- offline testing for, Offline Testing Stages for Stacks
- online testing for, Online Testing Stages for Stacks-Outcomes: Proving Infrastructure Works Correctly
- patterns and antipatterns for, Patterns and Antipatterns for Structuring Stacks-Related Patterns
- previewing changes, Preview: Seeing What Changes Will Be Made
- sourc code for, Stack Code
- stack instances, Stack Instance
- infrastructure surgery, Create Boundaries That Support Resilience, Infrastructure Surgery-Infrastructure Surgery
- inotifywait utility, What Continuous Testing Means
- Inspec (website), Verification: Making Assertions About Infrastructure Resources, How to Test Server Code
- integration frequency, Source Code Branches in Workflows
- integration patterns, Source Code Branches in Workflows
- integration registry lookup pattern, Pattern: Integration Registry Lookup-Related patterns
- integration tests, Keeping integration tests within a project
- "Introduction to Observability", Managing the Risks of Testing in Production
- "Inverse Conway Maneuver", Align Boundaries with Organizational Structures
- IP addresses, hardcoded, Service Discovery
- Iron Age, What Is Infrastructure as Code?
- Istio (website), Service Mesh
- iterative changes, Small Changes
K
- Kanies, Luke, Some History of Infrastructure as Code
- Keep Parameters Simple design principle, Configuring Stack Instances
- KeePass (website), Implementation
- Keeper (website), Implementation
- key-value pair, Implementation
- key-value store, Storage Resources, Configuring Stack Instances, General-purpose configuration registry products
- Kim, Gene
- Kitchen-Terraform (website), Test Orchestration Tools
- kops (website), Packaged Cluster Distribution
- Kubeadm (website), Packaged Cluster Distribution
- KubeCan, Parallel Instances
- Kubeless (website), Infrastructure for FaaS Serverless
- Kubernetes, Packaged Cluster Distribution, Pipeline for a Monolithic Application Cluster Stack
- Kubernetes borg (website), Packaged Cluster Distribution
- Kubernetes Clusters, Cluster as a Service
- kubespray (website), Packaged Cluster Distribution
L
- language repository, as a source for servers, Where Things Come From
- Language Server Protocol (LSP), What Continuous Testing Means
- languages (see coding languages)
- LastPass (website), Implementation
- Law of Demeter, Law of Demeter
- layering server images, Layering Server Images
- legacy silos, Align Boundaries with Organizational Structures
- LeRoy, Jonny, Principle: Minimize Variation
- Lewis, James, Single responsibility principle
- libraries, creating stack elements with, Dynamically Create Stack Elements with Libraries
- Lightweight Governance, Principle: Minimize Variation
- Lightweight Resource Provider (LWRP), Server Configuration Code Modules
- Linkerd (website), Service Mesh
- linking, Integrating Projects
- linting, Offline Static Code Analysis
- Liquibase (website), Data Schemas and Structures
- load balancing rules, Network Resources
- local testing, Support Local Testing
- local workstation, applying code from, Applying Code from Your Local Workstation
- Localstack (website), Challenge: Dependencies Complicate Testing Infrastructure, Testing with a Mock API
- locking data, Lock
- LOM (lights-out management), Using a Networked Provisioning Tool to Build a Server
- low-level infrastructure languages, Low-Level Infrastructure Languages
- LSP (Language Server Protocol), What Continuous Testing Means
- Luu, Linda
- LWRP (Lightweight Resource Provider), Server Configuration Code Modules
M
- MAAS (website), Using a Networked Provisioning Tool to Build a Server
- Majors, Charity, Consequences, Testing in Production
- Make Everything Reproducible principle, Principle: Make Everything Reproducible
- manual stack parameters antipattern, Patterns for Configuring Stacks-Related patterns
- Martin, Karen
- McCance, Gavin, Principle: Create Disposable Things
- Mean Time Between Failure (MTBF), Continuity
- Mean Time to Recover (MTTR), Continuity
- Mean Time to Restore (MTTR), The Four Key Metrics
- Meszaros, Gerard
- metrics, for software delivery and operational performance, The Four Key Metrics
- MGs (Google Managed Instance Groups), Compute Resources
- micro stack pattern, Patterns and Antipatterns for Structuring Stacks, Pattern: Micro Stack
- microrepo, A Separate Repository for Each Project (Microrepo)
- Microsoft, One Repository for Everything
- Minimize Variation principle, Principle: Minimize Variation-Configuration Drift
- modularity
- Molecule (website), Test Orchestration Tools
- monitoring
- Monolithic Stack
- monolithic stack antipattern, Patterns and Antipatterns for Structuring Stacks-Related patterns
- monorepo, One Repository for Everything, Implementation, Related patterns
- moto (website), Challenge: Dependencies Complicate Testing Infrastructure
- Mountain Goat Software (website), What Continuous Testing Means
- .msi files, Using Infrastructure Code to Deploy Applications, Packaging Infrastructure Code as an Artifact
- MTBF (Mean Time Between Failure), Continuity
- MTTR (Mean Time to Recover), Continuity
- MTTR (Mean Time to Restore), The Four Key Metrics
- multicloud, Infrastructure Platforms
- multiple configuration registries, Single or Multiple Configuration Registries
- multiple production environments, Multiple Production Environments
- multiple-environment stack antipattern, Antipattern: Multiple-Environment Stack
N
- National Institute of Standards and Technology (NIST), Infrastructure Platforms
- nested stacks, Reuse Declarative Code with Modules
- Netflix, Tools for Building Server Images, Chaos Engineering
- network access rules (firewall rules), Network Resources
- network address blocks, Infrastructure Platforms, Network Resources
- network boundaries, Align Boundaries to Security and Governance Concerns
- Network File System, Storage Resources
- network resources, Network Resources
- networked filesystems (shared network volumes), Storage Resources
- Newman, Sam, Infrastructure Delivery Pipelines
- Nexus (website), Specialized artifact repository
- NFRs (Non-Functional Requirements), What Should We Test with Infrastructure?
- NIST (National Institute of Standards and Technology), Infrastructure Platforms
- Nomad (website), Packaged Cluster Distribution
- nonstandard package, as a source for servers, Where Things Come From
- Normalization of Deviance, Objection: “We must choose between speed and quality”
- NuGet, Packaging Infrastructure Code as an Artifact
O
- O'Reilly (website), Governance in a Pipeline-based Workflow
- obfuscation module antipattern, Antipattern: Obfuscation Module
- object storage, Storage Resources
- observability
- OCI Registry As Storage (ORAS), Specialized artifact repository
- Octopus Deploy (website), Using Infrastructure Code to Deploy Applications
- offline image building, How to Build a Server Image, Offline Image Building Process
- offline testing, Challenge: Testing Infrastructure Code Is Slow, Offline Testing Stages for Stacks
- 1Password (website), Implementation
- one-time passwords, Disposable Secrets
- online image building, How to Build a Server Image, Online Image Building Process-Configuring the builder instance
- online testing, Challenge: Testing Infrastructure Code Is Slow, Online Testing Stages for Stacks-Outcomes: Proving Infrastructure Works Correctly
- Open Application Model (website), Building an Abstraction Layer
- OpenFaaS (website), Infrastructure for FaaS Serverless
- OpenShift (website), Packaged Cluster Distribution
- OpenStack Cinder, Storage Resources
- OpenStack Heat (website), What Is an Infrastructure Stack?
- OpenStack Swift, Storage Resources
- operability, of testing, What Should We Test with Infrastructure?
- operating systems, server images for different, Server Images for Different Operating Systems
- operations services, What You Can Define as Code
- ORAS (OCI Registry As Storage), Specialized artifact repository
- orchestration, as a script task, Using Scripts to Wrap Infrastructure Tools
- organization
- organizational governance, compliance with, Why Build a Server Image?
- OS package repositories, as a source for servers, Where Things Come From
- Osterling, Mike
- outcomes, testing, Outcomes: Proving Infrastructure Works Correctly
- output, as a pipeline stage, Pipeline Stages
- over-investing, Testing in Production
P
- PaaS (Platform as a Service), Infrastructure Platforms, Compute Resources
- packaged cluster distribution, Packaged Cluster Distribution
- packages
- Packer (website), Tools for Building Server Images
- pair programming, What Continuous Testing Means
- Pants (website), Implementation
- parallel instances, Parallel Instances
- parameter files, Consequences
- parameters, handling secrets as, Handling Secrets as Parameters-Disposable Secrets
- Parsons, Rebecca, Domain-Specific Infrastructure Languages
- patching servers, Related patterns
- path to production, Delivery Environments
- path to production branching patterns, Source Code Branches in Workflows
- patterns
- application group stack, Patterns and Antipatterns for Structuring Stacks, Pattern: Application Group Stack
- apply-time project integration, Pattern: Apply-Time Project Integration-Related patterns
- blue-green deployment, Blue-green changes
- build-time project integration, Pattern: Build-Time Project Integration-Related patterns
- bundle module, Related patterns, Pattern: Bundle Module, Related patterns
- canary development, Parallel Instances
- continuous configuration synchronization, Related patterns, Related patterns
- continuous stack reset, Pattern: Continuous Stack Reset
- defined, Principles, Practices, and Patterns
- delivery-time project integration, Pattern: Delivery-Time Project Integration-Related patterns
- ephemeral test stack, Pattern: Ephemeral Test Stack
- expand and contract, Expand and Contract-Expand and Contract
- facade module, Pattern: Facade Module-Related patterns, Related patterns, Related patterns, Related patterns
- for building environments, Patterns for Building Environments-Related patterns
- for configuring stacks, Patterns for Configuring Stacks-Related patterns
- for infrastructure stacks, Patterns and Antipatterns for Structuring Stacks-Related Patterns
- for stack components, Patterns for Stack Components-Related patterns
- immutable server, Related patterns, Pattern: Immutable Server-Related patterns, Related patterns
- infrastructure domain entity, Related patterns, Pattern: Infrastructure Domain Entity
- integration, Source Code Branches in Workflows
- integration registry lookup, Pattern: Integration Registry Lookup-Related patterns
- micro stack, Patterns and Antipatterns for Structuring Stacks, Pattern: Micro Stack
- path to production branching, Source Code Branches in Workflows
- periodic stack rebuild, Pattern: Periodic Stack Rebuild
- persistent test stack, Pattern: Persistent Test Stack
- pipeline stack parameters, Patterns for Configuring Stacks, Related patterns, Pattern: Pipeline Stack Parameters-Related patterns
- pull server configuration, Server Configuration Code, Related patterns, Pattern: Pull Server Configuration
- push server configuration, Server Configuration Code, Related patterns, Pattern: Push Server Configuration
- resource matching, Pattern: Resource Matching-Related patterns
- reusable stack, Pattern: Reusable Stack-Related patterns
- scripted parameters, Patterns for Configuring Stacks, Related patterns, Pattern: Scripted Parameters-Related patterns
- service stack, Patterns and Antipatterns for Structuring Stacks, Pattern: Service Stack-Related patterns
- stack configuration files, Patterns for Configuring Stacks, Pattern: Stack Configuration Files-Related patterns
- stack data lookup, Pattern: Stack Data Lookup-Related patterns, Related patterns
- stack environment variables, Pattern: Stack Environment Variables-Related patterns
- stack parameter registry, Related patterns, Pattern: Stack Parameter Registry-Related patterns, Related patterns
- wrapper stack, Related patterns, Related patterns, Patterns for Configuring Stacks, Pattern: Wrapper Stack-Related patterns
- "Patterns for Managing Source Code Branches" (Fowler), Source Code Branches in Workflows
- PCI standard, Test Doubles for Upstream Dependencies, Clusters for Governance, Align Boundaries to Security and Governance Concerns
- performance
- perimeterless security, Network Resources
- periodic stack rebuild pattern, Pattern: Periodic Stack Rebuild
- persistent instances, Challenge: Testing Infrastructure Code Is Slow
- persistent test stack pattern, Pattern: Persistent Test Stack
- personal infrastructure instances, Personal Infrastructure Instances
- phoenix server, Immutable Infrastructure
- physical servers, Compute Resources
- pipeline stack parameters pattern, Patterns for Configuring Stacks, Related patterns, Pattern: Pipeline Stack Parameters-Related patterns
- pipelines
- PKS (Pivotal Container Services) (website), Packaged Cluster Distribution
- platform elements, Platform Elements Needed for a Stage
- platform registry services, Platform registry services
- platform repository, as a source for servers, Where Things Come From
- platforms, Infrastructure Platforms-Conclusion
- Please (website), Implementation
- Plumi for Teams (website), Applying Code from a Centralized Service
- polycloud, Infrastructure Platforms
- practice, Principles, Practices, and Patterns
- primitives, Infrastructure Resources
- principle, Principles, Practices, and Patterns
- principle of least knowledge (see Law of Demeter)
- principle of least privilege, Network Resources
- The Principles of Product Development Flow (Reinerstein), Reduce the Scope of Change
- production, pushing incomplete changes to, Pushing Incomplete Changes to Production-Feature Toggles
- programmable, imperative infrastructure languages, Programmable, Imperative Infrastructure Languages
- progressive deployment, as a risk of testing in production, Managing the Risks of Testing in Production
- progressive testing, Challenge: Testing Infrastructure Code Is Slow, Progressive Testing-Swiss Cheese Testing Model, Testing Applications with Infrastructure
- project support files, Project Support Files
- projects
- promotion, as a script task, Using Scripts to Wrap Infrastructure Tools
- providers, Using Test Fixtures to Handle Dependencies, Law of Demeter
- provisioning scripts, Consequences
- proxies, Network Resources
- Pryce, Nat
- pull server configuration pattern, Server Configuration Code, Related patterns, Pattern: Pull Server Configuration
- Pulumi, Infrastructure Coding Languages, Programmable, Imperative Infrastructure Languages, What Is an Infrastructure Stack?, Implementation, Infrastructure Surgery
- Puppet, Some History of Infrastructure as Code, Infrastructure Coding Languages, Domain-Specific Infrastructure Languages, Server Configuration Code
- Puppet Cloud Management (website), What Is an Infrastructure Stack?
- PuppetDB (website), Infrastructure automation tool registries
- Puppetmaster, Server Configuration Code
- push server configuration pattern, Server Configuration Code, Related patterns, Related patterns, Pattern: Push Server Configuration
- Python, General-Purpose Languages Versus DSLs for Infrastructure
R
- Rancher RKS (website), Packaged Cluster Distribution
- Rebar (website), Using a Networked Provisioning Tool to Build a Server
- Red Hat Kickstart (website), Creating a New Server Instance, Building a Server Image from Scratch
- refactoring, Refactor Components So They Can Be Isolated, Small Changes
- Refactoring Databases (Ambler and Sadalage), Data Schemas and Structures
- reference data, Deployable Parts of an Application
- registries
- reheating server images, Reheating or Baking a Fresh Image
- Reinerstein, Donald G.
- reloading data, Reload
- replicating data, Replicate
- repositories
- resource matching pattern, Pattern: Resource Matching-Related patterns
- resource tags, Service Discovery
- resources
- reusability
- reusable stack pattern, Pattern: Reusable Stack-Related patterns
- risks, managing for testing in production, Managing the Risks of Testing in Production
- Robert, Mike
- Robinson, David
- roles
- rollback, of code, Manage Your Code in a Version Control System
- routes, Network Resources
- routing, as service mesh service, Service Mesh
- .rpm files, Using Infrastructure Code to Deploy Applications, Packaging Infrastructure Code as an Artifact
- Ruby, General-Purpose Languages Versus DSLs for Infrastructure
- rule of composition, Rule of composition
- rule of three, Implementation
S
- SaaS services, Delivery Pipeline Software and Services
- Sadalage, Pramod
- Salt Cloud (website), What Is an Infrastructure Stack?
- Salt Mine (website), Infrastructure automation tool registries
- Saltstack, Infrastructure Coding Languages, Server Configuration Code, Implementation
- scalability
- scope
- scripted parameters pattern, Patterns for Configuring Stacks, Related patterns, Pattern: Scripted Parameters-Related patterns
- scripts
- SDK (Software Development Kit), Infrastructure Scripting
- SDN (Software Defined Networking), Network Resources
- seam, Drawing Boundaries Between Components
- secretless authorization, Secretless Authorization
- secrets
- security
- security hardening, Why Build a Server Image?
- segregation
- semantic versioning, Versioning a Server Image
- Sentinel (website), Delivery Pipeline Software and Services
- separate material, as a source for servers, Where Things Come From
- separation of concerns, Designing Server Configuration Code Modules
- sero-downtime changes, Zero Downtime Changes
- server clusters, Compute Resources, Deploying Applications to Server Clusters
- server code
- server images
- about, Server Images as Code
- across teams, Providing and Using a Server Image Across Teams
- baking, Baking Server Images, Reheating or Baking a Fresh Image
- build stage for, Build Stage for a Server Image-Build Stage for a Server Image
- building, Building a Server Image-Provenance of a Server Image and its Content
- building from scratch, Building a Server Image from Scratch
- changing, Changing a Server Image-Handling Major Changes to an Image
- configuring, Configuring a New Server Instance
- creating clean, Creating a Clean Server Image
- defined, What You Can Define as Code
- delivery stage for, Delivery Stages for a Server Image
- for different hardware architectures, Server Images for Different Hardware Architectures
- for different infrastructure platforms, Server Images for Different Infrastructure Platforms
- for different operating systems, Server Images for Different Operating Systems
- for different roles, Server Images for Different Roles
- governance and, Layering Server Images
- handling major changes with, Handling Major Changes to an Image
- layering, Layering Server Images
- origin content for, Origin Content for a Server Image-Provenance of a Server Image and its Content
- provenance of, Provenance of a Server Image and its Content
- reheating, Reheating or Baking a Fresh Image
- sharing code across, Sharing Code Across Server Images
- stock, Building from a Stock Server Image
- test stage for, Test Stage for a Server Image
- testing, Using a Pipeline to Test and Deliver a Server Image
- tools for building, Tools for Building Server Images
- using multiple, Using Multiple Server Images-Sharing Code Across Server Images
- using scripts to build, Configuring the builder instance
- versioning, Versioning a Server Image
- server instances
- Server Message Block, Storage Resources
- "Serverless Architecture" (Robert), Infrastructure for FaaS Serverless
- serverless concept, Compute Resources, Infrastructure for FaaS Serverless
- Servermaker, The ShopSpinner Examples, Configuration Drift, Infrastructure Scripting, Configuring Servers in a Stack, Designing Server Configuration Code Modules, Applying Server Configuration When Creating a Server, Configuring the builder instance, Monolithic Stack for a Packaged Cluster Solution
- servers, Building Servers as Code-Conclusion, Managing Changes to Servers-Conclusion
- about, Building Servers as Code, Managing Changes to Servers
- applying server configuration when creating, Applying Server Configuration When Creating a Server
- change management patterns, Change Management Patterns: When to Apply Changes-Related patterns
- configuration code for, Server Configuration Code
- configuration elements, What You Can Define as Code
- configuring in stacks, Configuring Servers in a Stack
- configuring platforms to automatically create, Configuring the Platform to Automatically Create Servers
- deploying applications to, Deploying Applications to Servers
- hot-cloning, Hot-Cloning a Server
- life cycle events, Other Server Life Cycle Events-Conclusion
- patching, Related patterns
- prebuilding, Prebuilding Servers
- recovering failed, Recovering a Failed Server
- roles, What You Can Define as Code, Server Roles, Why Build a Server Image?
- snapshots, Using a Server Snapshot
- source for, Where Things Come From
- using in stacks, Using a Server in a Stack-Using a Server in a Stack
- using networked provisioning tools to build, Using a Networked Provisioning Tool to Build a Server
- using scripts to create, Using a Script to Create a Server
- using stack management tools to create, Using a Stack Management Tool to Create a Server
- what's on, What’s on a Server
- Serverspec (website), How to Test Server Code
- service discovery, Service Discovery
- Service Level Agreements (SLAs), Team Workflows
- Service Level Indicators (SLIs), Team Workflows
- Service Level Objectives (SLOs), Team Workflows
- service mesh, Network Resources, Service Mesh-Service Mesh
- service migration, Parallel Instances
- service stack pattern, Patterns and Antipatterns for Structuring Stacks, Pattern: Service Stack-Related patterns
- shared-nothing architecture, Using a Server in a Stack
- sharing, as reason for modularizing stacks, Building Stacks from Components
- shellcheck (website), Simplifying Wrapper Scripts
- shift left, Shift Left
- ShopSpinner, Avoid duplication-Drawing Boundaries Between Components, Create Boundaries That Support Scaling, Dynamically Create Stack Elements with Libraries, Discovering Dependencies Across Stacks, Implementation, Organize Code by Domain Concept, Integrating Projects, Pattern: Delivery-Time Project Integration-Related patterns, An Example Process for Infrastructure as Code with Governance, Reduce the Scope of Change, Small Changes, Backward Compatible Transformations-Feature Toggles
- sidecar, Service Discovery
- Simian Army, Chaos Engineering
- single configuration registries, Single or Multiple Configuration Registries
- single responsibility principle (SRP), Single responsibility principle
- Site Reliability Engineers (SREs), An Example Process for Infrastructure as Code with Governance
- SLAs (Service Level Agreements), Team Workflows
- SLIs (Service Level Indicators), Team Workflows
- SLOs (Service Level Objectives), Team Workflows
- smell, Separate Declarative and Imperative Code
- Smith, Derek A., Consequences
- snowflake systems, Pitfall: Snowflake Systems
- Software Defined Networking (SDN), Network Resources
- software delivery pipeline, Delivery Pipeline Software and Services-Delivery Pipeline Software and Services
- Software Development Kit (SDK), Infrastructure Scripting
- Solaris JumpStart (website), Creating a New Server Instance, Building a Server Image from Scratch
- some-tool command, Implementation
- sops (website), Encrypting Secrets
- source code branches, in workflows, Source Code Branches in Workflows
- source code repository, Delivery Pipeline Software and Services, Delivering code from a source code repository
- Soylent Green, The People
- Spafford, George
- spaghetti module antipattern, Antipattern: Spaghetti Module-Related patterns
- specialized artifact repository, Specialized artifact repository
- speed
- SREs (Site Reliability Engineers), An Example Process for Infrastructure as Code with Governance
- SRP (single responsibility principle), Single responsibility principle
- stack components, Building Stacks from Components-Conclusion
- stack configuration files pattern, Patterns for Configuring Stacks, Pattern: Stack Configuration Files
- stack data lookup pattern, Pattern: Stack Data Lookup-Related patterns, Related patterns
- stack environment variables pattern, Pattern: Stack Environment Variables-Related patterns
- stack instances
- stack management tools, using to create servers, Using a Stack Management Tool to Create a Server
- stack orchestration script, Implementation
- stack parameter registries, Pattern: Stack Parameter Registry
- stack parameter registry pattern, Related patterns, Pattern: Stack Parameter Registry-Related patterns, Related patterns
- stack paremeters, creating unique identifiers using, Using Stack Parameters to Create Unique Identifiers
- stack tool, Implementation
- Stackmaker, The ShopSpinner Examples
- StackReference (website), Implementation
- State of DevOps Report (see Accelerate State of DevOps Report)
- static code analysis
- storage resources, Storage Resources
- Strangler Application (website), Refactor Components So They Can Be Isolated
- structured data storage, Storage Resources
- Subnet, Infrastructure Platforms
- support, in team workflow, The People
- Swiss Cheese Testing Model, Swiss Cheese Testing Model
- syntax checking, Syntax Checking
T
- Taraporewalls, Sarah, What Should We Test with Infrastructure?
- Taskcat (website), Verification: Making Assertions About Infrastructure Resources
- TCP/IP Network Administration (Hunt), Network Resources
- TDD (Test Driven Development), Core Practice:
Continuously Test and Deliver
- Team City (website), Delivery Pipeline Software and Services
- team workflows, Team Workflows-Conclusion
- technical debt, From the Iron Age to the Cloud Age
- Terra, Reuse Declarative Code with Modules, Implementation
- Terraform, Infrastructure Coding Languages, Programmable, Imperative Infrastructure Languages, Domain-Specific Infrastructure Languages, What Is an Infrastructure Stack?, Stack Code, Implementation, General-purpose configuration registry products, Implementation, Infrastructure Surgery
- Terraform Cloud, Delivery Pipeline Software and Services, Applying Code from a Centralized Service
- terraform fmt command, Offline Static Code Analysis
- terraform mv command, Infrastructure Surgery
- Terraform Registry (website), Tool-specific repository
- Terraform state locking, Applying Code from Your Local Workstation
- Terragrunt (website), Implementation
- Terratest (website), Verification: Making Assertions About Infrastructure Resources, How to Test Server Code
- test doubles, Challenge: Testing Infrastructure Code Is Slow, Test Doubles for Upstream Dependencies
- Test Driven Development (TDD), Core Practice:
Continuously Test and Deliver
- Test Kitchen (website), Test Orchestration Tools
- test pyramid, Test Pyramid-Test Pyramid
- testability, as reason for modularizing stacks, Building Stacks from Components
- testers
- testing
- applications with infrastructure, Testing Applications with Infrastructure
- as a script task, Using Scripts to Wrap Infrastructure Tools
- combinations of declarative code, Testing combinations of declarative code
- cross-project, Cross-Project Tests
- designing and, Use Testing to Drive Design Decisions
- eventual, What Continuous Testing Means
- for downstream dependencies, Test Fixtures for Downstream Dependencies
- immediate, What Continuous Testing Means
- infrastructure before integrating, Testing Infrastructure Before Integrating
- integration, Keeping integration tests within a project
- local, Support Local Testing
- offline, Challenge: Testing Infrastructure Code Is Slow
- online, Challenge: Testing Infrastructure Code Is Slow
- orchestrating, Test Orchestration-Test Orchestration Tools
- outcomes, Outcomes: Proving Infrastructure Works Correctly
- progressive, Challenge: Testing Infrastructure Code Is Slow, Progressive Testing-Swiss Cheese Testing Model, Testing Applications with Infrastructure
- server code, Testing Server Code-How to Test Server Code
- server images, Using a Pipeline to Test and Deliver a Server Image
- using fixtures to handle dependencies, Using Test Fixtures to Handle Dependencies-Refactor Components So They Can Be Isolated
- variable declarative code, Testing variable declarative code
- with mock APIs, Testing with a Mock API
- Testing Infrastructure Code Is Slow challenge, Challenge: Testing Infrastructure Code Is Slow-Challenge: Testing Infrastructure Code Is Slow
- Tests for Declarative Code Often Have Low Value challenge, Challenge: Tests for Declarative Code Often Have Low Value-Testing combinations of declarative code
- tflint (website), Offline Static Code Analysis
- ThoughtWorks, Delivery Pipeline Software and Services
- tight coupling, Avoid Tight Coupling with Pipeline Tools
- timeboxed methodologies, What Continuous Testing Means
- Tinkerbell (website), Using a Networked Provisioning Tool to Build a Server
- tire fire, What Is Infrastructure as Code?
- Tomcat, Designing Server Configuration Code Modules, Antipattern: Apply On Change
- tool-specific repository, Tool-specific repository
- toolmakers
- tools
- traceability, of code, Manage Your Code in a Version Control System
- traffic, testing and, What You Can’t Replicate Outside Production
- transcrypt (website), Encrypting Secrets
- transparency, of code, Core Practice: Define Everything as Code
- TravisCI (website), Delivery Pipeline Software and Services
- trigger, as a pipeline stage, Pipeline Stages
- troubleshooting, as service mesh service, Service Mesh
- Turing-complete languages, Declarative Infrastructure Languages
- twelve-factor methodology (website), Cloud Native and Application-Driven Infrastructure, Data Continuity in a Changing System
- TypeScript, General-Purpose Languages Versus DSLs for Infrastructure
V
- Vagrant (website), Support Local Testing
- validation rules, What You Can Define as Code
- value stream mapping, Who Writes Infrastructure Code?
- Value Stream Mapping (Martin and Osterling), Who Writes Infrastructure Code?
- Vaughan, Diane, Objection: “We must choose between speed and quality”
- VCS (version control system), Manage Your Code in a Version Control System
- versioning
- vertical groupings, Create Boundaries That Support Scaling
- Virtual Private Cloud (VPC), Infrastructure Platforms, Network Resources
- virtual private networks (VPNs), Network Resources
- virtualization technology, Infrastructure Platforms
- visibility, of code, Manage Your Code in a Version Control System
- The Visible Ops Handbook (Kim, Spafford and Behr), Use Infrastructure as Code to Optimize for Change
- Visual Basic for Applications, Choose Tools with Externalized Configuration
- VLANs, Infrastructure Platforms, Programmable, Imperative Infrastructure Languages, Discovering Dependencies Across Stacks
- VMs (virtual machines), Principle: Create Disposable Things, Compute Resources
- VMware, Principle: Create Disposable Things, Infrastructure Platforms, Building Servers as Code, Building a Server Image
- Vocke, Ham, Test Pyramid
- VPC (Virtual Private Cloud), Infrastructure Platforms, Network Resources
- VPNs (virtual private networks), Network Resources
W
- Walking skeleton, Small Changes
- Weave Cloud (website), Packages for Deploying Applications to Clusters, Applying Code from a Centralized Service
- WeaveWorks (website), Delivery Pipeline Software and Services, Applying Code from a Centralized Service
- web server container cluster, Example Infrastructure
- wedged stacks, Consequences
- Willis, John, Some History of Infrastructure as Code
- Windows Containers (website), Packaging Applications in Containers
- Windows installation answer file (website), Creating a New Server Instance, Building a Server Image from Scratch
- Working Effectively with Legacy Code (Feathers), Drawing Boundaries Between Components
- workload percentage, Parallel Instances
- wrapper scripts, simplifying, Simplifying Wrapper Scripts
- wrapper stack pattern, Related patterns, Related patterns, Patterns for Configuring Stacks, Pattern: Wrapper Stack-Related patterns