Consider resource organization in Azure
You now have a clear understanding of which Azure services you will have working together for the first stage of migrating of the Spring Petclinic application. Next, you need to plan how the resource will be organized in Azure (without actually creating these resources yet, since that will be part of the next exercise). To address this need, try to answer the following questions:
How many resource groups will you be creating for hosting your Azure resources?
In Azure all resources that are created and deleted together typically should belong to the same resource group. In this case, since there is 1 application which provides a specific functionality, you can provision all resources for this application in a single resource group.
For information on how to organize your cloud-based resources to secure, manage, and track costs related to your workloads, see Organize your Azure resources effectively.
How will you configure networking for the application components?
In case you chose to use Azure container apps, you do have an option to deploy it into your own virtual network or in microsoft managed VNet. If you use your own VNet, you need to provide a subnet that is dedicated exclusively to the Container App environment you deploy. You need at least a /27 size subnet when using workload profiles and a /23 size subnet when using the consumption only plan.
In case you chose to use Azure Spring Apps, you have the option to deploy Azure Spring Apps either into a virtual network or deploy it without a virtual network dependency. The latter approach will simplify the task of making the first migrated version of the application accessible from the internet. Later on, in one of the subsequent exercises, you will change this approach to accommodate additional requirements. For now though, for the sake of simplicity, you will not create any virtual networks for Azure Spring Apps.
In case you chose AKS as the hosting platform, you will need at least one subnet in a virtual network to run the nodes of your AKS cluster. This subnet for now can be small, such as /26
, which allows for a total of 64 IP addresses (although some of them are pre-allocated for the platform use).
The Azure Database for MySQL deployment will not require any virtual network connectivity for the first phase of the migration of the application. This will also change in one of the subsequent exercises, when you will implement additional security measures to protect the full application stack.
Are there any supporting services you would need for running the application?
In case you chose Azure Spring Apps, no additional supporting services are needed during the first phase of the migration. All you need is a compute platform and a database.
In case you chose AKS, you will also need a container registry for storing any container images that will be deployed to the cluster. You can use for this purpose Azure Container Registry.
For Azure Container Apps, you might need a container registry, depending on how you prefer to deploy your apps, this can be containerized and in that case you will need the container registry. Or, you can also choose to deploy from a jar file or from source code. In those latter 2 cases Azure Container Apps will handle the containerization for you.