Infrastructure as Code and Automation - Using Azure Bicep and Azure Pipelines to Reduce Operational Costs of Infrastructure Through Automation - Larsson, Peach; Khatab, Rozgar (My University, 2024)
This report describes the development of infrastructure as code to automate the Azure testing environment of the Information Technology department of the corporation New Wave Group. The primary goal is to reduce the monthly incurred costs of Azure resources by deleting them when not in use and recreating them when in use. A secondary goal is to minimize environmental impact by ensuring that idle resources, hosted in data centers, do not consume energy. Bicep, a domain-specific declarative language was used to encapsulate the existing infrastructure into Bicep files as code. These files were deployed, creating the infrastructure, using an Azure pipeline with YAML scripts. The deletion of resources was managed through a separate pipeline and YAML file. The pipelines for deployments and deletions create an automation cycle to terminate and reinitialize infrastructure. Due to time constraints, this work was conducted as a proof of concept in a sandbox environment and excluded certain resources and resource groups. Testing was performed by manually validating the results of deployments in the sandbox environment. It is recommended that NewWave Group further develop this proof of concept to include all resource groups and resources, especially databases. Automation of databases must comply with legal and ethical requirements such as GDPR. An economic analysis shows that automating the three resource groups in this project and an additional resource group for storage can save New Wave Group approximately 8690 SEK per month. Additional savings are possible by automating the remaining resource groups outside of the scope of this project.
Keywords: ARM; Bicep; Templates; Azure; Automation; IaC; Resources; Pipelines; YAML; Infrastructure