Tagging Platform Resources: Azure Synapse as Example

This post, which is a follow-up to an earlier article, “Azure Synapse Analytics: Do Your Homework!”, is about understanding how tagging is applied to platform services, using Azure Synapse Analytics as an example.

Let’s start this by reviewing the FinOps Lifecycle, as visually expressed in this FinOps Foundation graphic:

FinOps Lifecycle
FinOps Lifecycle from the FinOps Foundation

Applying tags to your Azure resources is a critical part of the inform phase of the lifecycle because it enables the unlocking of business relevant insight from cloud spending data. Without tags, the cost data streaming to the bill is (from a business perspective) an undifferentiated mass of technologies generating cost without context.

The Challenge of Tagging Platform Services

With Infrastructure as a Service offerings, such as virtual machines, the tagging model is relatively simple. VMs can be tagged as part of a solution deployed for projects, departments or lines of business and typically host single applications that can be traced via chargeback and showback to specific business units:

azure virtual machine tagging
Multi-level Tags Applied to a VM and Database

Now let’s consider how tags are applied to a platform service such as Azure Synapse Analytics, which Microsoft describes as:

Azure Synapse is an enterprise analytics service that accelerates time to insight across data warehouses and big data systems. Azure Synapse brings together the best of SQL technologies used in enterprise data warehousing, Spark technologies used for big data, Data Explorer for log and time series analytics, Pipelines for data integration and ETL/ELT, and deep integration with other Azure services such as Power BI, CosmosDB, and AzureML.

What is Azure Synapse Analytics? – https://docs.microsoft.com/en-us/azure/synapse-analytics/overview-what-is

Synapse’s capabilities are often used as a common analytical resource by several departments, projects and lines of business, complicating the work of attributing cost to the correct business unit (not only for charge and show back but also, to correctly assess alignment of Azure usage with revenue and budget targets).

Consider this graphic, which shows how tags are allocated to Synapse:

azure synapse analytics tagging

From a Synapse architectural perspective, the workspace is the central organizational artifact; cost generating resources such as storage and database pools are associated with a workspace and inherit the tags applied at the workspace level (these resources are deployed within a managed resource group, created to host them).

Planning for Multi-use

With Synapse’s structure in-mind, your responsibility, from a FinOps point of view, is to determine how best to architect usage and tagging so consumption insights are available (and of course, to optimize that use). If, for example, you applied multiple tags, representing the various departments using a Synapse instance to a single Workspace, it might be possible to parse usage by individual line of business but this would be a very complex task.

It might make more sense, taking your use-cases into account, to deploy multiple workspaces – one per line of business (with databases and other elements) tagged by business unit, project, etc. as business elements.

Is There An Easy Answer?

Unfortunately, there’s no cut and dried way to approach this topic. There is however, a doctrine that can guide your efforts:

  • Platform services are tagged differently from IaaS
  • Understanding the functional architecture of the platform is key to understanding how to apply tags
  • Analyze the service to determine the best method for calculating the fractional use of a platform by different projects, lines, of business, etc.
%d bloggers like this: