- Login to your GitHub account, navigate to the AML Real-Time Deployment Template repository and create a new repository from this template. Use these instructions for more details about creating a repository from a template.
-
Create a new project in Azure DevOps. Use these instructions for more details about creating a project in Azure DevOps.
-
Create an Azure Resource Manager Service connection. This is needed so Azure Devops can connect to your subscription and create/manage resources.
- Click on
project settings
(found at the bottom-left of the portal). - Click on
Service Connections
(found on the sidebar). - Click
New Service Connection
(found at the top-right of the portal). - Select
Azure Resource Manager
and clickNext
. - Select
Service principal (automatic)
and clickNext
. - Leave
Subscription
as the scope level and select yoursubscription
from the dropdown. - In the
Service connection name
textbox enterazure-service-connection
. Note: you can enter another name for your service connection but this will require editing thevariables.yml
file. - Leave the
Allow all pipelines to use this connection
checkbox selected and clickNext
.
The above steps assume you have
Contributor
orOwner
access to the subscription or resource group.See these instructions for more details about creating an Azure Resource Manager Service connection.
- Click on
-
Create a variable group in Azure DevOps to store values that are reused across multiple pipelines or pipeline stages.
-
Select the
Library
tab from thePipelines
section (found on the sidebar). -
Click
+ Variable group
and create a variable group namedaml-deployment-templates
. Note: you can enter another name for your variable group but this will require editing thevariables.yml
file. -
The variable group should contain the following required variables:
Variable Name Suggested Value aks_cluster_name
aks-cluster
aml_sku
enterprise
compute_cluster_name
cpu-cluster
environment
development
location
australiaeast
namespace
amlplatform
service_connection
azure-service-connection
-
See these instructions for more details about creating a variable group in Azure DevOps.
-
The easiest way to setup the environment is by using the AML Platform Deployment Template.
-
Alternatively, you can provision the infrastructure manually by:
- Creating an Azure Machine Learning Workspace
- Creating a compute cluster with the same name as the
compute_cluster_name
variable in the variable group in Azure DevOps. - Creating an inference cluster with the same name as the
aks_cluster_name
variable in the variable group in Azure DevOps. This will create an AKS cluster in your resource group. - Registering a dataset with the name
cardiovascular_disease_dataset
using the Cardiovascular Disease dataset (which has been adapted from Kaggle) and is available here.
The above steps assume you have
Contributor
orOwner
access to the subscription or resource group.
-
In your GitHub repository, edit any variables in the
variables.yml
you wish to change for your deployment. Remember to change the values forservice_connection
orresource_group_name
if you have selected something different in section 2 step 2 above. -
In your Azure DevOps project, create a pipeline from your repository.
- Select the
Pipelines
tab from thePipelines
section (found on the sidebar). - Click on
New Pipeline
(found at the top-right of the portal). - Select
GitHub
(authenticate if necessary). - Select your GitHub repository from the list of repositories (authenticate if necessary).
- Select
Existing Azure Pipelines YAML File
. - Select the
master
branch and enter/.pipeline/build-release.yml
as the path or select it from the dropdown and clickContinue
. - Select
Run
from the top-right of the protal to execute the pipeline and deploy the platform.
See these instructions for more details about creating a pipeline in Azure DevOps.
- Select the
-
When you call your web service endpoint all telemetry is collected and stored in the workspace storage account in a container called
modeldata
. The path to theinputs
andpredictions
output data in the blob follows this syntax:/modeldata/<subscriptionid>/<resourcegroup>/<workspace>/<webservice>/<model>/<version>/<designation>/<year>/<month>/<day>/data.csv
. Read more information here. -
This stored telemetry will be accessable via a dataset in the following form:
inference-data-<model_name>-<model_version>-<endpoint_name>
. A data drift monitor will be configured using this dataset as a target data and the training dataset as a baseline. This means the web service telemetry will be compared against the training (baseline) dataset to determine if model drift is present. -
The model data drift detector (as configured in this template) will automatically execute every day to determine if drift is present. Read more about model drift here.