Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreNOTE: this post was written by our friend Kylie Liang (@liangkylie) from the Microsoft Azure Spring Cloud team. Thanks, Kylie!
We are excited to announce the general availability of the Azure Spring Cloud Managed Virtual Network and Autoscale features. Both are critical to securely running production workloads at scale on the Azure Spring Cloud service.
With the Managed Virtual Network feature, you can provision the Azure Spring Cloud service in your virtual network which enables:
Also, we’ve enabled bringing your own route table for custom route management. You can supply subnets that come with attached route tables with UDRs (User-Defined Routes) that govern access to your on-premises system, and outbound internet connections.
For example, if your custom subnet contains a route table when you create an Azure Spring Cloud service instance, Azure Spring Cloud acknowledges the existing route table during service creation and adds/updates rules accordingly. If your custom subnet does not contain a route table, Azure Spring Cloud creates one for you and adds rules to it throughout the service lifecycle.
Figure 1: Azure Spring Cloud in a managed virtual network with custom route table
Azure Spring Cloud also provides self-diagnostics to help you troubleshoot networking connectivity issues such as misconfiguring private DNS zones.
Figure 2: Diagnostics page to diagnose issue such as networking connectivity
Figure 3: Examples of DNS Resolution self-diagnostics
To learn more, get started with Deploy Azure Spring Cloud in a Virtual Network.
With the Azure Spring Cloud Autoscale feature, you can automate the upscaling or downscaling of the application to meet demand at peak times, and scale back when it is not necessary to reduce operational cost. Once Autoscale is enabled, the service will take care of your underlying infrastructure, and the load on your apps.
Figure 4: Metrics with upscaling and downscaling
As some apps are CPU-bound, and others are memory-bound, you can pick up the metric and define scaling rules based on its value. If your traffic always skyrockets at 9am Monday through Friday, you can schedule more aggressive autoscaling targets for the work week.
In Azure Spring Cloud, an App is an abstraction of one business app or one microservice. One version of code or binary deployed as the App runs in a Deployment. You can have one active deployment for production and the other deployment for staging. You can configure the Autoscale setting for each deployment.
Figure 5: Autoscale settings of Azure Spring Cloud App/Deployment
You can learn how to set up Autoscale for Azure Spring Cloud Apps/Deployments. And you also can automate Autoscaling Azure Spring Cloud Apps/Deployments with Terraform. Below is an example.
resource "azurerm_monitor_autoscale_setting" "test" {
name = "acctestautoscale-cz"
resource_group_name = data.azurerm_resource_group.test.name
location = data.azurerm_resource_group.test.location
target_resource_id = azurerm_spring_cloud_java_deployment.test.id
enabled = true
profile {
name = "metricRules"
capacity {
default = 1
minimum = 1
maximum = 2
}
rule {
metric_trigger {
dimensions {
name = "AppName"
operator = "Equals"
values = [azurerm_spring_cloud_app.test.name]
}
dimensions {
name = "Deployment"
operator = "Equals"
values = [azurerm_spring_cloud_java_deployment.test.name]
}
metric_name = "AppCpuUsage"
metric_namespace = "microsoft.appplatform/spring"
metric_resource_id = azurerm_spring_cloud_service.test.id
time_grain = "PT1M"
statistic = "Average"
time_window = "PT5M"
time_aggregation = "Average"
operator = "GreaterThan"
threshold = 75
}
scale_action {
direction = "Increase"
type = "ChangeCount"
value = 1
cooldown = "PT1M"
}
}
}
}
We continue to release new features and your input has been instrumental in shaping them, so please contact us if you have any feedback or questions.