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.