Infrastructure as Code
What is Infrastructure as Code?
In traditional IT, a server gets requested from the IT department, and they must spin it up, add storage, add apps, check configuration, and add any additional resources needed. A server cluster for a web app, that is going to take even more time. Infrastructure as Code is an IT management methodology that uses descriptive models, typically JSON, to rapidly deploy technology stacks and cloud resources. While it is critical for development teams working in a DevOps environment, it is also a powerful way to manage any type of infrastructure. Some of the benefits of software-defined infrastructure include:
- Source Control for Resources – Using tools like Azure DevOps, Git.
- Automatic testing
- Elimination of configuration drift
What are ARM Templates?
Azure Resource Manager (ARM) Templates are documents that describe a resource within Azure. That resource can be a virtual machine, storage, database, load balancer, virtual network, etc. The documents, usually in JSON, are declarative, meaning you state “what you intend to create” without having to script the sequence of commands needed to create it, instead you declare the properties of the resource you want to create, and Azure Resource Manager does the rest. This is much easier than automating resource creation through scripted configs, as it eliminates the need to code individual command sand configurations.
ARM templates are incredibly flexible, as they can be written directly in JSON, or they can be built using the Azure Resource Manager interface, Visual Studio, and the Azure Editor. The template then exported to JSON, Powershell, or even Ruby for management and source control. It can then be deployed using Azure, Visual Studio, or Powershell. Additionally, you can release your ARM Templates onto the Azure Marketplace for sale or sharing.
What is Desired State Configuration?
Desired state configuration is a PowerShell based method of configuring resources. DSC consists of three primary components:
- Configurations – Declarative PowerShell scripts that define configurations of resources. When run, they ensure the resource exists in the desired configuration
- Resources – These contain the code that set and maintain the target of a configuration in the desired state.
- Local Configuration Manager- The engine behind DSC. This manages the relationship between the configurations and resources and makes sure that the desired state is maintained. If the configuration changes, the LCM will run the code needed to return the resource to the desired state.
What is Enterprise Scaffolding
Enterprise scaffolding is a set of flexible controls that provide structure to the environment. The scaffold empowers admins to ensure that workloads meet the minimum governance requirement of the organization while still permitting business units to meet their own goals. The best analogy is that it allows you to stock your infrastructure tool shed with the exact tools your organization needs while restricting tools they do not. This can assure that all new resources follow naming conventions, have appropriate security and compliance controls and meet predefined needs.
Watch the Demonstration
Agile IT Tech Talks are a resource for our MSP and CSP clients and feature engineers and solution architects providing introductions to new functions and walkthroughs of best practices combined with a private Q&A to allow our clients to explore how they can be applied in their own environments and organizations. To find out more, schedule a call with a cloud service advisor today.