New version 2.0.0
Code refactoring
- Concise and clean folders structure aligning with the "bring-my-own-code" concept
- Simple and clean Python code
- Update to the latest AzureML SDK
Linting and Unit testing
- PR and CI pipelines perform linting (with flake8) and unit testing of Python code
- PR and CI pipelines perform data integrity tests
Parameterization - via @tarockey
- AzDo pipelines and Python code are based on a set of variables defined in a Variable Group in an AzDo Project. * For local development the variables are grouped in .env.example file
Environment Setup
- Infrastructure as Code (IaC) pipelines to create (iac-create-environment.yml) and remove (iac-remove-environment.yml) all required resources for the repo (e.g. resource group, ML workspace, container registry, etc.)
Pipeline agent as a Docker container
- AzDo build pipelines are configured to run tasks in a Docker container having installed Python and all required dependencies
- The Docker Image is publicly available https://hub.docker.com/_/microsoft-mlops-python
- There is an AzDo pipeline (docker-image-pieline.yml) building and pushing the docker image
AzDo Build Pipelines
- Separate pipelines for PR and CI events
- PR pipeline (azdo-pr-build-train.yml) is triggered when a Pull Request to master is created. Performs linting, data and unit testing only.
- CI pipeline (azdo-ci-build-train.yml) is triggered when the code is merged to master. Performs linting, data testing, unit testing, building and publishing an ML pipeline.
- PR and CI pipelines use a pipeline template (azdo-base-pipeline.yml) handling common tasks such as linting and testing
Model Deployment with AML Deploy Model task
- The release pipeline deploying a model to ACI and AKS environments leverages AML Model Deploy Task
Rewritten documentation
- Readme
- Getting Started
- Code Description