Get started learning about Azure without installing any SDKs or tooling. Instead, let’s use curl to try out the Azure REST API. The az cli, Powershell commandlets, and Azure SDKs all use the REST API, so knowledge of the REST API can help us understand what’s going on under the hood. Note that I tested…… Continue reading Get started with Azure using only curl
Rerun extensions in Azure
It is often useful to rerun an extension deployed to a VM or scale set in Azure. To do this, it seems logical to try deploying the extension again with the same configuration (or “Update” the extension with the same configuration). However, when a deployment or update happens in Azure, the platform only changes the…… Continue reading Rerun extensions in Azure
Autoscaling Scale Sets Based on Metrics
When our service sees a spike in usage, it is very convenient for our infrastructure to be able to automatically scale to meet this demand. Azure allows us to do this by autoscaling our scale sets (and other resources). There multiple ways to trigger automatic scaling events: by metrics, by recurrence, and by fixed date.…… Continue reading Autoscaling Scale Sets Based on Metrics
Changing Admin Credentials of VMs and Scale Sets
Disclaimer For security purposes, please validate any and all descriptions in this blog post about what credentials are/aren’t removed when resetting credentials. This blog post merely observes the behavior of the platform at a specific point in time and will not necessarily be kept up to date with changes in the platform. I take no…… Continue reading Changing Admin Credentials of VMs and Scale Sets
Custom vs. Platform Images for Scale Sets
Scale sets can be deployed from “custom” OS images created by the user, or from “platform” images that are built into Azure (these “platform” images are also called “marketplace” images; there are some distinctions between platform and marketplace images, but let’s ignore these for now). In this post, we discuss the pros and cons of…… Continue reading Custom vs. Platform Images for Scale Sets
Conditionals in ARM Templates
ARM templates allow us to deploy groups of related resources in a declarative way; just specify the desired end state in the template, and the Azure Platform will create the resources for us. Even better, when we need to update our resources, we can simply modify the ARM template and redeploy. Azure will find the…… Continue reading Conditionals in ARM Templates
Scale Sets and Load Balancers
Scale sets provide scalable, highly-available compute, but compute in a vacuum is not useful in most cases. It is often necessary to have an additional component route traffic to the VMs in the scale set. Highly-available, platform-managed load balancers like the Azure Load Balancer and Azure Application Gateway can route traffic to scale set VMs…… Continue reading Scale Sets and Load Balancers
Reimaging VMs in a Scale Set
Occasionally, a VM in a scale set may end up in a bad state. In these cases, we may wish to try to fix the specific VM having a problem, or we may wish to delete the offending VM and bring up a new one in its place. As a sort of middle ground, we…… Continue reading Reimaging VMs in a Scale Set
Updating a Scale Set
Scale sets are a great tool for large-scale computation, but it is not always intuitive how to update a scale set (hint: there’s more than one way!). In this post, we’ll discuss the multiple ways to update a scale set and when each method is used. Background – PUT/PATCH vs. POST APIs Azure APIs generally…… Continue reading Updating a Scale Set
High Availability On Azure
If your app is hosted on a single virtual machine, this virtual machine is a single point of failure. This means that any single thing that goes wrong on this machine (hardware failure, networking blip, etc.) can cause your app to fail completely. To avoid this, Azure offers components that allow you to build a…… Continue reading High Availability On Azure