Visualizing ARM templates with ARMata

Some time ago I wrote a short post about a tool for visualizing ARM templates called ARMVIZ - while it's perfect for simple scenarios, it lacks more advanced features like toolbox, generating an image of architecture or quick recap of a resource. It also has problems with larger templates, which are barely readable and unfortunately is no longer maintained - at least at this moment. After discussing this problem with a group of Polish developers, we decided, that it'd great to create a new tool with extended functionality, which would take place of ARMVIZ in the future. This is how ARMata project was born.

Technology

ARMata differs greatly since it is no longer a web application - it is built with Electron so basically you can run it whenever Electron works(and since it is cross-platform, it works literally everywhere). Since you're installing it on your computer, it can perform much more advanced actions like editing files on your disk, using hardware acceleration for visualizing a template or interacting with other programs. It comes with automatic updates so you can be always up-to-date with all fresh features.

Open source

Yes - it is open source and completely free - you can take it, use it and modify it without limits. The goal is to create a tool, which is accessible for as many people as possible, eases working with ARM templates(which can be really cumbersome) and speeds up development. What is more - you can help in achieving this goals at any time by reporting bugs, introducing UI changes or coding new features. 

Current status

Currently ARMata is at the beta stage with main functionalities like parsing a template, visualizing it or quick recap of a resource already implemented. There're even more ideas, which will be introduced sooner or later like:

  • live editing of a template
  • toolbox with a possibility to create a template from scratch
  • generating an image from a visualized template so it can be used in documentation

If you'd like to help, we'll be more than happy to welcome you - there's still many thing to do :)

Help your imagination - visualizing ARM templates with ARMVIZ

ARM templates are a great tool when you want to automate provisioning of your environment. They're customizable, somehow flexible, easy to store and modify. What they lack - as many text tools - is a touch of abstraction. Most people are sightseers - that's why it's always a good thing to see what you're doing.

I'll paint this!

ARMVIZ is a free and OSS tool, which will visualize and help to validate your ARM template on a very high level. By saying "high level" I mean, that it helps to understand the structure of a template and basic dependencies rather than underlying relations when it comes to provision resources.

The very first visualization you'll see in ARMVIZ

Working with ARMVIZ

Currently there're two possibilities to work with ARMVIZ - either you open a template stored on your disk or write a new one inside the editor. The former helps to validate whether you have all components inside a template and all dependencies work well, the latter is actually a slightly better option when it comes to write JSON than Visual Studio(especially when VS goes mad while validating a JSON schema).

ARMVIZ suggests possible values but it won't limit them to the ones available for a field

When dependencies are removed from a VM, we can clearly see, that there're some problems with our template

Summary

In current shape ARMVIZ has very limited capabilities and can act only as a quick support when you have a very complicated ARM template. On the other hand, the possibility to write and see it increases your productivity and really helps when you're struggling to understand what is related to what and why.