IAC Service
Infrastructure as Code (IaC)
- Managing and provisioning computer data centers/ infra through code.
 - 
Types
- Declarative
 - Imperative
 
 - 
With ARM templates you can:
- ARM templates are declarative. (you get exactly what you define)
 - stand up, tear down or share entire architectures in minutes
 - Reduce configuration mistakes
 - Establish an architecture baseline for compliance
 - Modularity Break up your architecture in multiple files and reuse them
 - Extensibility Add PowerShell and Bash scripts to your templates
 - Testing You can use the ARM template tool kit (arm-ttk)
 - Preview Changes Before you create infrastructure via template, see what it will create
 - Built-In Validation Will only deploy your template if it passes
 - Tracked Deployments Keep track of changes to architecture over time
 - Policy as Code Apply Azure policies to ensure you remain compliant
 - Microsoft Blueprints (establishes relationship between resource and the template)
 - Cl/CD integration
 - Exportable Code (exporting the current state of a resource groups and resources)
 - Authoring Tools Visual Studio Code has advanced features for authoring ARM templates
 
 
Azure Resource Management
- ARM templates are declarative in nature. You get exactly what you have defined.
 - ARM JSON templates consists of
- Schema
- Describes the proeprties that are available within a template
 
 - Content Version
- Version of the template
 
 - Api Profile
- Use this property to avoid having to provide the API version
 
 - Parameters
- Input parameters such as resource name, location and similar input parameters are generally part of this section.
 - Allows passing of the variables to the ARM templates
 - types of parameters 
- string, securestring, int, bool, object, secureObject and array
 
 
 - Functions 
- Built-in functions on datatypes and other object of ARM template and user defined functions.
 - Variables
- Constants that can be used in the template, these are reusable.
 - Variables can be nested
 
 - Outputs
- Output of the functions, useful when nesting another template
 
 - Resources
- Resources that are to be deployed or updated
 - General sections of the Resource
- type 
- Type of the azure resource, could be a VM or database
 
 - apiVersion
- version of the REST API to use for the resource
 
 - name
 - location
 - other properties
 
 - type 
 
 
 - Schema