Atlas

Deploying an ARM template with Atlas

Today we’re going to take a look at using Atlas to deploy an Azure Resource Manager (arm) template. Deploying an arm template is a convenient and powerful way to create or modify multiple resources simultaneously on Azure. In this example we’ll be creating a storage account and blob container, but the same Atlas workflow will work for any template.

Upfront it should be said there are already several different ways you can do this. Azure DevOps has tasks which can deploy an ARM template. There are also Azure CLI shell commands and Azure PowerShell cmdlets which can be used to script this kind of scenario. So why would you choose to use Atlas when these options already exist?

I think that question comes down to what you’re trying to do overall. You may have found yourself in a situation where you are writing a lot of scripting code to which runs multiple azure templates intermixed with updating keyvault secrets and uploading customized blob files – all while using the outputs of one step as the parameters for the next. In those situations Atlas would be good to evaluate. It enables you to process complex JSON in a simple declarative manner as you chain together any number of operations.

Continue reading

Atlas

Introducing Atlas – automate anything

This is a topic I’m really excited about. There’s an OSS project named Atlas which came out of our team that has recently been made public. It’s still under development but has hit a usable state. I’ll probably be doing a number of these posts as it goes along.

So – What is Atlas? It revolves around the idea that there are several tasks and procedures involved in setting up a real production system – from CI/CD pipelines to test/staging/production cloud environments – but there isn’t a very solid way we were aware of to capture that setup in a form that could be source controlled and executed, reliably and repeatably, in an unattended fashion.

Yes, there are many command line tools you can script with Bash and PowerShell. And ARM templates are fantastic. But in a lot of cases it still boils down to creating scripts, checked into source control, but at the end of the day are often run from a developer’s workstation. Weeks or months later when it’s time to update something there’s often a problem of dusting those scripts off, figuring out how they are used.

And occasionally if there’s something small to change you’ll just tweak something manually through a web admin interface. That always makes me feel like something’s not quite right, and I always make a mental note when that happens — one of these days that system’s configuration really needs to be source controlled and automated.

Continue reading