A Comprehensive Guide to Designing, Deploying and Managing Infrastructure Across Any Cloud
- How This Book Is Organized
- Assumptions and Prerequisites
Introduction
Chapter 1: Why Pulumi - The Case for Programming Languages in Infrastructure
- The Infrastructure as Code Revolution
- Where Domain-Specific Languages Struggle
- Programming Languages as the Missing Piece
- How Pulumi Bridges Cloud and Code
- When Pulumi Fits (and When It Does Not)
Chapter 2: Pulumi Architecture and Execution Model
- The Pulumi Program Lifecycle
- Resource Registration and Dependency Resolution
- The State Engine and Checkpoint Format
- Cloud Providers as First-Class Components
- Language Runtimes and Bridge Design
Chapter 3: Your First Pulumi Project - End-to-End
- Setting Up the Pulumi CLI and Environment
- Initializing a Project and Stack
- Writing Infrastructure in Code
- Inspecting, Updating and Destroying Resources
- Verification and Troubleshooting
- Cleanup Instructions
Chapter 4: Project Organization and Stack Management
- Projects and Stacks: Core Concepts
- Stack Configuration and Environment Variables
- Organizing for Multiple Environments
- Configuration Validation and Strong Typing
- Cross-Stack References and Environment Promotion
Chapter 5: Pulumi’s Type System - Inputs, Outputs and Secrets
- Outputs: Asynchronous Values and Dependency Tracking
- Inputs: Bridging Static Values and Dynamic Dependencies
- Composing Outputs with Map, Apply and All
- Secrets: Encrypted Configuration and Runtime Values
- Type Safety Across Languages
Chapter 6: Resource Model - Options, Dependencies and Provider Control
- Resource Options: Controlling Behavior
- Explicit Dependencies and Dependency Graphs
- Provider Selection and Overrides
- Aliases for Safe Renaming and Restructuring
- Resource Transformations for Cross-Cutting Concerns
Chapter 7: Component Resources and Reusable Abstractions
- What Component Resources Are
- Building Your First Component
- Exporting and Consuming Components
- Packaging Components for Distribution
- Component Design Patterns and Anti-Patterns
Chapter 8: Dynamic Providers for Non-Standard Resources
- When Dynamic Providers Are Appropriate
- Implementing Create, Read, Update and Delete
- Integrating Dynamic Resources into Programs
- Limitations and Alternatives
Chapter 9: Infrastructure as Code Languages - Choosing and Using Your Language
- TypeScript: The Default Choice
- Python: Ecosystem and Dynamics
- Go: Performance and Native Cloud Fit
- C#: Enterprise and Strong Typing
- Java and YAML: Specialized Use Cases
- Choosing Your Language
- Version Baseline and Compatibility
Chapter 10: AWS Infrastructure - Production Patterns
- AWS Provider Configuration and Authentication
- Networking: VPCs, Subnets and Security Groups
- Compute: EC2, Auto Scaling and Load Balancers
- Serverless: Lambda, API Gateway and Event-Driven Patterns
- Managed Databases and Storage Services
Chapter 11: Azure Infrastructure - Production Patterns
- Azure Provider Configuration and Authentication
- Resource Groups and Management Groups
- Networking: VNets, NSGs and Private Endpoints
- Compute: VMs, App Service and Container Instances
- Azure-Specific Managed Services
Chapter 12: Google Cloud Infrastructure - Production Patterns
- GCP Provider Configuration and Authentication
- Projects, Folders and Organizations
- Networking: VPCs, Firewall Rules and Private Services
- Compute: GCE, GKE and Cloud Run
- GCP-Specific Managed Services
Chapter 13: Kubernetes and Container Platforms
- Provisioning Kubernetes Clusters
- Deploying Applications with Pulumi Kubernetes
- Helm Charts and Resource Management
- Multi-Cluster and GitOps Integration
- Service Mesh and Observability
Chapter 14: State Management, Drift and Recovery
- State Backends: Cloud, Self-Managed and DIY
- State Locking and Concurrent Operations
- Importing Existing Resources
- Drift Detection and State Refresh
- Recovery from State Corruption and Partial Failures
Chapter 15: Secrets Management and Security
- Secrets in Configuration
- Secrets Providers: Pulumi Cloud and Custom
- Integrating with Cloud KMS Services
- Runtime Secrets and Credential Handling
- Least-Privilege Patterns for Pulumi Operations
Chapter 16: Policy as Code and Compliance
- Policy as Code Fundamentals
- Writing Enforcement and Advisory Policies
- Integrating Policies into Workflows
- Audit Logging and Compliance Reporting
- Regulatory Frameworks: SOC2, HIPAA, PCI-DSS
Chapter 17: Testing Infrastructure
- Why Test Infrastructure Code
- Unit Testing with Mocks
- Integration and Deployment Testing
- Testing Policies and Constraints
- CI Pipeline Integration
Chapter 18: Deployment Automation and CI/CD
- Pulumi in CI/CD Pipelines
- GitHub Actions Workflows
- GitLab CI and Azure DevOps Integration
- Preview, Approve, Deploy Patterns
- Multi-Environment Promotion Strategies
- Secure Promotion Between Environments
Chapter 19: Multi-Account, Multi-Subscription and Multi-Region
- Multi-Account AWS Architectures
- Multi-Subscription Azure Patterns
- Multi-Region Deployment Strategies
- Centralized Management and Landing Zones
- Cross-Account Networking and Identity
Chapter 20: Multi-Cloud and Hybrid Infrastructure
- Multi-Cloud Motivations and Patterns
- Cross-Cloud Networking and Connectivity
- Identity and Access Across Clouds
- Consistent Abstractions and Provider Strategy
- Failure Scenarios and Resilience
Chapter 21: Platform Engineering with Pulumi
- Platform Engineering and Pulumi
- Building Internal Developer Portals
- Self-Service Infrastructure Patterns
- Golden Paths and Guardrails
- Platform Observability and Governance
Chapter 22: Reliability, Disaster Recovery and Operations
- Designing for Reliability and Recovery
- Blue-Green and Canary Infrastructure Deployments
- Rollback and Rollforward Strategies
- Monitoring and Observability Integration
- Cost Optimization and FinOps Practices
Chapter 23: Pulumi vs. Terraform and Alternatives
- Architecture: Compiled DSL vs. Programming Languages
- State Management Comparison
- Ecosystem and Provider Coverage
- Collaboration, Governance and Scale
- Migration Strategies and Dual-Tool Approaches
Chapter 24: Advanced Patterns and Troubleshooting
- Debugging Resource Graphs and Dependencies
- Interpreting Complex Previews
- Handling Provider Upgrades and Breaking Changes
- Troubleshooting State and Backend Issues
- Performance Tuning for Large Deployments
Chapter 25: Production Reference Architectures
- Reference Architecture 1: Secure Multi-Environment Cloud Foundation
- Reference Architecture 2: Production Web Application Platform
- Reference Architecture 3: Kubernetes Platform with GitOps Delivery
- Reference Architecture 4: Reusable Infrastructure Library and Platform
- Operational Runbook for Reference Architectures