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
Copy file name to clipboardExpand all lines: articles/logic-apps/biztalk-server-migration-approaches.md
+41-35Lines changed: 41 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -86,38 +86,44 @@ To set up your initial environment, use the [Azure Integration Services Landing
86
86
87
87
#### Minimum viable project (MVP) definition
88
88
89
-
An MVP is a product version with just enough features to be customerusable. This version shows the product's possibilities and potential to gather customer feedback and continue the work. For a BizTalk migration, your MVP definition reflects the iterations, waves, or groups of sprints that you need to make progress towards working features and to meet initial integration workloads.
89
+
An MVP is a product version that has just enough customer-usable features. This version shows the product's possibilities and potential to gather customer feedback and continue the work. For a BizTalk migration, your MVP definition reflects the iterations, waves, or groups of sprints that you need to make progress towards working features and to meet initial integration workloads.
90
90
91
91
We recommend that your MVP definition include the following business outcomes, which are expressed as [*Epics*](/azure/devops/boards/backlogs/define-features-epics?view=azure-devops&preserve-view=true&tabs=agile-process#what-makes-a-feature-or-epic) in Scrum terminology:
92
92
93
-
-**Business outcomes (Epics)**
94
-
- What is the primary goal that we want to achieve?
95
-
- What capabilities or features must we address for this MVP?
96
-
- What are the business process flows? This question provides the opportunity to optimize existing processes supported by BizTalk Server.
97
-
- MVP business decisions: What business outcomes impact the MVP? Resource availability?
93
+
**Business outcomes (Epics)**
94
+
95
+
- What is the primary goal that you want to achieve?
96
+
- What capabilities or features must you address for this MVP?
97
+
- What are the business process flows? This question provides the opportunity to optimize existing processes supported by BizTalk Server.
98
+
- What are the business decisions, for example, business outcomes that affect the MVP, or what is the esource availability?
98
99
99
100
We recommend that your MVP include the following in-scope processes, which are expressed as [*Features*](/azure/devops/boards/backlogs/define-features-epics?view=azure-devops&preserve-view=true&tabs=agile-process#what-makes-a-feature-or-epic) in Scrum terminology:
100
101
101
102
<aname="in-scope-processes"></a>
102
103
103
-
-**In-scope processes (Features)**
104
-
105
-
| Feature | Description |
106
-
|---------|-------------|
107
-
| High-level system functionality | You can extract this information using the discovery tools and express the descriptions in terms of features. |
108
-
| Actors or personas | Use this information to determine the individuals affected by the MVP's supported scenarios. |
109
-
| Orchestrations | You can extract this information using the discovery tools. |
110
-
| Data entities and messages | These elements give you an opportunity to learn whether you can include further improvements in the data exchanged by the BizTalk Server environment. |
111
-
| Data mappings | Today's world relies on JSON. However, BizTalk Server uses XML. This moment is a great opportunity to decide the data format and conversion needs for the new platform. |
112
-
| Business rules | These data-centric rules open an opportunity for you to rethink their approach or reuse them by employing Azure Logic Apps capabilities. |
113
-
| Data privacy considerations | You must make privacy a top priority. Unless your customer chooses the hybrid deployment model in Azure Logic Apps (Standard), you must address this area in each wave due to potential deployment environment changes, |
114
-
| Regulatory considerations | This aspect is more relevant if your customers don't have cloud-based workloads. |
115
-
| Secure by design | You must design each feature with security in mind. |
116
-
| Proposed features for coexistence | When you deliver each wave, you have a certain degree of coexistence. You must align this hybrid architecture with existing Service Level Indicators (SLIs) and Service Level Objectives (SLOs). |
117
-
| Non-functional considerations | Business processes might have different non-functional requirements. Not everything must happen in real time. Conversely, not everything is a batch process. |
118
-
| Business metrics | An optional opportunity to show progress for the migration work. |
119
-
120
-
-**MVP out-of-scope**: Different variables shape the scope of work, for example, resource availability, risks, documentation, or time to market. Ideally, you want to identify and list these items.
104
+
**In-scope processes (Features)**
105
+
106
+
| Feature | Description |
107
+
|---------|-------------|
108
+
| High-level system functionality | You can extract this information using the discovery tools and express the descriptions in terms of features. |
109
+
| Actors or personas | Use this information to determine the individuals affected by the MVP's supported scenarios. |
110
+
| Orchestrations | You can extract this information using the discovery tools. |
111
+
| Data entities and messages | These elements give you an opportunity to learn whether you can include further improvements in the data exchanged by the BizTalk Server environment. |
112
+
| Data mappings | Today's world relies on JSON. However, BizTalk Server uses XML. This moment is a great opportunity to decide the data format and conversion needs for the new platform. |
113
+
| Business rules | These data-centric rules open an opportunity for you to rethink their approach or reuse them by employing Azure Logic Apps capabilities. |
114
+
| Data privacy considerations | You must make privacy a top priority. Unless your customer chooses the hybrid deployment model in Azure Logic Apps (Standard), you must address this area in each wave due to potential deployment environment changes. |
115
+
| Regulatory considerations | This aspect is more relevant if your customers don't have cloud-based workloads. |
116
+
| Secure by design | You must design each feature with security in mind. |
117
+
| Proposed features for coexistence | When you deliver each wave, you have a certain degree of coexistence. You must align this hybrid architecture with existing Service Level Indicators (SLIs) and Service Level Objectives (SLOs). |
118
+
| Non-functional considerations | Business processes might have different non-functional requirements. Not everything must happen in real time. Conversely, not everything is a batch process. |
119
+
| Business metrics | An optional opportunity to show progress for the migration work. |
120
+
121
+
You'll also want to identify and list the various out-of-scope variables that shape the scope of your MVP work, for example:
122
+
123
+
- Resource availability
124
+
- Risks
125
+
- Documentation
126
+
- Time to market
121
127
122
128
#### Initial backlog
123
129
@@ -127,9 +133,9 @@ For example, suppose you have a BizTalk Server project with an orchestration cal
127
133
128
134
-**Feature**: Loan processing
129
135
130
-
-**User story**: "As a customer, I want to submit a loan application so the bank can add funds to my secure account."
136
+
-**User Story**: "As a customer, I want to submit a loan application so the bank can add funds to my secure account."
131
137
132
-
This User Story, which might currently exist as an implementation in BizTalk Server, has the following tasks in Azure Logic Apps and Azure Integration Services:
138
+
This User Story, which might currently exist as an implementation in BizTalk Server, has the following tasks to implement using Azure Logic Apps and Azure Integration Services:
133
139
134
140
- Collect BizTalk reusable artifacts.
135
141
- Create a loan request workflow using Azure Logic Apps.
@@ -161,7 +167,7 @@ The following diagram shows the events that should happen during migration waves
161
167
|------|--------------|
162
168
| 1 | Discover existing BizTalk apps and interfaces. Although introduced in Sprint 0, this activity should happen when each wave starts. Customers might continue making changes in your BizTalk environment. <br><br>Resources: <br>- [BizTalk Migration tool](https://github.com/Azure/aimtool) <br>- [BizTalk Documenter tool](https://github.com/mbrimble/biztalkdocumenter)|
163
169
| 2 | Set up your initial migration environment. You can use the [Azure Integration Services Landing Zone Accelerator](https://github.com/[Azure/Integration-Services-Landing-Zone-Accelerator), which is a cloud adoption framework for building and deploying an integration platform that has a typical enterprise landing zone design. As the workload owner, you can confidently achieve your target technical state by using the provided [architectural guidance and BizTalk migration resources](https://techcommunity.microsoft.com/blog/integrationsonazureblog/biztalk-server-migration-to-azure-integration-services-resources/3733464). <br><br>For an example architecture, see [Example migration environment](#initial-migration-environment). |
164
-
| 3 | Create and test Standard logic app workflows that run in single-tenant Azure Logic Apps using either the Azure portal or Visual Studio Code with the Azure Logic Apps (Standard) extension. With Visual Studio Code, you can locally develop, test, and store your logic app project using any source control system. <br><br>For more information, see the following documentation: <br><br>- [Create an example Standard logic app workflow using the Azure portal](/azure/logic-apps/create-single-tenant-workflows-azure-portal) <br>- [Create an example Standard logic app workflow using Visual Studio Code](/azure/logic-apps/create-single-tenant-workflows-visual-studio-code). <br><br>For a diagram that shows an example logic app and connections, see [Example migration environment](#initial-migration-environment). |
170
+
| 3 | Create and test Standard logic app workflows that run in single-tenant Azure Logic Apps using either the Azure portal or Visual Studio Code with the Azure Logic Apps (Standard) extension. With Visual Studio Code, you can locally develop, test, and store your logic app project using any source control system. <br><br>For more information, see the following documentation: <br><br>- [Create an example Standard logic app workflow using the Azure portal](/azure/logic-apps/create-single-tenant-workflows-azure-portal) <br>- [Create an example Standard logic app workflow using Visual Studio Code](/azure/logic-apps/create-single-tenant-workflows-visual-studio-code) <br><br>For a diagram that shows an example logic app and connections, see [Example migration environment](#initial-migration-environment). |
165
171
| 4 | To get the full benefits from easily and consistently deploying your Standard logic app workflows across different environments and platforms, you must also automate your build and deployment process. The Azure Logic Apps (Standard) extension for Visual Studio Code provides tools for you to create and maintain automated build and deployment processes using Azure DevOps. <br><br>For more information, see [Automate build and deployment for Standard logic app workflows with Azure DevOps](/azure/logic-apps/automate-build-deployment-standard). |
166
172
| 5 | To deploy mission-critical Standard logic apps that are always available and responsive, even during updates or maintenance, enable zero downtime deployment by creating and using deployment slots. Zero downtime means that when you deploy new versions of your app, end users shouldn't experience disruption or downtime. <br><br>For more information, see [Set up deployment slots to enable zero downtime deployment in Azure Logic Apps](/azure/logic-apps/set-up-deployment-slots). |
167
173
@@ -206,7 +212,7 @@ Each *wave* has its own testing activities, which are embedded in each User Stor
206
212
207
213
- Set up mock response testing using static results.
208
214
209
-
Regardless whether you set up automated tests, you can use the [static results capability](./test-logic-apps-mock-data-static-results.md) in Azure Logic Apps to temporarily set mock responses at the action level. This functionality lets you emulate the behavior from a specific system that you want to call. You can then perform some initial testing in isolation and reduce the amount of data that you'd create in line of business systems.
215
+
Regardless whether you set up automated tests, you can use the [static results capability](test-logic-apps-mock-data-static-results.md) in Azure Logic Apps to temporarily set mock responses at the action level. This functionality lets you emulate the behavior from a specific system that you want to call. You can then perform some initial testing in isolation and reduce the amount of data that you'd create in line of business systems.
210
216
211
217
- Run side by side tests.
212
218
@@ -255,7 +261,7 @@ Make sure to set up and consistently apply good naming conventions across all Az
255
261
For guidance around this practice, review the following Microsoft recommendations and resources:
256
262
257
263
-[Abbreviation examples for Azure resources](/azure/cloud-adoption-framework/ready/azure-best-practices/resource-abbreviations)
258
-
-[Azure Naming Tool](https://github.com/microsoft/CloudAdoptionFramework/tree/master/ready/AzNamingTool), which generates Azure-compliant names, helps you standardize on names, and automates your naming process.
264
+
-[Azure Naming Tool](https://github.com/microsoft/CloudAdoptionFramework/tree/master/ready/AzNamingTool), which generates Azure-compliant names, helps you standardize on names, and automates your naming process.
259
265
260
266
### Naming conventions for Azure Logic Apps resources
261
267
@@ -284,7 +290,7 @@ So, if you had a workflow that implements employee onboarding tasks, such as cre
284
290
285
291
Here are more considerations for designing your workflow naming convention:
286
292
287
-
- Follow the Parent-Child pattern for logic apps where you want to highlight some relationship between one or more workflows.
293
+
- Follow the parent-child pattern for workflows where you want to highlight some relationship between one or more workflows.
288
294
- Take into account whether a workflow publishes or consumes a message.
289
295
290
296
#### Workflow operation names
@@ -298,14 +304,14 @@ To make operation names more meaningful and easier to understand, you can add a
298
304
> For organizations that extensively use expressions, consider a naming convention that doesn't
299
305
> promote using whitespace (' '). The expression language in Azure Logic Apps replaces whitespace
300
306
> with underscores ('_'), which might complicate authoring. By avoiding spaces upfront, you help
301
-
> reduce friction when authoring expressions. Instead, use a dash or hyphen ('-), which provides
307
+
> reduce friction when authoring expressions. Instead, use a dash or hyphen ('-'), which provides
302
308
> readability and doesn't affect expression authoring.
303
309
304
310
To avoid later possible rework and problems around downstream dependencies, which are created when you use operation outputs, rename your operations immediately when you add them to your workflow. Usually, downstream actions are automatically updated when you rename an operation. However, Azure Logic Apps doesn't automatically rename custom expressions that you created before you perform the rename.
305
311
306
312
#### Connection names
307
313
308
-
When you create a connection in your workflow, the underlying connection resource automatically gets a generic name, such as **sql** or **office365**. Like operation names, connection names must also be unique. Subsequent connections with the same type get a sequential numerical suffix, for example, **sql-1**, **sql-2**, and so on. Such names don't have any context, and make differentiating and mapping connections to their logic apps extremely challenging, especially for developers who are unfamiliar with the space and have to take on maintenance for those logic apps.
314
+
When you create a connection in your workflow, the underlying connection resource automatically gets a generic name, such as **sql** or **office365**. Like operation names, connection names must also be unique. Subsequent connections with the same type get a sequential numerical suffix, for example, **sql-1**, **sql-2**, and so on. Such names don't have any context, and make differentiating and mapping connections to their workflows extremely challenging, especially for developers who don't know the solution space and have maintain those workflows.
309
315
310
316
So, meaningful and consistent connection names are important for the following reasons:
311
317
@@ -317,13 +323,13 @@ Again, having a naming convention is critical, although the format isn't overly
As a concrete example, you might rename a Service Bus connection in an **OrderQueue** logic app or workflow with **CN-ServiceBus-OrderQueue** as the new name. For more information, see the Turbo360 (Formerly Serverless360) blog post [Logic app best practices, tips, and tricks: #11 connectors naming convention](https://www.turbo360.com/blog/logic-app-best-practices-tips-and-tricks-11-connectors-naming-convention).
326
+
As a concrete example, you might rename a Service Bus connection in an **OrderQueue** logic app workflow with **CN-ServiceBus-OrderQueue** as the new name. For more information, see the Turbo360 (Formerly Serverless360) blog post,[Logic app best practices, tips, and tricks: #11 connectors naming convention](https://www.turbo360.com/blog/logic-app-best-practices-tips-and-tricks-11-connectors-naming-convention).
321
327
322
328
### Handle exceptions with scopes and "Run after" options
323
329
324
-
[Scopes](./logic-apps-control-flow-run-steps-group-scopes.md) provide the capability to group multiple actions so that you can implement Try-Catch-Finally behavior. The **Scope** action's functionality is similar to the **Region** concept in Visual Studio. On the designer, you can collapse and expand a scope's contents to improve developer productivity.
330
+
[Scopes](logic-apps-control-flow-run-steps-group-scopes.md) provide the capability to group multiple actions so that you can implement Try-Catch-Finally behavior. The **Scope** action's functionality is similar to the **Region** concept in Visual Studio. On the designer, you can collapse and expand a scope's contents to improve developer productivity.
325
331
326
-
When you implement this pattern, you can also specify when to run the **Scope** action and the actions inside, based on the preceding action's execution status, which can be **Succeeded**, **Failed**, **Skipped**, or **TimedOut**. To set up this behavior, use the **Scope** action's [**Run after** (`runAfter`) options](./logic-apps-exception-handling.md#manage-the-run-after-behavior):
332
+
When you implement this pattern, you can also specify when to run the **Scope** action and the actions inside, based on the preceding action's execution status, which can be **Succeeded**, **Failed**, **Skipped**, or **TimedOut**. To set up this behavior, use the **Scope** action's [**Run after** (`runAfter`) options](logic-apps-exception-handling.md#manage-the-run-after-behavior):
0 commit comments