This document discusses infrastructure as code and infrastructure drift. It begins with definitions and a history of how infrastructure as code started by focusing on having a single source of truth, versioning, documentation through code, testing, collaboration, immutable infrastructure, GitOps, and CI/CD practices. It then notes how infrastructure as code is currently going in reality, with changes happening outside of code, commits not capturing full scope of changes, lack of testing, and other challenges. Existing solutions to manage drift like CI/CD integration, static analysis, testing and policy/compliance tools are briefly mentioned. The document concludes with an introduction to the driftctl open source CLI tool for tracking, analyzing, prioritizing and warning of infrastructure drift.