dortort.hashnode.devAgentic AI is reintroducing ClickOpsWe spent the better part of a decade eliminating ClickOps. We replaced console dashboards with Terraform modules, SSH sessions with CI/CD pipelines, and ad hoc patches with peer-reviewed pull requests. Infrastructure as Code became the standard becau...2d ago·9 min read
dortort.hashnode.devdgoss: Testing the Container, Not Just the ImageTL;DR Most Docker image “validation” happens either before the image exists (Dockerfile linting/build checks) or without running it (CVE/config scanning, image structure tests). That leaves a practical gap: asserting the built image behaves like the...Jan 8·7 min read
dortort.hashnode.devA Practical Guide to Terraform Dependency ManagementTL;DR Treat Terraform dependency management as two different systems: providers are selected and pinned via .terraform.lock.hcl (repeatable by default), while modules are not pinned by a lock file and can drift over time unless you pin an exact ver...Aug 4, 2025·7 min read
dortort.hashnode.devStop Scripting, Start Architecting: The OOP Approach to TerraformTL;DR The Problem: Terraform codebases often suffer from "sprawl"—copy-pasted resources, tight coupling, and leaky abstractions that make scaling painful. The Solution: Treat Terraform Modules as Classes and Module Instances as Objects. Key Mapping...Jul 2, 2025·6 min read
dortort.hashnode.devWhy GitFlow Fails at InfrastructureTL;DR Applying GitFlow (long-lived feature or environment branches) to Terraform often leads to "State Drift" and fragile pipelines. Unlike application code, Infrastructure as Code (IaC) has a third dimension—State—which cannot be merged via git mer...Jun 4, 2025·5 min read