Blog Post

Azure PaaS Blog
3 MIN READ

Compute Platform Versions for Azure API management service

hailey_ding's avatar
hailey_ding
Icon for Microsoft rankMicrosoft
Oct 12, 2021

Background Information: 

 

For Azure API Management (APIM) service users, you may notice that we've been upgrading the API Management compute platform version - the Azure compute resources that host the service - for instance in several service tiers, in order to enhance service capabilities. 

 

This article gives you context about the upgrade from platform version stv1 to stv2, and the major differences between these compute platforms.  The following parts will be explained:

  • Available Compute Platform Versions
  • For APIM already in use, how to find the platform version in use? 
  • For newly created APIM, how to specify the platform version you want (stv1 or stv2)? 
  • Difference between stv1 and stv2 

 

 

Available Compute Platform Versions 

 

Currently, there are 3 platform versions: stv1, stv2, and mtv1.  

 

For consumption tier APIM, the architecture uses App service, and the platform version will be mtv1 only. 

For other tiers (Developer, Basic, Standard, and Premium), there are stv1 and stv2 platform versions. Version stv2 uses Virtual machine scale sets , while stv1 uses Cloud Service (classic). 

 

Version 

Description 

Architecture 

API Management tiers 

stv2 

Single-tenant v2 

Virtual machine scale sets 

Developer, Basic, Standard, and Premium 

stv1 

Single-tenant v1 

Cloud Service (classic) 

Developer, Basic, Standard, and Premium 

mtv1 

Multi-tenant v1 

App service 

Consumption 

 

Reference to Compute platform architecture: https://docs.microsoft.com/en-us/azure/api-management/compute-infrastructure 

 

 

For APIM already in use, how to find the platform version in use? 

 

Starting with API version 2021-04-01-preview, the API Management instance has a read-only PlatformVersion property that shows this platform information.   

 

Example API link: https://docs.microsoft.com/en-us/rest/api/apimanagement/2021-04-01-preview/api-management-service/get#apimanagementservicegetservice 

 

 

 

For newly created APIM, how to specify the platform version you want (stv1 or stv2)? 

 

To better clarify all the scenarios, you can refer to the flow chart below: 

 

 

 

Based on the above chart:

 

1. If you create an APIM without Virtual Networkthe newly created APIM would be VMSS based, which is stv2 PlatformVersion. 

 

2. If you create an APIM within Virtual Network, you can only create a VMSS based APIM(stv2) when all the below requirements have been met: 

  • create the new APIM service using Azure portal, or specifying API version 2021-01-01-preview or later (using Azure REST API, ARM template, etc.) 

3. Otherwise, the newly created APIM would be Cloud Service based, which is stv1 version. 

 

 

Difference between stv1 and stv2 

 

There would be some key differences between stv1 and stv2 when your APIM is deployed in the Virtual Network.  

Version stv2 

Version stv1 

A virtual network  
and subnet in the same region and subscription as your API Management instance.  
The subnet may contain other Azure resources. 

A virtual network and subnet in the same region  
and subscription as your API Management instance.  
Also, the subnet must be dedicated to API Management instances.  

A Standard SKU public IPv4 address. 
The public IP address resource is required when setting up the virtual network for either external or internal access.  

Your own public IP address is  
not required 

Requires service endpoint of: 
1. Azure SQL 
2. Azure Storage 
3. Azure Event Hub 
4. Azure Key Vault 

Requires service endpoint of: 
1. Azure SQL 
2. Azure Storage 
3. Azure Event Hub 

Requires port 443 outbound 
to access Azure Key Vault  

Doesn't require access Azure Key Vault 

Refer to:

Updated Oct 12, 2021
Version 1.0

3 Comments

  • MaximSokoloff's avatar
    MaximSokoloff
    Brass Contributor

    thanks , recently posted this article on the topic - https://sokolovtech.com/paas/79-deploying-azure-api-management-apim-instances-using-stv2-platform-infrastructure-with-terraform

     

  • Hello MaximSokoloff, 

    Across IaC there isn't a means to specifically point to STV1 or STV2.  At the time of this response, any new deployment of API Management will deploy as STV2 unless the following criteria is met:  1) new instance 2) VNET injected 3) set to internal mode 4) deployed without providing an IP address.  

    Please check out our landing zone repo for TF samples:  apim-landing-zone-accelerator/reference-implementations/AppGW-IAPIM-Func/terraform at main · Azure/apim-landing-zone-accelerator · GitHub.  

  • MaximSokoloff's avatar
    MaximSokoloff
    Brass Contributor

    hailey_ding  We are currently leveraging Terraform for our infrastructure service deployments (Australia East region) and have encountered a scenario that we need assistance with.

    In our continuous deployment cycle, when we attempt to roll out new instances of Azure APIMs, they seem to always default to the older 'Version 1' platform. We'd like to ensure that all newly deployed instances utilize the  'STv2' version instead. However, it seems that our current implementation does not provide a method to select the newer 'STv2' platform.

    So, we're seeking guidance: How can we configure our Terraform scripts to make sure that any new instances of Azure APIMs deploy using the 'STv2' version as the default?

    Any specific coding examples, steps, or best practices to follow would be extremely appreciated.

    Thank you for your time and assistance in advance.

    Best regards,