Application infrastructure vs. application environments: What’s the difference?

PUBLISHED
October 2, 2023
READ TIME
10 min
TOPIC
DevOps

When talking about the cloud resources needed to support activities throughout the application lifecycle the words infrastructure and environment are used interchangeably as if they are describing the same thing. There are distinct differences, and it is important to understand them.  

An infrastructure contains the IT elements chosen to support something (a workload) operating in a designated location. An environment contains IT elements needed to do something (an activity) in a continuous delivery process. Let’s unpack these distinctions a little more …  

Application Infrastructure  

An infrastructure consists of IT elements, (e.g., network, compute, storage, software) and element types (physical, virtual or container) needed to support a workload in the cloud, on-premises or at the edge. Infrastructure is often described as a “stack” given its multiple elements.  

An infrastructure stack can be created manually, using scripts, configuration management tools or with Infrastructure as Code (IaC). Each element in an infrastructure stack is an independent entity brought together in support of the workload objective.  

To create a stack requires skills and knowledge specific to each element type (cloud, virtualization, container). The elements are associated with each other either through the script, infrastructure file or configuration file.  

It is common to see multiple tools and methods including IaC, YAML’s, HELM and scripts, used to define and deliver infrastructure. For example, the tools used by software development may not be used by application testers, release managers or IT operations.   

A key limitation of these tools is they cannot align what they do with an outcome. They do not provide a way to associate with a larger context so there is no way to understand, holistically, what the infrastructure they deploy is being used for what, when, and by who.      

This can create infrastructure automation siloes and fragmentation that bring challenges for support, scalability, change management, governance, accountability, cost, and risk. And for infrastructure practitioners these problems can lead to increasing toil and inefficiencies resulting out of the constant need to respond to break-fix incidents.  

Application Environments 

Consist of all the IT elements needed to support a specific activity (e.g., a stage in a continuous software development process). An environment includes the application, artifacts, the software tools, the data and services, and the infrastructure elements. An environment also includes security policies, secrets, permissions, integrations, resource tagging and context.  

An environment is modelled with purpose ensuring its use is tracked against an outcome. The ability to associate and track usage with a purpose provides visibility into how the environment (and all its’ elements) deliver value, enabling optimization and prioritization.  

The model should provide a clear way to view all the elements and allow it to be easily updated and modified to suit specific needs at different point in the continuous software process. For example, environments used in development, can have subtle changes made, such as the software tools, so the revised infrastructure created by the environment can be immediately leveraged by QA/Test teams.   

Environment platforms should also discover and subsume the files created by infrastructure and configuration management tools. This allows organizations to continue to use the tools they are familiar with. And the added value is that using environments brings far greater usability, sharing, security, resource tracking and standard execution, allowing for far more effective automation.  

Comparison and Differences  

Summary 

Both infrastructure and environments serve valuable purposes. Environments are an evolution of how infrastructure is modelled and implemented, and environments support continuous refinement which important as we evolve our software architectures, DevOps methods and software pipelines.  

Environments accelerate time to value from weeks to minutes compared to traditional infrastructure models and eliminate the scourge of over-provisioning that is an inherent problem with traditional methods. Environments make infrastructure visible and accountable to outcomes which helps us to identify and track the value our investments in infrastructure deliver to the organization. 

To experience the power of Torque first-hand, start a 30-day free trial.  

Sign up here – no credit card required!