At, we are deeply committed to developing technologies that blend into our daily routines so effortlessly that their absence seems unimaginable. 

They should become second nature, the de-facto method for doing tasks!

Take Infrastructure as Code (IaC) as a perfect example. This method of managing and provisioning infrastructure through code presents an efficiency and control that surpasses old-school techniques. But, its adoption is not without hurdles. There are manual steps, extensive coding, and configurations that are specific to certain technologies or platforms.

Remember Why Infrastructure as Code (IaC) was born 

IaC was born to address the challenges of manual infrastructure configurations. It provided developers the autonomy needed to manage, monitor, and provision resources — making the software development lifecycle more efficient.

Though many organizations have benefited from IaC, multiple challenges persist, such as:

  • Not every organization possesses the expertise to write IaC as per custom requirements (declarative IaC), requiring a deep understanding of both infrastructure components and coding languages.

  • Poor coding practices can lead to inefficiencies, vulnerabilities, and maintenance issues.

  • Organizations struggle with the modularization of IaC, leading to tightly coupled configurations that are difficult to manage, update, or scale.

At this year's KubeCon in Chicago, we engaged in many enriching conversations with the Ops community about IaC and the challenges it presents. It was there that we got the opportunity to talk about Infrastructure as Catalog (InCa), our open model, tailor-made to address the complexities of IaC. The validation we received for our approach was genuinely motivating for us.

What is Infrastructure as Catalog (InCa)

InCa is Facets' open model that redefines how organizations manage cloud infrastructure. It simplifies complex architecture into a cloud-neutral, declarative catalog. This approach allows users to define their infrastructure needs at a high level, utilizing a unified language. 

This leads to three key outcomes: 

  • Streamlined infrastructure management
  • Enhanced flexibility
  • And effective knowledge-sharing across diverse entities and the broader open-source community.

To put it simply, imagine the process of constructing a house. 

Just as creating a blueprint provides a detailed plan for a house before construction begins, developing a comprehensive blueprint during the software architecture planning phase is equally essential before starting a project. This blueprint serves as a single source of truth, giving everyone involved a clear understanding of the system's design and required components — and offers a complete view of the entire software architecture.

This is the core principle of InCa.

A typical structured overview (like the one given below) provides a foundational catalog to begin with.

Multi-layered architecture

The process of building infrastructure for any product can be visualized as a multi-layered architecture, each layer representing a fundamental aspect of the overall system. 

These layers typically include cloud accounts, networking elements, orchestration processes, and finally, the resources.  

It is at this topmost layer – the resource layer – where the most critical components reside, including application services, databases, caches, and other key elements. 

InCa is strategically designed to operate at this resource layer!

How InCa fits in the IaC puzzle

InCa is about effective communication. It’s a unified language that enables the conceptualization and realization of infrastructure goals seamlessly.

  • Documenting Architecture: By documenting the entire infrastructure architecture in a centralized catalog, InCa promotes collaboration, transparency and ease of reference.
  • Promoting Abstraction: InCa functions as a facilitator for managing services within your infrastructure, such as setting up a MySQL database or a compute instance. Users have the liberty to choose the most appropriate InCa module for their needs, confident that the end result will consistently align with their intended objectives without altering the overarching definitions.
  • Boosting Flexibility: This extended functionality allows you to modify the flavor in your catalog while keeping the core definition intact. For example, if transitioning from an on-premise MySQL database to a cloud-based one, you just need to update it in the catalog.
  • Streamlining Management: Having each resource type defined individually offers its own benefits. It makes the system modular and facilitates easier management, versioning and collaboration.

InCa Use Cases

  • Automated IaC Creation: Utilizing user-defined intents, the catalog can automatically generate Infrastructure as Code (IaC).

  • Audit and Compliance Verification: Users can compare their deployments with the original catalog––aiding in the detection of any discrepancies in the infrastructure, reducing the possibilities of infrastructure drifts.

  • Root Cause Analysis: InCa enhances Root Cause Analysis by integrating data from change management and observability systems, offering deeper insights.

  • Simplified Architectural Visualization: Create streamlined visual representations of your architecture, facilitating more efficient knowledge sharing.

You're invited to contribute!

Infrastructure as Catalog (InCa) is an open model that gets better with help from people like you.

By transforming complex architectures into a cloud-neutral, declarative catalog, InCa not only streamlines infrastructure management but also enhances flexibility and fosters effective knowledge sharing.

As we navigate the complexities of modern technology, initiatives like InCa will provide the essential frameworks that enable organizations to thrive in an evolving landscape.

Want to contribute? Click here.