Evolving Infrastructure-as-Code to Integration-as-Code

High-performing enterprises rely on infrastructure-as-code (IaC) to quickly deliver features and fixes to their customers. IaC is the process of representing and managing software systems and servers’ provisioning and configurations through source code. The ability to predictably recreate your deployed infrastructure from code and understand the configured architecture (because everything is versioned and stored in source control) is one of the key differentiators between slow-moving legacy operators and high-performing cloud-native organizations. Proposed changes and updates can be reviewed and tracked and rolled back if they introduce unexpected behavior. When combined with continuous integration and continuous deployment (CI/CD), infrastructure can be tested and updated faster and more securely, allowing organizations to be more agile and responsive to customers’ requirements. 

As we move further into the cloud-native ecosystem, we evolve past the need for traditional operating systems and into more stateless containerized deployments on Kubernetes. Containers reduce the number of moving pieces so we can focus on the application rather than the operating system. Configuration management is typically imperative, making a request for deployment or configuration to be made on stateful systems; while Kubernetes operates declaratively, enforcing the desired state of services through control loops. Cloud-native users have embraced “as-code” approaches because they increase the speed of shipping ideas efficiently while reducing the risk. Versioned infrastructure allows us to reason over the state and understand the application and service changes in response to updates to the code. 

Once infrastructure started moving out of data centers and into public clouds, software-as-a-service (SaaS) and cloud-provided offerings became attractive alternatives to managing your own versions of undifferentiated applications. Today’s modern cloud-based infrastructures lean heavily on managed offerings for much of the “plumbing” of applications: databases, load balancers, messaging and increasingly specialized offerings. Now, functions-as-a-service and serverless offerings tie infrastructure together, further reducing the need for traditional servers and configuration management.

Embracing Kubernetes and cloud-native services changes the way we think about representing our infrastructure. Rather than concerning ourselves with how systems are configured, we focus instead on how they are connected. Using event-driven architectures can connect applications, data, events and services from cloud, hybrid and on-premises to each other.

IaC has tried to keep pace with the evolution of systems and services, but the future lies in integration-as-code so that all elements are represented as source code that can be versioned, tested, templatized and shared. This will make it easier to deploy and manage integrations while realizing the benefits of versioned source control.

Matt Ray

Matt Ray is the Director of Developer Relations at TriggerMesh. Matt is also the Co-host of the Software Defined Talk podcast with over 4,500 listeners. Previously, Matt held customer architect and community manager positions at Chef Software and Zenoss.

Matt Ray has 1 posts and counting. See all posts by Matt Ray