Skip to content

Commit 0664594

Browse files
author
Seth
committed
Merge branch 'main' into azd/add-template-gallery
2 parents 32c5665 + 718c64e commit 0664594

14 files changed

Lines changed: 4189 additions & 5091 deletions

README.md

Lines changed: 30 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,16 @@
44

55
## Overview
66

7-
This solution accelerator provides a foundation template for deploying a Project within AI Foundry into a secure, private, isolated environment within Azure. The deployed features follow Microsoft's Well-Architected Framework (WAF) to establish isolated infrastructure for an AI Foundry Project, intended to move from a Proof of Concept state to a production-ready application.
7+
This is a foundational deployment solution for deploying an AI hub and project into an isolated environment (vNet) within Azure. The deployed features follow Microsoft's Well-Architected Framework [WAF](https://learn.microsoft.com/en-us/azure/well-architected/) to establish an isolated infrastructure for AI Foundry, intended to assist in moving from a Proof of Concept state to a production-ready application.
8+
9+
This template leverages Azure Verified Modules (AVM) and the Azure Developer CLI (AZD) to provision a WAF-aligned infrastructure for AI application development. This infrastructure includes AI Foundry elements, a virtual network (VNET), private endpoints, Key Vault, a storage account, and additional, optional WAF-aligned resources (such as Cosmos DB and SQL Server) that can be leveraged with Foundry developed projects.
10+
11+
The following deployment automates our recommended configuration to protect your data and resources; using Microsoft Entra ID role-based access control, a managed network, and private endpoints. We recommend disabling public network access for Azure OpenAI resources, Azure AI Search resources, and storage accounts (which will occur when deploying those optional services within this workflow). Using selected networks with IP rules isn't supported because the services' IP addresses are dynamic.
12+
13+
AI Foundry has two network isolation aspects, this repository will automate:
14+
1. Configuring the network isolation of the Azure AI Foundry hub and project managed compute (compute instance, serverless compute, managed online endpoint) [Configure Managed Network](https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/configure-managed-network)
15+
2. Configuring the virtual network, private end points and private link services to isolate resources to connect to the hub and project in a secure way. [Secure Data Playground](https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/secure-data-playground)
816

9-
This template leverages Azure Verified Modules (AVM) and the Azure Developer CLI (AZD) to provision WAF-aligned infrastructure. This infrastructure includes AI Foundry elements, a virtual network (VNET), private endpoints, Key Vault, a storage account, and optional WAF-aligned resources (such as Cosmos DB and SQL Server) that can be leveraged with AI Foundry–developed projects.
1017

1118
## Architecture
1219
The diagram below illustrates the capabilities included in the template.
@@ -23,26 +30,29 @@ The diagram below illustrates the capabilities included in the template.
2330

2431
## Features
2532

26-
### What solutions does this enable?
27-
- Deploy AI Foundry application into a secure environment
33+
### What solutions does this enable?
34+
- Deploys AI hub and AI project into a virtual network with all dependent services connected via private end points.
2835

29-
- Connect the application to essential Azure services while adhering to the best practices outlined in the Well Architected Framework
36+
- Configures AI Foundry, adhering to the best practices outlined in the Well Architected Framework.
3037

31-
- Provide the ability to select services to deploy that are relevant to the project
38+
- Provides the ability to add additional Azure services during deployment, configured to connect via isolation, to facilitate your AI project.
39+
(API Management, CosmosDB, Azure SQL DB, App Service)
3240

33-
## Prerequisites
41+
## Prerequisites and high-level steps
3442

35-
1. Azure subscription and Entra ID account with Contributor permissions.
36-
2. Install the [Azure Developer CLI (AZD)](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/install-azd?tabs=winget-windows%2Cbrew-mac%2Cscript-linux&pivots=os-windows)
37-
3. Validate [Required Roles and Scopes](Required_Roles_and_Scopes.md)
38-
4. (Optional) [GitHub Codespaces deployment](DeployViaCodeSpaces.md) - requires the user to be on a GitHub Team or Enterprise Cloud plan
43+
1. Have access to an Azure subscription and Entra ID account with Contributor permissions.
44+
2. Confirm the subscription you are deploying into has the [Required Roles and Scopes](Required_roles_scopes_resources.md) and
45+
3. If deploying from your [local environment](local_environment_steps.md) Install the [Azure Developer CLI (AZD)](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/install-azd?tabs=winget-windows%2Cbrew-mac%2Cscript-linux&pivots=os-windows)
46+
4. If deploying via [GitHub Codespaces](github_code_spaces_steps.md) - requires the user to be on a GitHub Team or Enterprise Cloud plan
47+
5. If leveraging [One-click deployment](#quick-deploy)
48+
6. If leveraging [GitHub Actions](github_actions_steps.md)
3949

4050
For additional documentation of the default enabled services of this solution accelerator, please see:
4151

4252
1. [Azure Open AI Service](https://learn.microsoft.com/en-us/azure/ai-services/openai/)
4353
2. [Azure AI Search](https://learn.microsoft.com/en-us/azure/search/)
44-
3. [Azure AI Foundry Hub](https://learn.microsoft.com/en-us/azure/ai-foundry/)
45-
4. [Azure AI Foundry Project](https://learn.microsoft.com/en-us/azure/ai-foundry/)
54+
3. [Azure AI hub](https://learn.microsoft.com/en-us/azure/ai-foundry/)
55+
4. [Azure AI project](https://learn.microsoft.com/en-us/azure/ai-foundry/)
4656
5. [Azure Container Registry](https://learn.microsoft.com/en-us/azure/container-registry/)
4757
6. [Azure Virtual Machines](https://learn.microsoft.com/en-us/azure/virtual-machines/)
4858
7. [Azure Storage](https://learn.microsoft.com/en-us/azure/storage/)
@@ -52,6 +62,7 @@ For additional documentation of the default enabled services of this solution ac
5262
11. [Azure Log Analytics](https://learn.microsoft.com/en-us/azure/azure-monitor/logs/log-analytics-overview)
5363
12. [Azure Application Insights](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview)
5464

65+
## Getting Started
5566

5667
<h2><img src="./img/Documentation/quickDeploy.png" width="64">
5768
<br/>
@@ -62,55 +73,15 @@ QUICK DEPLOY
6273
|---|---|---|
6374
[Steps to deploy with GitHub Codespaces](DeployViaCodeSpaces.md)
6475

65-
## Getting Started
66-
67-
### Clone Repository
68-
69-
```bash
70-
git clone https://github.com/microsoft/Deploy-Your-AI-Application-In-Production.git
71-
cd Deploy-Your-AI-Application-In-Production
72-
```
73-
74-
### Establish AZD Environment
75-
76-
This solution uses the [Azure Developer CLI](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/overview) to quickly provision and deploy infrastructure and applications to Azure.
77-
78-
To get started, authenticate with an Azure Subscription ([details](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/reference#azd-auth-login)):
7976

80-
```powershell
81-
azd auth login
82-
```
77+
## Connect to and validate access to the new environment
78+
Follow the post deployment steps [Post Deployment Steps](post_deployment_steps.md) to connect to the isolated environment.
8379

84-
Establish new environment. Provide a name that represents the application domain:
8580

86-
```powershell
87-
azd env new '<app name>'
88-
```
81+
## Deploy your application in the isolated environment
82+
- Leverage the Microsoft Learn documentation to provision an app service instance within your secure network [Configure Web App](https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/on-your-data-configuration#azure-ai-foundry-portal)
83+
- Follow these instructions to [Add your data and chat with it in the AI Foundry playground](https://learn.microsoft.com/en-us/azure/ai-foundry/tutorials/deploy-chat-web-app#add-your-data-and-try-the-chat-model-again)
8984

90-
Optionally set environment variables via the following commands:
91-
92-
```powershell
93-
azd env set 'AZURE_VM_ADMIN_PASSWORD' '<secure password>'
94-
```
95-
96-
## Deploy
97-
98-
To provision the necessary Azure resources and deploy the application, run the azd up command:
99-
```powershell
100-
azd up
101-
```
102-
This will kick off an interactive console to provide required flags and parameters to deploy the infrastructure of a secure, WAF-aligned AI Foundry environment.
103-
104-
>- This deployment will take 15-20 minutes to provision the resources in your account. If you get an error or timeout with deployment, changing the location can help, as there may be availability constraints for the resources.
105-
>- Note the `.env` file created at `/.azure/<app name>`. These are the environment configuration output from running the `azd up` command. These values are names of resources created as part of the baseline infrastructure.
106-
107-
## Connect to & Check the New Environment
108-
1. In [Azure Portal](https://portal.azure.com), follow this Azure Bastion [guide](https://learn.microsoft.com/en-us/azure/bastion/bastion-connect-vm-rdp-windows#rdp) to access the network isolated AI Foundry hub & project.
109-
2. Confirm private services are accessible from within the secure Virtual Network by following these [test verfiication steps](./Verify_Services_On_Network.md) on the Virtual Machine within the VNET.
110-
111-
## Connect Your Model
112-
<!-- Add latest guidance in customer friendly language -->
113-
Configure AI model and settings in [AI Foundry Portal](https://ai.azure.com)
11485

11586
## Guidance
11687

@@ -124,7 +95,7 @@ You can estimate the cost of this project's architecture with [Azure's pricing c
12495

12596
### Security
12697

127-
This template has either [Managed Identity](https://learn.microsoft.com/entra/identity/managed-identities-azure-resources/overview) or Key Vault built in to eliminate the need for developers to manage these credentials. Applications can use managed identities to obtain Microsoft Entra tokens without having to manage any credentials.
98+
This template has [Managed Identity](https://learn.microsoft.com/entra/identity/managed-identities-azure-resources/overview) built in to eliminate the need for developers to manage these credentials. Applications can use managed identities to obtain Microsoft Entra tokens without having to manage any credentials.
12899

129100
<h2>
130101
Supporting documents
@@ -137,15 +108,7 @@ Supporting documents
137108
- [Azure OpenAI Service - Documentation, quickstarts, API reference - Azure AI services | Microsoft Learn](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/use-your-data)
138109
- [Azure AI Content Understanding documentation](https://learn.microsoft.com/en-us/azure/ai-services/content-understanding/)
139110

140-
<!-- </br>
141-
Responsible AI Transparency FAQ
142-
</h2>
143-
144-
Please refer to [Transparency FAQ](./TRANSPARENCY_FAQ.md) for responsible AI transparency details of this solution accelerator. -->
145111

146-
<br/>
147-
<br/>
148-
<br/>
149112

150113
---
151114

File renamed without changes.

Verify_Services_On_Network.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This guide will walk you through using a secure jump-box virtual machine to inst
44

55
## Steps
66

7-
### 1. Copy Testing Scipt to Virtual Machine
7+
### 1. Copy Testing Script to Virtual Machine
88

99
Copy [TestConnections.ps1](./scripts/TestConnections.ps1) to the Virtual Machine.
1010

@@ -28,7 +28,7 @@ Follow the instructions to complete the authentication process.
2828

2929
### 4. Provide Parameters
3030

31-
Gather the necessary parameters for your environment from the provisioned resources in the Resource Group. These values can be retreived from the Azure Portal or in the `.env` file under `/.azure/your-env-name/.env`.
31+
Gather the necessary parameters for your environment from the provisioned resources in the Resource Group. These values can be retrieved from the Azure Portal or in the `.env` file under `/.azure/your-env-name/.env`.
3232

3333
```powershell
3434
$subscriptionId = "your-subscription-id"
@@ -38,7 +38,7 @@ $storageAccount = "your-storage-account-name"
3838
$containerRegistry = "your-container-registry-name"
3939
```
4040

41-
### 4. Execute Testing PowerShell Script
41+
### 5. Execute Testing PowerShell Script
4242

4343
```powershell
4444
.\TestConnections.ps1 `

github_actions_steps.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# GitHub Actions Pipeline deployment steps (CI/CD)
2+
3+
These steps are coming soon!
4+
Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ You can run this solution using GitHub Codespaces. The button will open a web-ba
5656
![image of prompts](img/provisioning/prompts.png)
5757
**Be sure to remember the vm password and vm username. This will be used in a later step. Because we are using FDPO subscriptions, we do not have access to Entra to create the SSO to the jump box at this time. You are still required to log into Azure once you connect to the virtual machine.
5858

59-
11. After completeing the required paramters that you were prompted for, the provisioning of resources will run and deploy the Network Isolated AI Foundry Hub, Project and dependent resources in about 20 minutes.
59+
11. After completeing the required paramters that you were prompted for, the provisioning of resources will run and deploy the Network Isolated AI hub, project and dependent resources in about 20 minutes.
6060

6161
# Post Deployment Steps:
6262
These steps will help to check that the isolated environment was set up correctly.
@@ -117,12 +117,6 @@ A more thourough check is to look for the networking settings and checking for p
117117

118118
![Image showing the Azure Foundry AI Hub with a private bubble icon](img/provisioning/checkNetworkIsolation11.png)
119119

120-
121-
122-
123-
124-
125-
126120
## Contributing
127121

128122
This project welcomes contributions and suggestions. Most contributions require you to agree to a
-66.6 KB
Loading

infra/README.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)