|
42 | 42 | <br> |
43 | 43 | <img src="./images/deployment/Subscription_ResourceProvider.png" alt="ResourceProvider" width="900"> |
44 | 44 |
|
45 | | -## Deployment |
| 45 | +## Deployment Options & Steps |
| 46 | + |
| 47 | +### Sandbox or WAF Aligned Deployment Options |
| 48 | + |
| 49 | +The [`infra`](../infra) folder of the Multi Agent Solution Accelerator contains the [`main.bicep`](../infra/main.bicep) Bicep script, which defines all Azure infrastructure components for this solution. |
| 50 | + |
| 51 | +By default, the `azd up` command uses the [`main.parameters.json`](../infra/main.parameters.json) file to deploy the solution. This file is pre-configured for a **sandbox environment** — ideal for development and proof-of-concept scenarios, with minimal security and cost controls for rapid iteration. |
| 52 | + |
| 53 | +For **production deployments**, the repository also provides [`main.waf.parameters.json`](../infra/main.waf.parameters.json), which applies a [Well-Architected Framework (WAF) aligned](https://learn.microsoft.com/en-us/azure/well-architected/) configuration. This option enables additional Azure best practices for reliability, security, cost optimization, operational excellence, and performance efficiency, such as: |
| 54 | + |
| 55 | + - Enhanced network security (e.g., Network protection with private endpoints) |
| 56 | + - Stricter access controls and managed identities |
| 57 | + - Logging, monitoring, and diagnostics enabled by default |
| 58 | + - Resource tagging and cost management recommendations |
| 59 | + |
| 60 | +**How to choose your deployment configuration:** |
| 61 | + |
| 62 | +* Use the default `main.parameters.json` file for a **sandbox/dev environment** |
| 63 | +* For a **WAF-aligned, production-ready deployment**, copy the contents of `main.waf.parameters.json` into `main.parameters.json` before running `azd up` |
| 64 | + |
| 65 | +--- |
| 66 | + |
| 67 | +### VM Credentials Configuration |
| 68 | + |
| 69 | +By default, the solution sets the VM administrator username and password from environment variables. |
| 70 | +If you do not configure these values, a randomly generated GUID will be used for both the username and password. |
| 71 | + |
| 72 | +To set your own VM credentials before deployment, use: |
| 73 | + |
| 74 | +```sh |
| 75 | +azd env set AZURE_ENV_VM_ADMIN_USERNAME <your-username> |
| 76 | +azd env set AZURE_ENV_VM_ADMIN_PASSWORD <your-password> |
| 77 | +``` |
| 78 | + |
| 79 | +> [!TIP] |
| 80 | +> Always review and adjust parameter values (such as region, capacity, security settings and log analytics workspace configuration) to match your organization’s requirements before deploying. For production, ensure you have sufficient quota and follow the principle of least privilege for all identities and role assignments. |
| 81 | +
|
| 82 | + |
| 83 | +> [!IMPORTANT] |
| 84 | +> The WAF-aligned configuration is under active development. More Azure Well-Architected recommendations will be added in future updates. |
| 85 | +
|
| 86 | +## Deployment Steps |
| 87 | + |
| 88 | +Consider the following settings during your deployment to modify specific settings: |
| 89 | + |
| 90 | +<details> |
| 91 | + <summary><b>Configurable Deployment Settings</b></summary> |
| 92 | + |
| 93 | +When you start the deployment, most parameters will have **default values**, but you can update the following settings [here](../docs/CustomizingAzdParameters.md): |
| 94 | + |
| 95 | +| **Setting** | **Description** | **Default value** | |
| 96 | +| ------------------------------ | ------------------------------------------------------------------------------------ | ----------------- | |
| 97 | +| **Environment Name** | Used as a prefix for all resource names to ensure uniqueness across environments. | dkm | |
| 98 | +| **Azure Region** | Location of the Azure resources. Controls where the infrastructure will be deployed. | australiaeast | |
| 99 | +| **Model Deployment Type** | Defines the deployment type for the AI model (e.g., Standard, GlobalStandard). | GlobalStandard | |
| 100 | +| **GPT Model Name** | Specifies the name of the GPT model to be deployed. | gpt-4.1 | |
| 101 | +| **GPT Model Version** | Version of the GPT model to be used for deployment. | 2024-08-06 | |
| 102 | +| **GPT Model Capacity** | Sets the GPT model capacity. | 100K | |
| 103 | +| **Embedding Model** | Default: **text-embedding-ada-002**. | text-embedding-3-large | |
| 104 | +| **Embedding Model Capacity** | Set the capacity for **embedding models** (in thousands). | 200k | |
| 105 | +| **Enable Telemetry** | Enables telemetry for monitoring and diagnostics. | true | |
| 106 | +| **Existing Log Analytics Workspace** | To reuse an existing Log Analytics Workspace ID instead of creating a new one. | *(none)* | |
| 107 | + |
| 108 | +</details> |
46 | 109 |
|
47 | 110 | ### Deploying with AZD |
48 | 111 |
|
@@ -83,23 +146,19 @@ Once you've opened the project in [Codespaces](#github-codespaces), [Dev Contain |
83 | 146 | -- This deployment will take *7-10 minutes* to provision the resources in your account and set up the solution with sample data. |
84 | 147 | - If you encounter an error or timeout during deployment, changing the location may help, as there could be availability constraints for the resources. |
85 | 148 |
|
86 | | -6. Once the deployment has completed successfully, open the [Azure Portal](https://portal.azure.com/), go to the deployed resource group, find the App Service, and get the app URL from `Default domain`. |
87 | | -
|
88 | | -7. If you are done trying out the application, you can delete the resources by running `azd down`. |
| 149 | +6. If you are done trying out the application, you can delete the resources by running `azd down`. |
89 | 150 |
|
90 | 151 | ### Post Deployment Script: |
91 | 152 |
|
92 | 153 | The post deployment process is very straightforward and simplified via a single [deployment script](../Deployment/resourcedeployment.ps1) that completes in approximately 20-30 minutes: |
93 | 154 |
|
94 | 155 | ### Automated Deployment Steps: |
95 | 156 | 1. Deploy Azure resources. |
96 | | -2. Get secret information from Azure resources. |
97 | | -3. Update application configuration files with secrets. |
98 | | -4. Set Application Configuration in Azure App Configuration. |
99 | | -4. Compile application, build image, and push to Azure Container Registry. |
100 | | -5. Configure Kubernetes cluster infrastructure. |
101 | | -6. Update Kubernetes configuration files. |
102 | | -7. Deploy certificates, ingress controller and then application images from Azure Container Registry. |
| 157 | +2. Configure Kubernetes Infrastructure. |
| 158 | +3. Update Kubernetes configuration files with the FQDN, Container Image Path and Email address for the certificate management. |
| 159 | +4. Configure AKS (deploy Cert Manager, Ingress Controller) and Deploy Images on the kubernetes cluster. |
| 160 | +5. Docker build and push container images to Azure Container Registry. |
| 161 | +6. Display the deployment result and following instructions. |
103 | 162 |
|
104 | 163 | Open PowerShell, change directory where you code cloned, then run the deploy script: |
105 | 164 |
|
|
0 commit comments