DEV Community

Cover image for Fast Overview for Infraestructure as Data
Javier Sepúlveda
Javier Sepúlveda

Posted on

Fast Overview for Infraestructure as Data

Infrastructure as Data (IaD)

Infrastructure as Data (IaD) is basically about defining your infrastructure using structured data files—stuff like YAML or JSON—instead of traditional scripts or config languages that mix in programming logic. No code, just data.

Think of it as an evolution or a tighter subset of "Infrastructure as Code" (IaC). While IaC encompasses any method for managing infrastructure through code, IaD focuses on a purely declarative model.

In another words you declare the desire state of your declarative manifests then let automation systems work. They’ll constantly check and enforce that what’s running matches what you described.

IaD was created to solve this problem through its main mechanism: the reconciliation loop.

The Reconciliation Loop

IaD is primarily implemented in the Kubernetes ecosystem, using its API as a universal control plane.

  1. Definition as Data: You define a cloud resource (a database, a bucket, a network) in a YAML file, as if it were a Kubernetes object.

  2. Active Controllers: Tools such as Crossplane, Config Connector (GCP) or ACK (AWS) install "Controllers" in your cluster.

  3. Continuous Reconciliation: These drivers constantly observe two things: the desired state (your YAML file) and the actual state (in the cloud). If they detect a difference, they automatically take action to bring reality back to match the definition. This loop is perpetual.

This model ensures that any manual changes are reverted, keeping the infrastructure in sync with your Git statement at all times.

Problem Solving: The Limitations of IaC (configuration drift).

Example: If a Engineer make a change of a resource directly in the console for any reason, IaC tools doesn't have the capacity for detect that change, this require an manual execution.

Key Benefits of IaD

Infrastructure as Data (IaD) marks a advancement in how we manage infrastructure, particularly when compared to traditional Infrastructure as Code (IaC) methods. In cloud-native and GitOps contexts, the impact of IaD becomes even more apparent.

  1. Elimination of Configuration Drift: IaD ensures that the actual state of the infrastructure always matches the definition in Git.

  2. Desired states: By leaving out logic, no loops or conditionals in the definition files and focusing only on data, the deployment process becomes much more transparent.

  3. Cognitive Load Reduction: The learning curve and cognitive load for teams already running Kubernetes is reduced, pure YAML/JSON files are inherently easier to read and write.

  4. Permissions Model: Developers or application teams can "request" (claim) standardized infrastructure (ej. "Database") without having direct credentials in the cloud.

  5. Centralization of Security: Platform teams can encapsulate security, compliance and governance best practices within the abstract resource definitions, ensuring that all provisioned infrastructure complies with the organization's policies.

  6. Traceability: All definitions are in Git and changes are applied through an automated system, you get a complete and clear audit trail of all infrastructure changes.

  7. Automation: It aligns perfectly with the GitOps methodology, where any infrastructure change is initiated with a git push, which automates the entire lifecycle.

  8. Modularity and Reusability: It can be created and destroyed with complete confidence and reproducibility,

IaD Tools

This a ecosystem of Infrastructure as Data (IaD) tools that complement each other to leverage this philosophy to the maximum.

The key is that these tools focus on defining resources as declarative data and/or use a reconciliation loop to maintain state.

1. Infrastructure Abstraction and Control Plane (IaD Core)

2. Continuous Delivery (GitOps) for IaD

3. Configuration and Customization Management (IaD Support)

4. Policy and Governance (IaD Policy)

5. Others tools and will continue ...

CONCLUSION

IaD is not just a different way of writing infrastructure, it is a philosophy that boosts reliability, security and agility in cloud infrastructure management by leveraging declarative principles and control loops to maintain the desired state in a continuous and automated manner.

Top comments (0)