Showing posts with label infrastructure. Show all posts
Showing posts with label infrastructure. Show all posts

Saturday, 22 July 2023

Mapping SQL Database SKU Bicep Specs with Available SKUs in a Region

 How to fnd SKU information for SQL databses is documented here. The command suggested to use is az sql db list-editions -l region -o table . This would provide available list of SQL database SKU optons to chose form for a given region. However, the headings and parameters required in bicep is bit confusing to figure out intially. Let's look at how to map values for available SKUs provided by az sql db list-editions -l region -o table  command, and parmeters in Bicep SKU for SQL database.

Friday, 30 June 2023

Zero Downtime Blue-Green Deployment for AKS with Terraform - Simulation Using a Resource Group with Pipeline Steps

In this post we use a resource group to demo a blue green deployment scenario for AKS with Terraform IaC, to understand the steps required for successful pipline implementation. Same pattern can be applied to deploy other Azure resources well. Instead of two resource groups used here to run demo faster, actual implementation can be two AKS clusters (blue and green) withing a single resource group or in two resource groups. Full pipeline with Terrafrom IaC for AKS blue greeen with application deployments will be dicussed in a future post(s). For now let's loo at the example blue green, using resource group to represent AKS cluster, which is used to validate blue green deployment algorithm for AKS.

Full algorithm test information and terraform files available in below links.

Wednesday, 24 May 2023

Store Azure SignalR Connection String as a Secret in Azure Key Vault with Bicep IaC

  We can create Azure SignalR and Azure key vault as resources using Bicpe IaC (Infrastructure as Code). Setting up of SignalR connection string as a Secret in Azure Key Vault via IaC is important, so that it can be used by applications by refering to key vault secret. Let's look at the steps required to store the Azure SignalR connection string as a secret in Azure key vault with Bicep.

Sunday, 7 May 2023

Create Key Vault Reference in Azure App Config Service with Bicep IaC

 We have discussed "Store Azure Service Bus Connection String  as a Secret in Azure Key Vault with Bicep IaC" previously. Setting such a secret in Azure App configuration service as a key vault reference will help the applications to access the connection string to Azure service bus via the app config service. This is applicable to setting up reference to any secret in Azure key vault, as Azure key vault reference in Azure app configuration service, via Bicep as Infrastructure as Code (IaC). Let's look at the steps required.

Sunday, 30 April 2023

Store Azure Service Bus Connection String as a Secret in Azure Key Vault with Bicep IaC

 We can create Azure Service Bus and Azure key vault as resources using Bicpe IaC (Infrastructure as Code). Setting up of Service Bus connection string as a Secret in Azure Key Vault via IaC is important, so that it can be used by applications by refering to key vault secret. Let's look at the steps required to store the Azure service bus connection string as a secret in Azure key vault with Bicep.

Saturday, 19 November 2022

Resolve "BadRequest message: error: code: InUseSubnetCannotBeDeleted" with Bicep IaC

 Bicep is really simple and easy to implement infrastructure as Code tool for Azure. However, there is a bit of an issue with subnet resource when we try to redeploy. Even without no changes Bicep is trying to delete and create subnet resources and cmplaining a subnet cannot be deleted, because the resources are using it. Let's try to understand the problem and a solution to fix the issue.

Monday, 16 August 2021

User Assigned Managed identity for Azure App Services with Bicep

 We have discussed how we can setup system assigned identity and use it to assign roles in Azure app Config service in the post "Role Assignment with Azure Bicep". IF we are using managed identity as system assigned each of the web app, function app will have different identity and granting permissions in a service such as Azure App Config service would need to add multiple role assignement, assigning each app system assigned managed identity with the required role to read configs. However, if you use a single user assigned identity to all the app service apps, you can use single role assignment in the required service. Let's explore how to create and assign user assigned ident step by step in Azure Bicep infrastructure as code.

Saturday, 7 August 2021

Role Assignment with Azure Bicep

Assigning roles in Azure resource is required step in infrastructure deployments. Azure Bicep supports assigning roles to Azure resources 'Microsoft.Authorization/roleAssignments' resource template. Let's take an example scenario to identify how to setup role assignment.

Friday, 30 July 2021

Passing Array Parameter to Bicep Scrip via Azure DevOps Pipeline

 Bicep infrastructure as code allows us to pass array parameters and write loop structure of script to deploy multiple resources to Azure. we can define json array as parameter value in an Azure DevOps variable to pass it as an array parameter to Bicep using a pipeline. However, it would be more appropriate to define varible values in much simpler way such as specifying ; separated value set which can be converted into a json string as in Azure pipeline before passing it to Bicep script. An example would be list of database names to create in the same Azure SQL elastic pool.

Saturday, 17 July 2021

Running Bicep IaC with GitHub Actions

 We have discussed deploying Bicep script using an Azure DevOps pipeline in a pervious post. We have explored having a approvals working with GitHub actions in the post "Manual Approval in GitHub Actions".  Let's utilize manual approvals and deploy Bicep script with GitHub actions.

Friday, 25 June 2021

Azure Resources with Bicep Using Azure Pipelines

 Bicep is the latest Azure infrastructure as code (IaC) language introduced by Microsoft. We have discussed about getting  started with Bicep in the post "Azure Infrastructure as Code (IaC) with Bicep - Getting Started with Development".  Let's look at how to implement an Azure pipeline to deploy infrastructure to Azure with Bicep in this post.

Saturday, 19 June 2021

Passing Output Parameters from Bicep Modules

 We have discussed about deploying resources to a resource group using Azure Bicep in the post "Azure Infrastructure as Code (IaC) with Bicep - Creating Resources in Resource Group". If we are referring a resource created via a module in another module, we might have to pass identification of such resources as output parameters from a module. Let's learn how to pass output parameters in Bicep modules and use them in other resources in this post.

Saturday, 29 May 2021

Azure Infrastructure as Code (IaC) with Bicep - Creating Resources in Resource Group

 We have discussed getting started with Bicep and creating a resource group with Bicep script scoped to a subscription in the post "Azure Infrastructure as Code (IaC) with Bicep - Getting Started with Development". Once a resource group is created we can start deploying resources in the resource group with Bicep. In this post let's explore the strategy we can use to deploy resources to a a resource group created with Bicep.

Saturday, 22 May 2021

Resolving "The deployment 'main' already exist" error in Bicep

 We have started exploring the Bicep language for Azure infrastructure automation with the post "Azure Infrastructure as Code (IaC) with Bicep - Getting Started with Development". However, as practice if you use the name main.bicep for the infrastructure template main file, you might run into error "The deployment 'main' already exist" in another infrastructure project where you are using the same main.bicep name. This is because of the way we have executed the deployment command.

Saturday, 15 May 2021

Azure Infrastructure as Code (IaC) with Bicep - Getting Started with Development

 Bicep is the latest declarative IaC tool from Microsoft for Azure, which is built on top of Azure Resource Manager (ARM) templates. Bicep offers you the ability to deploy even preview resources on Azure as it is always will be the most up to date IaC declarative tool Azur. Bicep convertors to into ARM JSON for execution. We have seen how to setup development environment for Bicep in windows in the post here. In this post let's get started with developing Bicep code to deploy infrastructure to Azure.

Saturday, 8 May 2021

Azure Infrastructure as Code (IaC) with Bicep - Setup Development Environment

 Bicep is the latest infrastructure as code solution released by Microsoft to develop and deploy resources to Azure cloud. Bicep is built on top of Azure resource manager templates (ARM) simplifying the development by introducing a declarative syntax to define infrastructure resources. Bicep converts into ARM templates JSON before execution. Let’s begin with setting up a development environment for Bicep.

Thursday, 18 March 2021

Deploying Azure Resource Group with Ansible Play Book Using Custom Ubuntu 18.04 VM

In a previous post we have discussed how to setup Ansible on Azure Ubuntu 18.04 VM. We can start using Ansible and execute play books to deploy Infrastructure on Azure cloud. Let’s look at how we can get started with deploying resources to Azure using an Ansible playbook, on the VM we created with Ansible as explained in the post “Install Ansible to Use Python3 on Azure Ubuntu 18.04 VM”.

Saturday, 19 September 2020

Azure Terraform Infra as Code Deployment via Custom PowerShell with Azure DevOps Pipelines – Part 2 – Execute Plan with Approval

In the previous post “Azure Terraform Infra as Code Deployment via Custom PowerShell with Azure DevOps Pipelines – Part 1 – Create Plan” we have discussed how to generate a terraform plan targeting Azure Infrastructure deployment and upload it to an Azure Git repo. The solution is implemented instead of using terraform task for Azure DevOps, which is available with Microsoft DevLabs extension due to it is having a prerequisite of Azure resource group, storage etc. as described in the post “Why Azure DevOps Terraform Extension Task by Microsoft DevLabs to Deploy Infra to Azure Does Not Work for Me”. As the second part of previous post, let’s explore the steps require to approve the terraform plan and get the plan executed with Azure DevOps pipeline relying on a state kept in Azure Git repo instead of a storage blob, which is eliminating the need of having manually created Azure resources.

Friday, 4 September 2020

Why Azure DevOps Terraform Extension Task by Microsoft DevLabs to Deploy Infra to Azure Does Not Work for Me

Terraform is used as declarative code for infrastructure deployments on multiple cloud platforms including Azure. Azure DevOps provides capability to execute Infrastructure as code (IaC), with CI/CD pipelines, by using tasks added with the extension by Microsoft DevLabs (https://marketplace.visualstudio.com/items?itemName=ms-devlabs.custom-terraform-tasks) available in the marketplace. The terraform task to plan or apply a terraform plan demands to have reources in Azure such as a resource group, storage account, container and a key (terraform state file path). Similar demands are there for even AWS and GCP for when using the task.

Friday, 21 August 2020

Getting Started with Terraform for Azure in Windows 10

Terraform is a great way to setup infrastructure as code (IaC) for Azure. Terraform helps us to codify and version control our infrastructure needs in multiple platforms, hence, making learning terraform for IaC for Azure would let an individual to easily get adapted to other platforms such as AWS. IN this post let’s have a quick look at preparing a Windows 10 machine to get started with terraform.

Popular Posts