You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*App* and *Deployment* are the two key concepts in the resource model of Azure Spring Apps. In Azure Spring Apps, an *App* is an abstraction of one business app. One version of code or binary deployed as the *App* runs in a *Deployment*. Apps run in an *Azure Spring Apps service instance*, or simply *service instance*, as shown next.
22
22
23
-
:::image type="content" source="./media/spring-cloud-app-and-deployment/app-deployment-rev.png" alt-text="Diagram showing the relationship between the apps and deployments." border="false":::
23
+
:::image type="content" source="media/concept-understand-app-and-deployment/app-deployment-rev.png" alt-text="Diagram showing the relationship between the apps and deployments." border="false":::
24
24
25
25
You can have multiple service instances within a single Azure subscription, but the Azure Spring Apps Service is easiest to use when all of the Apps that make up a business app reside within a single service instance. One reason is that the Apps are likely to communicate with each other. They can easily do that by using Eureka service registry in the service instance.
Copy file name to clipboardExpand all lines: articles/spring-apps/concepts-blue-green-deployment-strategies.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,27 +30,27 @@ Suppose your application has two deployments: `deployment1` and `deployment2`. C
30
30
31
31
This makes `deployment2` the staging deployment. Thus, when the Continuous Delivery (CD) pipeline is ready to run, it deploys the next version of the app, version `v4`, onto the staging deployment `deployment2`.
32
32
33
-

33
+

34
34
35
35
After `v4` has started up on `deployment2`, you can run automated and manual tests against it through a private test endpoint to ensure `v4` meets all expectations.
36
36
37
-

37
+

38
38
39
39
When you have confidence in `v4`, you can set `deployment2` as the production deployment so that it receives all production traffic. `v3` will remain running on `deployment1` in case you discover a critical issue that requires rolling back.
40
40
41
-

41
+

42
42
43
43
Now, `deployment1` is the staging deployment. So the next run of the deployment pipeline deploys onto `deployment1`.
44
44
45
-

45
+

46
46
47
47
You can now test `V5` on `deployment1`'s private test endpoint.
48
48
49
-

49
+

50
50
51
51
Finally, after `v5` meets all your expectations, you set `deployment1` as the production deployment once again, so that `v5` receives all production traffic.
52
52
53
-

53
+

54
54
55
55
### Tradeoffs of the alternating deployments approach
56
56
@@ -64,7 +64,7 @@ The staging deployment always remains running, and thus consuming resources of t
64
64
65
65
Suppose in the above application, the release pipeline requires manual approval before each new version of the application can receive production traffic. This creates the risk that while one version (`v6`) awaits manual approval on the staging deployment, the deployment pipeline will run again and overwrite it with a newer version (`v7`). Then, when the approval for `v6` is granted, the pipeline that deployed `v6` will set the staging deployment as production. But now it will be the unapproved `v7`, not the approved `v6`, that is deployed on that deployment and receives traffic.
You may be able to prevent the race condition by ensuring that the deployment flow for one version can't begin until the deployment flow for all previous versions is complete or aborted. Another way to prevent the approval race condition is to use the Named Deployments approach described below.
70
70
@@ -74,15 +74,15 @@ In the named deployments approach, a new deployment is created for each new vers
74
74
75
75
In the illustration below, version `v5` is running on the deployment `deployment-v5`. The deployment name now contains the version because the deployment was created specifically for this version. There's no other deployment at the outset. Now, to deploy version `v6`, the deployment pipeline creates a new deployment `deployment-v6` and deploys app version `v6` there.
76
76
77
-

77
+

78
78
79
79
There's no risk of another version being deployed in parallel. First, Azure Spring Apps doesn't allow the creation of a third deployment while two deployments already exist. Second, even if it was possible to have more than two deployments, each deployment is identified by the version of the application it contains. Thus, the pipeline orchestrating the deployment of `v6` would only attempt to set `deployment-v6` as the production deployment.
80
80
81
-

81
+

82
82
83
83
After the deployment created for the new version receives production traffic, you'll need to remove the deployment containing the previous version to make room for future deployments. You may wish to postpone by some number of minutes or hours so you can roll back to the previous version if you discover a critical issue in the new version.
84
84
85
-

85
+

Copy file name to clipboardExpand all lines: articles/spring-apps/how-to-cicd.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,7 +119,7 @@ To deploy using a pipeline, follow these steps:
119
119
120
120
Your pipeline settings should match the following image.
121
121
122
-
:::image type="content" source="media/spring-cloud-how-to-cicd/pipeline-task-setting.jpg" alt-text="Screenshot of pipeline settings." lightbox="media/spring-cloud-how-to-cicd/pipeline-task-setting.jpg":::
122
+
:::image type="content" source="media/how-to-cicd/pipeline-task-setting.jpg" alt-text="Screenshot of pipeline settings." lightbox="media/how-to-cicd/pipeline-task-setting.jpg":::
123
123
124
124
You can also build and deploy your projects using following pipeline template. This example first defines a Maven task to build the application, followed by a second task that deploys the JAR file using the Azure Spring Apps task for Azure Pipelines.
125
125
@@ -189,7 +189,7 @@ The following steps show you how to enable a blue-green deployment from the **Re
189
189
1. Add a new pipeline, and select **Empty job** to create a job.
190
190
1. Under **Stages** select the line **1 job, 0 task**
191
191
192
-
:::image type="content" source="media/spring-cloud-how-to-cicd/create-new-job.jpg" alt-text="Screenshot of where to select to add a task to a job." lightbox="media/spring-cloud-how-to-cicd/create-new-job.jpg":::
192
+
:::image type="content" source="media/how-to-cicd/create-new-job.jpg" alt-text="Screenshot of where to select to add a task to a job." lightbox="media/how-to-cicd/create-new-job.jpg":::
193
193
194
194
1. Select the **+** to add a task to the job.
195
195
1. Search for the **Azure Spring Apps** template, then select **Add** to add the task to the job.
@@ -205,7 +205,7 @@ The following steps show you how to enable a blue-green deployment from the **Re
205
205
1. Navigate to the **Azure Spring Apps Deploy** task in **Stage 1**, then select the ellipsis next to **Package or folder**.
206
206
1. Select *spring-boot-complete-0.0.1-SNAPSHOT.jar* in the dialog, then select **OK**.
207
207
208
-
:::image type="content" source="media/spring-cloud-how-to-cicd/change-artifact-path.jpg" alt-text="Screenshot of the 'Select a file or folder' dialog box." lightbox="media/spring-cloud-how-to-cicd/change-artifact-path.jpg":::
208
+
:::image type="content" source="media/how-to-cicd/change-artifact-path.jpg" alt-text="Screenshot of the 'Select a file or folder' dialog box." lightbox="media/how-to-cicd/change-artifact-path.jpg":::
209
209
210
210
1. Select the **+** to add another **Azure Spring Apps** task to the job.
211
211
1. Change the action to **Set Production Deployment**.
Copy file name to clipboardExpand all lines: articles/spring-apps/how-to-configure-enterprise-spring-cloud-gateway.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -390,7 +390,7 @@ The following list shows the options available for Autoscale demand management:
390
390
391
391
On the Azure portal, choose how you want to scale. The following screenshot shows the **Custom autoscale** option and mode settings:
392
392
393
-
:::image type="content" source="media/spring-cloud-autoscale/custom-autoscale.png" alt-text="Screenshot of the Azure portal that shows the Autoscale setting page with the Custom autoscale option highlighted." lightbox="media/spring-cloud-autoscale/custom-autoscale.png":::
393
+
:::image type="content" source="media/how-to-configure-enterprise-spring-cloud-gateway/custom-autoscale.png" alt-text="Screenshot of the Azure portal that shows the Autoscale setting page with the Custom autoscale option highlighted." lightbox="media/how-to-configure-enterprise-spring-cloud-gateway/custom-autoscale.png":::
Copy file name to clipboardExpand all lines: articles/spring-apps/how-to-enable-ingress-to-app-tls.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ This article describes secure communications in Azure Spring Apps. The article a
23
23
24
24
The following picture shows the overall secure communication support in Azure Spring Apps.
25
25
26
-
:::image type="content" source="media/enable-end-to-end-tls/secured-tls.png" alt-text="Screenshot of secured TLS flow in Azure Spring Apps." border="false":::
26
+
:::image type="content" source="media/how-to-enable-ingress-to-app-tls/secured-tls.png" alt-text="Screenshot of secured TLS flow in Azure Spring Apps." border="false" lightbox="media/how-to-enable-ingress-to-app-tls/secured-tls.png":::
27
27
28
28
## Secure communication model within Azure Spring Apps
29
29
@@ -78,7 +78,7 @@ To enable ingress-to-app TLS in the [Azure portal](https://portal.azure.com/), f
78
78
3. Select **Ingress-to-app TLS**.
79
79
4. Switch **Ingress-to-app TLS** to *Yes*.
80
80
81
-
:::image type="content" source="media/enable-end-to-end-tls/enable-i2a-tls.png" alt-text="Screenshot of the Azure portal that shows the Ingress-to-app TLS page and control." lightbox="media/enable-end-to-end-tls/enable-i2a-tls.png":::
81
+
:::image type="content" source="media/how-to-enable-ingress-to-app-tls/enable-i2a-tls.png" alt-text="Screenshot of the Azure portal that shows the Ingress-to-app TLS page and control." lightbox="media/how-to-enable-ingress-to-app-tls/enable-i2a-tls.png":::
Copy file name to clipboardExpand all lines: articles/spring-apps/how-to-integrate-azure-load-balancers.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -50,9 +50,9 @@ Add endpoints in traffic manager:
50
50
1. Input fully qualified domain name (FQDN) of each Azure Spring Apps public endpoint.
51
51
1. Select **OK**.
52
52
53
-
:::image type="content" source="media/spring-cloud-load-balancers/traffic-manager-1.png" alt-text="Screenshot of the Azure portal that shows the Add endpoint page with an eastus FQDN with Priority 1." lightbox="media/spring-cloud-load-balancers/traffic-manager-1.png":::
53
+
:::image type="content" source="media/how-to-integrate-azure-load-balancers/traffic-manager-1.png" alt-text="Screenshot of the Azure portal that shows the Add endpoint page with an eastus FQDN with Priority 1." lightbox="media/how-to-integrate-azure-load-balancers/traffic-manager-1.png":::
54
54
55
-
:::image type="content" source="media/spring-cloud-load-balancers/traffic-manager-2.png" alt-text="Screenshot of the Azure portal that shows the Add endpoint page with a westus FQDN with Priority 2." lightbox="media/spring-cloud-load-balancers/traffic-manager-2.png":::
55
+
:::image type="content" source="media/how-to-integrate-azure-load-balancers/traffic-manager-2.png" alt-text="Screenshot of the Azure portal that shows the Add endpoint page with a westus FQDN with Priority 2." lightbox="media/how-to-integrate-azure-load-balancers/traffic-manager-2.png":::
56
56
57
57
### Configure Custom Domain
58
58
@@ -69,22 +69,22 @@ To integrate with Azure Spring Apps service, complete the following configuratio
69
69
1. Specify **Target type** as *IP address* or *FQDN*.
70
70
1. Enter your Azure Spring Apps public endpoints.
71
71
72
-
:::image type="content" source="media/spring-cloud-load-balancers/app-gateway-1.png" alt-text="Screenshot of the Azure portal that shows the Add backend pool page with the Backend targets values highlighted." lightbox="media/spring-cloud-load-balancers/app-gateway-1.png":::
72
+
:::image type="content" source="media/how-to-integrate-azure-load-balancers/app-gateway-1.png" alt-text="Screenshot of the Azure portal that shows the Add backend pool page with the Backend targets values highlighted." lightbox="media/how-to-integrate-azure-load-balancers/app-gateway-1.png":::
73
73
74
74
### Add Custom Probe
75
75
76
76
1. Select **Health Probes** then **Add** to open custom **Probe** dialog.
77
77
1. The key point is to select **No** for **Pick host name from backend HTTP settings** option and explicitly specify the host name. For more information, see [Application Gateway configuration for host name preservation](/azure/architecture/best-practices/host-name-preservation#application-gateway).
78
78
79
-
:::image type="content" source="media/spring-cloud-load-balancers/app-gateway-2.png" alt-text="Screenshot of the Azure portal that shows the probe page." lightbox="media/spring-cloud-load-balancers/app-gateway-2.png":::
79
+
:::image type="content" source="media/how-to-integrate-azure-load-balancers/app-gateway-2.png" alt-text="Screenshot of the Azure portal that shows the probe page." lightbox="media/how-to-integrate-azure-load-balancers/app-gateway-2.png":::
80
80
81
81
### Configure Backend Setting
82
82
83
83
1. Select **Backend settings** then **Add** to add a backend setting.
84
84
1.**Override with new host name:** select **No**.
85
85
1.**Use custom probe**: select **Yes** and pick the custom probe created above.
86
86
87
-
:::image type="content" source="media/spring-cloud-load-balancers/app-gateway-3.png" alt-text="Screenshot of the Azure portal that shows the Add Backend setting page." lightbox="media/spring-cloud-load-balancers/app-gateway-3.png":::
87
+
:::image type="content" source="media/how-to-integrate-azure-load-balancers/app-gateway-3.png" alt-text="Screenshot of the Azure portal that shows the Add Backend setting page." lightbox="media/how-to-integrate-azure-load-balancers/app-gateway-3.png":::
88
88
89
89
## Integrate Azure Spring Apps with Azure Front Door
90
90
@@ -93,13 +93,13 @@ To integrate with Azure Spring Apps service and configure an origin group, use t
93
93
1.**Add origin group**.
94
94
1. Specify the backend endpoints by adding origins for the different Azure Spring Apps instances.
95
95
96
-
:::image type="content" source="media/spring-cloud-load-balancers/front-door-1.png" alt-text="Screenshot of the Azure portal that shows the Add an origin group page with the Add an origin button highlighted." lightbox="media/spring-cloud-load-balancers/front-door-1.png":::
96
+
:::image type="content" source="media/how-to-integrate-azure-load-balancers/front-door-1.png" alt-text="Screenshot of the Azure portal that shows the Add an origin group page with the Add an origin button highlighted." lightbox="media/how-to-integrate-azure-load-balancers/front-door-1.png":::
97
97
98
98
1. Specify **origin type** as *Azure Spring Apps*.
99
99
1. Select your Azure Spring Apps instance for the **host name**.
100
100
1. Keep the **origin host header** empty, so that the incoming host header will be used towards the backend. For more information, see [Azure Front Door configuration for host name preservation](/azure/architecture/best-practices/host-name-preservation#azure-front-door).
101
101
102
-
:::image type="content" source="media/spring-cloud-load-balancers/front-door-2.png" alt-text="Screenshot of the Azure portal that shows the Add an origin page." lightbox="media/spring-cloud-load-balancers/front-door-2.png":::
102
+
:::image type="content" source="media/how-to-integrate-azure-load-balancers/front-door-2.png" alt-text="Screenshot of the Azure portal that shows the Add an origin page." lightbox="media/how-to-integrate-azure-load-balancers/front-door-2.png":::
0 commit comments