Infrastructure
Infrastructure as Code and platform best practices
Best Practices
Terraform Module Design Patterns
Guidelines for writing reusable, versioned, and documented Terraform modules.
by HashiCorpImmutable Infrastructure
An operations model where servers and components are never modified after deployment; changes ship as freshly built, versioned replacements rather than in-place edits.
by HashiCorpCapacity Planning
Forecasting future demand and provisioning resources ahead of need, combining organic growth, launches, and headroom to avoid both outages and waste.
by Google SREPatterns
Sidecar Pattern
Deploy auxiliary components alongside primary services for cross-cutting concerns
Fail Safe
Designs a system so that when a component fails it falls into a safe, known default state rather than an unsafe or undefined one.
Heartbeat
Has a component emit periodic signals so observers can detect when it has failed or become unreachable within a bounded time.
Health Check
Exposes endpoints that report whether a service is alive and ready to serve, enabling orchestrators and load balancers to route traffic only to healthy instances.
Watchdog
An independent supervisor that monitors a system or process and takes corrective action — restart, alert, or failover — when it stops responding.
Tutorials
Setting Up a Local Kubernetes Cluster
Create a local Kubernetes development environment with kind or minikube
Infrastructure as Code with Terraform on AWS
Define and provision AWS infrastructure using Terraform
How to provision an AWS VPC with Terraform
Write Terraform configuration to create a VPC, subnets, and routing, then apply and destroy it safely.
How to write a reusable Terraform module
Package infrastructure into a Terraform module with variables and outputs so it can be reused across environments.
How to configure Terraform remote state with locking
Store Terraform state in a remote backend with state locking so a team can collaborate without corrupting state.
How to manage infrastructure with OpenTofu
Install OpenTofu and run the init, plan, and apply workflow as a drop-in, open-source alternative to Terraform.
How to provision cloud infrastructure with Pulumi
Define cloud resources in a general-purpose programming language using Pulumi and deploy them with up and destroy.
How to scan infrastructure-as-code for misconfigurations in CI
Add automated IaC security scanning to CI to catch insecure Terraform and Kubernetes configuration before it ships.
Checklists
Datacenter Exit Cutover Checklist
Plan and execute the final cutover and decommission steps when exiting an on-premises datacenter for the cloud.
Disaster Recovery Test Checklist
Plan and run a disaster-recovery test that proves backups, runbooks, and recovery objectives actually work end to end.
VM-to-Cloud Cutover Checklist
Execute a safe cutover when rehosting on-premises virtual machines to cloud compute with minimal downtime.
Terraform Module Review Checklist
Review a Terraform module for correctness, reusability, security, and maintainability before publishing it for shared use.
Infrastructure-as-Code Migration Readiness Checklist
Confirm you are ready to bring an existing manually managed cloud estate under infrastructure-as-code without disruption.
Infrastructure as Code Review Checklist
Review Terraform or equivalent IaC for security, modularity, state safety, and reproducibility before it provisions production.
Disaster Recovery Readiness Checklist
Confirm an organization can recover critical services and data within defined objectives after a major failure.
Technology Stacks
Cloud Native Stack
Kubernetes, Helm, Istio, Prometheus - CNCF ecosystem
HashiCorp Stack (Terraform + Vault + Consul + Nomad)
Cloud-agnostic infrastructure suite: Terraform provisions, Vault manages secrets, Consul handles service networking, and Nomad schedules workloads.
Vault + Consul
A HashiCorp infrastructure stack pairing Vault for secrets management and dynamic credentials with Consul for service discovery, configuration, and service mesh.
FAQs
What is infrastructure as code?
Infrastructure as code (IaC) is the practice of defining and provisioning infrastructure, such as servers, networks, and databases, through machine-readable configuration files rather than manual setup. Declarative tools like Terraform and AWS CloudFormation describe the desired end state, while imperative tools specify the steps to reach it. IaC makes infrastructure versionable, repeatable, reviewable, and testable, reducing configuration drift and manual error. It is a foundation of modern DevOps and reliable cloud operations.
Benchmarks
SPEC CPU 2017
Industry-standard CPU benchmark suite measuring integer and floating-point compute performance under realistic, compute-bound workloads.
CoreMark
Compact, portable CPU benchmark from EEMBC designed to measure embedded and microcontroller core performance with a single comparable number.
Dhrystone
Classic synthetic integer benchmark that produces DMIPS, a historical and still-cited measure of general-purpose integer CPU performance.
Whetstone
Historic synthetic floating-point benchmark measuring scientific-style arithmetic performance, reported in MWIPS (millions of Whetstone instructions per second).
STREAM
Simple, portable benchmark measuring sustainable main-memory bandwidth for large vector operations, the standard metric for memory-bound performance.
Geekbench
Cross-platform benchmark measuring single-core and multi-core CPU performance plus GPU compute, widely used to compare phones, laptops, and servers.
LINPACK / HPL
Dense linear-algebra benchmark solving a large system of equations to measure peak floating-point throughput; HPL ranks the TOP500 supercomputers.
fio Storage I/O Benchmark
Flexible I/O tester for measuring storage device and filesystem performance across configurable read/write patterns, block sizes, and queue depths.
Phoronix Test Suite
Open-source, cross-platform benchmarking framework that automates hundreds of real-world tests and aggregates results for reproducible comparison.
Cold-Start Latency Benchmark
Measures the added latency when a serverless function or container must initialize from scratch before serving its first request after being idle.
SPECpower_ssj2008
Benchmark measuring server energy efficiency by reporting performance per watt across graduated load levels from idle to peak.
SPEC OMP 2012
Benchmark suite measuring shared-memory parallel performance of OpenMP applications across scientific and engineering workloads.
HPCG
High Performance Conjugate Gradients benchmark measuring HPC system performance on memory-bound, sparse computations that mirror real applications.
HPL-AI / HPL-MxP
Mixed-precision LINPACK variant measuring supercomputer performance using low-precision arithmetic refined to full accuracy, reflecting AI hardware.
Graph500
Benchmark ranking supercomputers on data-intensive graph processing, measuring traversed edges per second instead of floating-point throughput.
GAP Benchmark Suite
Reference graph-algorithm benchmark suite providing optimized kernels and standard graphs to fairly compare graph-processing performance.
SPECviewperf
Standard benchmark measuring professional graphics-workstation performance running real CAD, visualization, and content-creation application viewsets.
3DMark
Cross-platform graphics benchmark suite measuring GPU and gaming performance through standardized rendering tests and synthetic feature tests.
Unigine Superposition
GPU stress and benchmark tool using a detailed real-time scene to measure graphics performance, stability, and thermal behavior.
PassMark PerformanceTest
Whole-system PC benchmark suite measuring CPU, memory, disk, 2D, and 3D performance and aggregating them into comparable component scores.
UnixBench
Classic Unix and Linux system benchmark measuring overall performance through CPU, process, file I/O, and system-call tests aggregated into an index.
sysbench CPU Benchmark
CPU test mode of the sysbench tool measuring processor throughput via prime-number computation across single and multiple threads.
stress-ng
Configurable stress-test and micro-benchmark tool that loads CPU, memory, I/O, and kernel subsystems through hundreds of targeted stressors.