Skip to content

Commit ed6c38a

Browse files
authored
Merge pull request #266356 from SnehaSudhirG/15Feb-Springboot
Image added, new sections- cleanup and reinstallation
2 parents 05b4838 + 29a090d commit ed6c38a

File tree

4 files changed

+102
-30
lines changed

4 files changed

+102
-30
lines changed
258 KB
Loading
258 KB
Loading

articles/migrate/tutorial-discover-spring-boot.md

Lines changed: 97 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,12 @@ author: Vikram1988
55
ms.author: vibansa
66
ms.manager: abhemraj
77
ms.topic: tutorial
8-
ms.date: 09/28/2023
9-
ms.custom: mvc, subject-rbac-steps, engagement-fy23, references_regions
8+
ms.date: 03/12/2024
9+
ms.custom: mvc, subject-rbac-steps, engagement-fy24, references_regions
1010
---
1111

1212
# Tutorial: Discover Spring Boot applications running in your datacenter (preview)
1313

14-
> [!CAUTION]
15-
> This article references CentOS, a Linux distribution that is nearing End Of Life (EOL) status. Please consider your use and planning accordingly.
16-
1714
This article describes how to discover Spring Boot applications running on servers in your datacenter, using Azure Migrate: Discovery and assessment tool. The discovery process is completely agentless; no agents are installed on the target servers.
1815

1916
In this tutorial, you learn how to:
@@ -49,6 +46,7 @@ If you don't have an Azure subscription, create a [free account](https://azure.m
4946
- [Discover AWS instances](tutorial-discover-aws.md)
5047
- [Discover GCP instances](tutorial-discover-gcp.md)
5148
- Ensure that you have performed software inventory by providing the server credentials on the appliance configuration manager. [Learn more](how-to-discover-applications.md).
49+
- Only Migrate projects created with Public endpoint connectivity are supported. Private endpoint projects are not supported.
5250

5351
## Set up Kubernetes-based appliance
5452

@@ -68,20 +66,44 @@ After you have performed server discovery and software inventory using the Azure
6866
> [!Note]
6967
> We recommend you choose a Kubernetes cluster with disk encryption for its services. [Learn more](#encryption-at-rest) about encrypting data at rest in Kubernetes.
7068

71-
:::image type="content" source="./media/tutorial-discover-spring-boot/onboard-kubernetes-inline.png" alt-text="Screenshot displays the Onboard Kubernetes appliance screen." lightbox="./media/tutorial-discover-spring-boot/onboard-kubernetes-expanded.png":::
69+
6. In **Choose an appliance**, you can select one from the following options:
70+
71+
- **Install appliance using packaged Kubernetes cluster** - This option is selected by default as it is the recommended approach where the users can use the installer script to download and install a Kubernetes cluster on a Linux server on-premises to set up the appliance.
72+
- **Bring your own Kubernetes cluster** - You must bring your own Kubernetes cluster running on-premises, connect it to Azure Arc, and use the installer script to set up the appliance.
73+
7274

73-
6. In Step 1: Set up an appliance, select **Bring your own Kubernetes cluster** - You must bring your own Kubernetes cluster running on-premises, connect it to Azure Arc and use the installer script to set up the appliance.
75+
#### [Install appliance using packaged Kubernetes cluster (recommended)](#tab/K8-package)
7476

75-
#### Bring your own Kubernetes cluster
77+
1. In **Provide appliance details for Azure Migrate**, the appliance name is pre-populated, but you can choose to provide your own friendly name to the appliance.
7678

77-
1. In **Step 2: Choose connected cluster**, you need to select an existing Azure Arc connected cluster from your subscription. If you do not have an existing connected cluster, you can Arc enable a Kubernetes cluster running on-premises by following the steps [here](../azure-arc/kubernetes/quickstart-connect-cluster.md?tabs=azure-cli).
79+
:::image type="content" source="./media/tutorial-discover-spring-boot/packaged-cluster-inline.png" alt-text="Screenshot that shows the Install appliance using packaged Kubernetes cluster option selected." lightbox="./media/tutorial-discover-spring-boot/packaged-cluster-expanded.png":::
80+
81+
82+
2. Select a Key Vault from the drop-down or **Create new** Key vault. This Key Vault is used to process the credentials provided in the project to start discovery of Spring Boot applications.
7883

7984
> [!Note]
80-
> You can only select an existing connected cluster, deployed in the same region as that of your Azure Migrate project.
85+
> The Key Vault can be chosen or created in the same subscription and region as that of the Azure Migrate Project. When creating/selecting KV, make sure it does not have purge protection enabled else there be issues in processing of credentials through the Key Vault.
86+
87+
3. After providing the appliance name and Key Vault, select **Generate script** to generate an installer script that you can copy and paste on a Linux server on-premises. Before executing the script, ensure that you meet the following prerequisites on the Linux server:
88+
89+
**Support** | **Details**
90+
---- | ----
91+
**Supported Linux OS** | Ubuntu 20.04, RHEL 9
92+
**Hardware configuration required** | 8 GB RAM, with 30 GB storage, 4 Core CPU
93+
**Network Requirements** | Access to the following endpoints: <br/><br/>*.docker.io <br/></br>*.docker.com <br/><br/>api.snapcraft.io <br/><br/> https://dc.services.visualstudio.com/v2/track <br/><br/> [Azure Arc-enabled Kubernetes network requirements](https://learn.microsoft.com/azure/azure-arc/kubernetes/network-requirements?tabs=azure-cloud) <br/><br/>[Azure CLI endpoints for proxy bypass](https://learn.microsoft.com/cli/azure/azure-cli-endpoints?tabs=azure-cloud)
94+
95+
After copying the script, you can go to your Linux server, save the script as *Deploy.sh* on the server.
96+
97+
#### [Bring your own Kubernetes cluster](#tab/K8-byoc)
98+
99+
1. In **Choose connected cluster**, you need to select an existing Azure Arc connected cluster from your subscription. If you don't have an existing connected cluster, you can Arc enable a Kubernetes cluster running on-premises by following the steps [here](../azure-arc/kubernetes/quickstart-connect-cluster.md?tabs=azure-cli).
100+
101+
> [!Note]
102+
> You can only select an existing connected cluster that's deployed in the same region as your Azure Migrate project.
81103

82104
:::image type="content" source="./media/tutorial-discover-spring-boot/choose-cluster-inline.png" alt-text="Screenshot displays Choose cluster option in the Onboard Kubernetes appliance screen." lightbox="./media/tutorial-discover-spring-boot/choose-cluster-expanded.png":::
83105

84-
2. In Step 3: Provide appliance details for Azure Migrate, the appliance name is prepopulated, but you can choose to provide your own friendly name to the appliance.
106+
2. In **Provide appliance details for Azure Migrate**, the appliance name is prepopulated, but you can choose to provide your own friendly name to the appliance.
85107

86108
3. You can select a Key Vault from the drop-down or **Create new** Key Vault. This Key Vault is used to process the credentials provided in the project to start discovery of Spring Boot applications.
87109

@@ -94,13 +116,14 @@ After you have performed server discovery and software inventory using the Azure
94116
---- | ----
95117
**Supported Linux OS** | Ubuntu 20.04, RHEL 9
96118
**Hardware configuration required** | 6 GB RAM, with 30 GB storage on root volume, 4 Core CPU
97-
**Network Requirements** | Access to the following endpoints: <br/><br/> https://dc.services.visualstudio.com/v2/track <br/><br/> [Azure CLI endpoints for proxy bypass](/cli/azure/azure-cli-endpoints?tabs=azure-cloud)
119+
**Network Requirements** | Access to the following endpoints: <br/><br/> https://dc.services.visualstudio.com/v2/track <br/><br/> [Azure CLI endpoints for proxy bypass](https://learn.microsoft.com/cli/azure/azure-cli-endpoints?tabs=azure-cloud)
98120

99121
5. After copying the script, go to your Linux server, save the script as *Deploy.sh* on the server.
122+
---
100123

101-
#### Connect using an outbound proxy server
124+
### Connect using an outbound proxy server
102125
If your machine is behind an outbound proxy server, requests must be routed via the outbound proxy server. Follow these steps to provide proxy settings:
103-
1. Open the terminal on the server and execute the following command setup environment variables as a root user:
126+
1. Open the terminal on the server and execute the following command to set up environment variables as a root user:
104127
`sudo su -`
105128
2. On the deployment machine, set the environment variables needed for `deploy.sh` to use the outbound proxy server:
106129
```
@@ -114,9 +137,40 @@ If your machine is behind an outbound proxy server, requests must be routed via
114137
> [!Note]
115138
> The machine uses proxy details while installing the required prerequisites to run the `deploy.sh` script . It won't override the proxy settings of the Azure Arc-enabled Kubernetes cluster.
116139
117-
#### Execute the installer script
140+
### Execute the installer script
141+
142+
#### [Packaged Kubernetes cluster](#tab/K8-package)
118143

119-
After you have saved the script on the Linux server, follow these steps:
144+
After you save the script on the Linux server, follow these steps:
145+
146+
> [!Note]
147+
> This script needs to be run after you connect to a Linux machine on its terminal that has met the networking pre-requisite and OS compatibility.
148+
> Ensure that you have curl installed on the server. For Ubuntu, you can install it using the command `sudo apt-get install curl`, and for other OS (RHEL/Centos), you can use the command `yum install curl`.
149+
150+
> [!Important]
151+
> Don't edit the script unless you want to clean up the setup.
152+
153+
1. Open the Terminal on the server and execute the following command to execute the script as a root user:
154+
`sudo su -`
155+
156+
1. Change the directory to where you saved the script and execute the script using command: `bash deploy.sh`
157+
158+
1. Follow the instructions in the script and sign in with your Azure user account when prompted.
159+
160+
1. The script performs the following steps:
161+
162+
1. Installing required CLI extensions.
163+
2. Registering Azure Resource Providers
164+
3. Checking for prerequisites like connectivity to required endpoints
165+
4. Setting up MicroK8s Kubernetes cluster
166+
5. Installing the required operators on the cluster
167+
6. Creating the required Migrate resources
168+
169+
1. After the script is executed successfully, configure the appliance through the portal.
170+
171+
#### [Bring your own cluster](#tab/K8-byoc)
172+
173+
After you save the script on the Linux server, follow these steps:
120174

121175
> [!Note]
122176
> - This script needs to be run after you connect to a Linux machine on its terminal that meets the networking prerequisites and OS compatibility.
@@ -125,36 +179,41 @@ After you have saved the script on the Linux server, follow these steps:
125179
> [!Important]
126180
> Don't edit the script unless you want to clean up the setup.
127181
128-
129182
1. Open the terminal on the server and execute the following command to execute the script as a root user:
130183
`sudo su -`
131-
2. Change directory to where you have saved the script and execute the script using the `bash deploy.sh` command.
132-
3. Follow the instructions in the script and sign in with your Azure user account when prompted.
133-
4. The script performs the following steps:
184+
1. Navigate to the directory where you saved the script and execute the script using the `bash deploy.sh` command.
185+
186+
1. Follow the instructions in the script and sign in with your Azure user account when prompted.
187+
188+
1. The script performs the following steps:
189+
134190
1. Installing required CLI extensions.
135191
2. Registering Azure Resource Providers.
136192
3. Checking for prerequisites like connectivity to required endpoints.
137193
5. Installing the required operators on the cluster.
138194
6. Creating the required Migrate resources.
139195

140-
After the script is executed successfully, configure the appliance through the portal.
196+
1. After the script is executed successfully, configure the appliance through the portal.
197+
---
141198

142-
##### Reinstallation
199+
### Reinstallation
143200

144-
If you encounter any issue during script execution, you need to run the script in *delete* mode by adding the following after line #19 in the `deploy.sh` script:
201+
> [!NOTE]
202+
> If you encounter any issue during script execution, you need to re-run the script and it would resume from last successful state. In case you want to perform a complete fresh install, see [cleanup of setup](#cleanup-of-setup) details before you re-run the script.
145203
146-
`export DELETE= “true”`
204+
## Encryption at rest
147205

148-
:::image type="content" source="./media/tutorial-discover-spring-boot/delete-image-inline.png" alt-text="Screenshot shows delete mode." lightbox="./media/tutorial-discover-spring-boot/delete-image-expanded.png":::
206+
#### [Packaged Kubernetes cluster](#tab/cluster)
149207

150-
The *delete* mode helps to clean up any existing components installed on the server so that you can do a fresh installation. After running the script in *delete* mode, remove the line from the script and execute it again in the default mode.
208+
As you are setting a packaged appliance, we would have shared responsibility to ensure that the secrets are secured.
209+
- We recommend you choose a Linux VM with disk encryption for its services.
151210

152-
## Encryption at rest
211+
#### [Bring your own Kubernetes cluster](#tab/encrypt-rest)
153212

154213
As you're bringing your own Kubernetes cluster, there's a shared responsibility to ensure that the secrets are secured.
155214
- We recommend you choose a Kubernetes cluster with disk encryption for its services.
156215
- [Learn more](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) about encrypting data at rest in Kubernetes.
157-
216+
---
158217

159218
## Configure Kubernetes-based appliance
160219

@@ -165,7 +224,7 @@ After successfully setting up the appliance using the installer script, you need
165224
:::image type="content" source="./media/tutorial-discover-spring-boot/pending-action-inline.png" alt-text="Screenshot displays the Pending action option." lightbox="./media/tutorial-discover-spring-boot/pending-action-expanded.png":::
166225

167226
3. In **Overview** > **Manage** > **Appliances**, a filtered list of appliances appears with actions pending.
168-
4. Find the Kubernetes-based appliance that you have set up and select **Credentials unavailable** status to configure the appliance.
227+
4. Find the Kubernetes-based appliance that you set up and select **Credentials unavailable** status to configure the appliance.
169228

170229
:::image type="content" source="./media/tutorial-discover-spring-boot/appliances-inline.png" alt-text="Screenshot displays the details of the appliance." lightbox="./media/tutorial-discover-spring-boot/appliances-expanded.png":::
171230

@@ -185,6 +244,14 @@ After the credentials have been successfully synced, wait for 24 hours before yo
185244
> [!Note]
186245
> You can add/update credentials any time by navigating to **Azure Migrate: Discovery and assessment** > **Overview** > **Manage** > **Appliances** page, selecting **Manage credentials** from the options available in the Kubernetes-based appliance.
187246

247+
## Cleanup of setup
248+
249+
To cleanup, run the following script in delete mode:
250+
251+
In the script generated by the portal, after all the user arguments (after line 19 in the following image), add `export DELETE= “true”` and run the same script again. This will clean up all existing components created during appliance creation.
252+
253+
:::image type="content" source="./media/tutorial-discover-spring-boot/delete-image-inline.png" alt-text="Screenshot shows delete mode." lightbox="./media/tutorial-discover-spring-boot/delete-image-expanded.png":::
254+
188255
## Overview of Discovery results
189256

190257
The **Discovered servers** screen provides the following information:
@@ -207,4 +274,4 @@ Select any web app to view its details. The **Web apps** screen provides the fol
207274

208275
## Next steps
209276
- [Assess Spring Boot](tutorial-assess-spring-boot.md) apps for migration.
210-
- [Review the data](discovered-metadata.md#collected-data-for-physical-servers) that the appliance collects during discovery.
277+
- [Review the data](discovered-metadata.md#collected-data-for-physical-servers) that the appliance collects during discovery.

articles/migrate/whats-new.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,15 @@ ms.custom: mvc, engagement-fy24
1414

1515
[Azure Migrate](migrate-services-overview.md) helps you to discover, assess and migrate on-premises servers, apps, and data to the Microsoft Azure cloud. This article summarizes new releases and features in Azure Migrate.
1616

17+
## Update (March 2024)
18+
19+
- Public preview: Springboot Apps discovery and assessment is now available using Packaged solution to deploy Kubernetes appliance.
20+
1721
## Update (February 2024)
1822

1923
- Public preview: Envision savings with Azure Hybrid Benefits by bringing your existing Enterprise Linux subscriptions (RHEL and SLES) to Azure using Azure VM assessments and business case.
2024

25+
2126
## Update (January 2024)
2227

2328
- Public preview: Using the RVTools XLSX, you can import an on-premises VMware environment's servers' configuration data into Azure Migrate and create a quick business case and also assess the cost of hosting these workloads on Azure and/or Azure VMware Solution (AVS) environments. [Learn more](migrate-support-matrix-vmware.md#import-servers-by-using-rvtools-xlsx-preview).

0 commit comments

Comments
 (0)