Steg 9 (R4): unified migrate-corpus.mjs --write over engineering/governance/ infrastructure/security. 327 filer mutert, verified=null, prosa byte-identisk (fra første ## seksjon), advisor urørt (0 endringer). To applier-fixes oppdaget under kjøring (TDD, RED→GREEN): - insertHeaderFields: anker faller nå tilbake når en meta-linje selv passerer 500B (2 filer pakket et avsnitt i **Status:** → Type/Source landet utenfor scan-vinduet, applierens post-write-assertion fanget + restaurerte). - normalizeStaleVerified: fjerner nå ALLE stale non-date **Verified:** i 500B-vinduet, inkl. stray body-dup rett under --- (9 mlops-genaiops-filer var ellers falskt "verified"/fresh, droppet fra worklist). Operatør-godkjent utvidelse av carve-out; kun stray metadata-linjer, aldri prosa. test-transform-criterion: precondition oppdatert til post-migrasjons-sannhet (fila bærer nå Source). Suite 728/728 grønn.
31 KiB
CI/CD Pipelines for Machine Learning Models
Last updated: 2026-06-19 Status: GA Category: MLOps & GenAIOps Type: reference Source: https://learn.microsoft.com/azure/machine-learning/concept-ml-pipelines
Innhold
- Introduksjon
- Kjernekomponenter
- Arkitekturmønstre
- Beslutningsveiledning
- Integrasjon med Microsoft-stakken
- Offentlig sektor (Norge)
- Kostnad og lisensiering
- For arkitekten (Cosmo)
- Kilder og verifisering
Introduksjon
CI/CD (Continuous Integration/Continuous Delivery) for maskinlæringsmodeller representerer en utvidelse av tradisjonelle DevOps-praksiser for å håndtere den unike kompleksiteten i ML-arbeidslaster. I motsetning til tradisjonell programvareutvikling, hvor deployment handler om kode, krever ML-løsninger automatisering av hele livssyklusen fra data validering og modelltrening til produksjonsutrulling og kontinuerlig overvåking.
Kjerneprinsippet er å automatisere bygging, testing og deployment av både kode og ML-modeller for å levere releaser mer hyppig og pålitelig enn manuelle prosesser. Dette blir stadig mer kritisk ettersom organisasjoner flytter fra eksperimentelle ML-prosjekter til produksjonssystemer som må opprettholde nøyaktighet, sikkerhet og compliance over tid.
Microsoft AI-stakken støtter CI/CD gjennom integrasjon mellom Azure Machine Learning, Azure DevOps og GitHub Actions, og tillater team å velge verktøy som passer deres modenhetsnivå og organisatoriske standarder. Denne tilnærmingen sikrer at ML-pipelines kan spores, reproduseres og skaleres på tvers av utviklings-, staging- og produksjonsmiljøer.
Kjernekomponenter
Pipeline Stages for ML CI/CD
| Stage | Beskrivelse | Typiske Aktiviteter | Automatiseringsgrad |
|---|---|---|---|
| Continuous Integration (CI) | Verifisere kode og modellkvalitet før deployment | Unit testing, linting, data validation, integration testing | Høy (automatisert ved PR/merge) |
| Model Training | Trene modeller på preprocessert data | Feature engineering, hyperparameter tuning, experiment tracking | Varierer (manuell → automatisert) |
| Model Validation | Evaluere modellytelse mot akseptansekriterier | A/B testing, compliance checks, performance benchmarks | Middels til høy |
| Continuous Delivery (CD) | Deploy modeller til pre-prod og prod miljøer | Containerization, endpoint deployment, traffic routing | Høy |
| Monitoring | Overvåke modeller i produksjon | Data drift detection, performance degradation, security scanning | Kontinuerlig (automatisert) |
Testing Strategies
ML-pipelines krever flere lag av testing som går utover tradisjonell kode-testing:
| Testtype | Formål | Verktøy (Microsoft Stack) | Når Utføres |
|---|---|---|---|
| Unit Testing | Validere individuelle funksjoner og komponenter | pytest, unittest i Azure Pipelines/GitHub Actions | Ved hver commit |
| Data Validation | Sjekke datakvalitet, schema changes, missing values | Azure ML Data Quality, Great Expectations | Pre-training, kontinuerlig |
| Integration Testing | Teste end-to-end ML pipelines i staging-miljø | Azure ML Pipelines, Databricks workflows | Ved PR merge til main |
| Model Performance Testing | Verifisere at modellen møter ytelseskrav | Azure ML Metrics, MLflow | Post-training, pre-deployment |
| Infrastructure Testing | Validere compute, networking, storage resources | Azure CLI, ARM template validation | Pre-deployment |
Deployment Gates
Deployment gates fungerer som kvalitetssikringsmekanismer før modeller promoteres til produksjon:
- Automated Approval Gates: Modeller må passere definerte terskelverdier (accuracy, precision, recall)
- Manual Approval Gates: Krav til godkjenning fra data scientists, compliance team eller business stakeholders
- Compliance Gates: Automatisk scanning for sikkerhetssårbarheter (CVE), GDPR/AI Act compliance, bias detection
- A/B Testing Gates: Sammenligning av ny modell mot nåværende produksjonsmodell før full rollout
Rollback Mechanisms
Robuste rollback-strategier er kritiske for ML-systemer:
| Mekanisme | Beskrivelse | Bruksscenario | Microsoft Implementering |
|---|---|---|---|
| Blue-Green Deployment | Kjør to identiske prod-miljøer; switch mellom dem | Zero-downtime rollback | Azure ML Managed Endpoints (multiple deployments) |
| Canary Deployment | Gradvis rollout til økende andel brukere | Risikoreduksjon ved store endringer | Azure ML Traffic Routing (percentage-based) |
| Model Versioning | Hold flere modellversjoner tilgjengelig | Rask rollback til tidligere versjon | Azure ML Model Registry, MLflow Model Registry |
| Artifact Tagging | Tag modeller med "production", "staging", "experimental" | Enkel identifikasjon av deploy-klare modeller | Azure ML Tags, Unity Catalog (Databricks) |
Arkitekturmønstre
Pattern 1: Azure DevOps Pipeline for ML
Dette mønsteret bruker Azure Pipelines for både CI og CD, med Azure ML for modelltrening og deployment.
Komponenter:
- Source Control: Azure Repos (eller GitHub)
- CI Pipeline: Azure Pipelines (YAML-basert)
- ML Orchestration: Azure Machine Learning Pipelines
- Artifact Storage: Azure ML Model Registry
- Deployment Target: Azure ML Managed Endpoints eller AKS
Workflow:
- Data scientist committer kode til feature branch
- PR trigger CI pipeline: linting, unit tests, data validation
- Ved merge til main: trigger training pipeline i Azure ML
- Modell registreres i Model Registry med metrics og lineage
- CD pipeline deployer modell til staging endpoint
- Etter godkjenning: promote til production endpoint med blue-green deployment
Eksempel YAML (forenklet):
trigger:
branches:
include:
- main
pool:
vmImage: 'ubuntu-latest'
stages:
- stage: CI
jobs:
- job: Validate
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.10'
- script: |
pip install -r requirements.txt
pytest tests/
displayName: 'Run Unit Tests'
- stage: Train
jobs:
- job: TrainModel
steps:
- task: AzureCLI@2
inputs:
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az ml job create --file training-pipeline.yml --resource-group <rg> --workspace-name <ws>
- stage: Deploy
jobs:
- deployment: DeployToStaging
environment: 'staging'
strategy:
runOnce:
deploy:
steps:
- task: AzureCLI@2
inputs:
inlineScript: |
az ml online-endpoint create --name model-endpoint-staging
az ml online-deployment create --endpoint model-endpoint-staging --file deployment.yml
Fordeler: Integrert med Azure økosystem, god RBAC, compliance-tracking Ulemper: Krever Azure DevOps lisens, mer kompleks oppsett for små team
Pattern 2: GitHub Actions for ML Deployment
Dette mønsteret bruker GitHub Actions for CI/CD, med OpenID Connect (OIDC) for sikker autentikasjon til Azure.
Komponenter:
- Source Control: GitHub
- CI/CD: GitHub Actions (YAML workflows)
- ML Orchestration: Azure Machine Learning CLI v2
- Authentication: OpenID Connect (federated credentials)
- Deployment: Azure ML Managed Endpoints
Workflow:
- Push til main branch trigger GitHub Actions workflow
- Workflow sjekker ut kode, autentiserer med Azure via OIDC
- Installerer Azure ML CLI v2 og kjører training job
- Modell registreres automatisk med MLflow tracking
- CD-steg deployer modell til endpoint med traffic routing
Eksempel YAML:
name: ML-Pipeline-Deployment
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
id-token: write
contents: read
jobs:
train-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Azure Login (OIDC)
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Setup Azure ML CLI
run: az extension add -n ml -y
- name: Run Training Pipeline
run: |
az ml job create --file pipeline.yml \
--resource-group ${{ vars.RESOURCE_GROUP }} \
--workspace-name ${{ vars.WORKSPACE_NAME }}
- name: Deploy to Endpoint
run: |
az ml online-deployment create \
--endpoint model-endpoint \
--file deployment.yml \
--all-traffic
Fordeler: Gratis for public repos, enkel integrasjon med GitHub ecosystem, moderne OIDC-autentikasering Ulemper: Mindre enterprise features enn Azure DevOps, rate limits på free tier
Pattern 3: Hybrid DevOps + ML Pipeline
Dette mønsteret separerer ML-spesifikke pipelines (Azure ML Pipelines) fra DevOps pipelines (Azure DevOps/GitHub Actions).
Komponenter:
- DevOps CI/CD: Azure DevOps eller GitHub Actions
- ML Pipelines: Azure ML Pipelines (for data prep, training, batch scoring)
- Orchestration Layer: Azure Data Factory eller Databricks Workflows
- Model Management: MLflow tracking + Azure ML Model Registry
Når Bruke Dette:
- Team har separate roller: data engineers (Azure ML Pipelines), DevOps engineers (CI/CD)
- Komplekse data dependencies krever orchestration utover DevOps-verktøy
- Behov for reusable ML pipeline components på tvers av prosjekter
Workflow:
- DevOps pipeline deployer infrastruktur (IaC) og kode
- DevOps pipeline trigger Azure ML Pipeline for training
- Azure ML Pipeline håndterer data prep → training → validation
- Ved suksess: DevOps CD pipeline deployer modell til endpoint
- Databricks Workflows håndterer scheduled retraining og batch scoring
Decision Tree:
- Bruk Azure ML Pipelines for: ML-spesifikk orchestration (caching, reuse, distributed compute)
- Bruk Azure Pipelines for: CI/CD, infrastructure deployment, approval gates
- Bruk Azure Data Factory for: Data orchestration (ETL/ELT), cross-platform data movement
Referanse: Which Azure pipeline technology should I use?
Beslutningsveiledning
Decision Table: Velge Riktig CI/CD Strategi
| Kriterium | Azure DevOps | GitHub Actions | Databricks MLOps Stacks |
|---|---|---|---|
| Team størrelse | Middels til stor (10+) | Liten til middels (2-20) | Middels til stor (Databricks-basert) |
| Eksisterende infra | Azure-tungt økosystem | GitHub-native teams | Databricks Lakehouse users |
| Compliance krav | Høy (RBAC, audit trails) | Middels (krever ekstra config) | Høy (Unity Catalog integration) |
| Modenhetsnivå | Middels til høy MLOps-modenhet | Lav til middels | Høy (krever Databricks kompetanse) |
| Kostnadsmodell | Paid (per pipeline parallelism) | Gratis for public, paid for private | Databricks lisens påkrevd |
| Best for | Enterprise ML i Azure | Startups, open-source prosjekter | Data science teams på Databricks |
Vanlige Feil
| Feil | Konsekvens | Mitigering |
|---|---|---|
| One-size-fits-all pipeline | Treg CI/CD for små endringer | Lag separate pipelines for kode vs. modelltrening |
| Manglende data versioning | Ikke-reproduserbare modeller | Bruk Delta Lake, DVC eller Azure ML Data Assets |
| Hardkodede credentials | Sikkerhetssårbarheter | Bruk Azure Key Vault, GitHub Secrets, eller OIDC |
| Ingen rollback-strategi | Langvarige production-issues | Implementer blue-green eller canary deployment |
| Overfitting til test data | Modeller feiler i prod | Bruk separate validation og test sets, monitor data drift |
| Skip av compliance gates | Regulatoriske brudd | Automatiser security scanning, bias detection i pipeline |
Røde Flagg
Disse signalene indikerer at din ML CI/CD ikke er production-ready:
- ❌ Manuell deployment av modeller: Høy risiko for human error
- ❌ Ingen automated testing: Modeller deployes uten validering
- ❌ Manglende monitoring: Data drift eller model decay oppdages ikke
- ❌ Secret sprawl: API keys og credentials i kode eller config-filer
- ❌ Single point of failure: Ingen redundancy i produksjons-endepunkter
- ❌ Ingen audit trail: Kan ikke spore hvilken kode/data som produserte en modell
Integrasjon med Microsoft-stakken
Azure DevOps Integration
Setup:
- Opprett Azure DevOps project med Azure Repos
- Koble til Azure ML workspace via Service Principal eller Managed Identity
- Installer Azure ML CLI v2 extension i pipeline agents
- Konfigurer variable groups for miljø-spesifikke settings
Key Features:
- Build Validation Policies: Krev at CI pipeline passes før PR merges
- Release Gates: Automatiske eller manuelle godkjenninger før prod deployment
- Artifact Feeds: Host private Python packages for ML-prosjekter
- Test Plans: Integrert testing for modellvalidering
Best Practices:
- Bruk YAML pipelines (ikke Classic UI) for version control
- Separate build artifacts (kode) fra ML artifacts (modeller)
- Bruk environments for staging/production med approval gates
GitHub Actions Integration
GitHub Actions with Azure Machine Learning (Verified MCP 2026-04)
The recommended authentication approach is OpenID Connect (OIDC) with federated credentials — eliminates long-lived secrets. Two options:
- Option 1: Microsoft Entra application — Create app registration, configure federated identity credential, assign role.
- Option 2: User-assigned managed identity — Create UAI, configure federated identity credential, assign role.
Workflow structure (/.github/workflows/):
permissions:
id-token: write
jobs:
build:
steps:
- uses: actions/checkout@v4
- uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- run: az ml job create --file pipeline.yml
MLOps v2 GitHub setup (recommended end-to-end):
- Fork
Azure/mlops-v2-gha-demotemplate repo - Set GitHub secrets:
ARM_CLIENT_ID,ARM_CLIENT_SECRET,ARM_SUBSCRIPTION_ID,ARM_TENANT_ID - Deploy infrastructure via
tf-gha-deploy-infra.ymlworkflow (Terraform) - Run
deploy-model-training-pipelineanddeploy-online-endpoint-pipelineworkflows
Pipeline stages: Prepare Data → Train Model → Evaluate Model → Register Model → Deploy Endpoint
Note (2026-04): The --json-auth/--sdk-auth parameters for az ad sp create-for-rbac are deprecated. New projects should use OIDC with federated credentials instead.
Setup:
- Opprett
.github/workflows/directory i repo - Konfigurer GitHub Secrets for Azure credentials (eller OIDC)
- Bruk
azure/login@v2action for autentikasering - Installer Azure ML CLI via
az extension add -n ml
Key Features:
- Reusable Workflows: Share ML pipeline logic across repos
- Matrix Builds: Test modeller på flere Python-versjoner eller compute targets
- Environments: Protected branches med required reviewers
- GitHub Packages: Host container images for ML inference
Best Practices:
- Bruk OpenID Connect (OIDC) i stedet for service principal secrets
- Limit workflow permissions (
permissions: id-token: write) - Bruk
concurrencysettings for å unngå parallelle deployments - Cache pip dependencies med
actions/cachefor raskere runs
Eksempel: OIDC Setup
- Opprett federated credential i Azure AD app registration
- Konfigurer GitHub Secrets:
AZURE_CLIENT_ID,AZURE_TENANT_ID,AZURE_SUBSCRIPTION_ID - Bruk
azure/login@v2med OIDC i workflow
Azure Container Registry (ACR)
Rolle i ML CI/CD:
- Lagre custom training container images
- Host inference containers for model deployment
- Integrate med Azure ML for reproducible environments
Workflow:
- Build Docker image med ML code og dependencies
- Push til ACR med semantic versioning tags
- Azure ML Environments refererer til ACR image URI
- Deployment bruker samme image for consistency
Security:
- Bruk Azure AD authentication (ikke admin credentials)
- Enable vulnerability scanning (Microsoft Defender for Containers)
- Implement image retention policies for cost optimization
Azure Kubernetes Service (AKS)
Bruk for ML:
- Host Azure ML inference endpoints for high-throughput scenarios
- Custom model serving (utover Azure ML Managed Endpoints)
- Multi-tenant ML platforms med namespace isolation
CI/CD Integration:
# Deploy model til AKS via Azure ML
az ml online-deployment create \
--endpoint my-endpoint \
--compute azureml:aks-cluster \
--file deployment.yml
Considerations:
- Krever Kubernetes kompetanse for operasjon
- Mer fleksibilitet enn Managed Endpoints, men mer overhead
- Best for: høy-throughput inference, custom serving logic
Offentlig sektor (Norge)
Sikkerhetskrav
Offentlig sektor i Norge må overholde strengere krav enn privat sektor ved deployment av ML-systemer:
| Krav | Relevans for CI/CD | Implementering |
|---|---|---|
| NSM Grunnprinsipper | Alle deployment pipelines må logge actions | Azure Monitor Logs, Azure DevOps audit logs |
| eForvaltningsforskriften | Kode og modeller må kunne auditeres | Git history, MLflow lineage tracking |
| Personvernforordningen (GDPR) | Data i pipelines må beskyttes | Azure Private Link, encrypted storage |
| Sikkerhetsloven | Kritiske systemer krever godkjenningsprosesser | Manual approval gates i CD pipeline |
Best Practice for Offentlig Sektor:
- Kjør CI/CD pipelines i Azure Norge-regioner (Norway East/West)
- Bruk Azure Policy for å enforce compliance (eks. "require tags on all ML models")
- Implementer "four eyes principle" for production deployments (required reviewers)
- Hold audit trail i minimum 5 år (GDPR-krav for offentlig sektor)
Godkjenningsprosesser
Offentlige virksomheter har ofte formelle godkjenningsprosesser som må integreres i CI/CD:
Stage-Gate Model:
- Development Stage: Fri eksperimentering, minimal godkjenning
- Test Stage: Godkjenning fra tech lead eller senior data scientist
- Pre-Production Stage: Godkjenning fra compliance officer og security team
- Production Stage: Godkjenning fra product owner og evt. sikkerhetsrådgiver
Implementering i Azure DevOps:
- Bruk Environments med Required Reviewers
- Konfigurer Branch Policies med "Require approval from specific users"
- Implementer custom pre-deployment gates (API-kall til internt godkjenningssystem)
Implementering i GitHub Actions:
jobs:
deploy-to-prod:
runs-on: ubuntu-latest
environment:
name: production
# Krever godkjenning fra minst 2 reviewers i GitHub Settings
steps:
- name: Deploy model
run: az ml online-deployment create --file deployment.yml
Compliance med AI Act
EU AI Act (implementeres i Norge via EØS) krever ekstra dokumentasjon for "høyrisiko AI-systemer":
| Krav | CI/CD Implementering |
|---|---|
| Risk Assessment | Automatisk generering av risk report i pipeline (template-basert) |
| Data Governance | Track data lineage fra source til modell (Azure ML Data Assets) |
| Model Documentation | Automatisk generering av model cards (metadata, metrics, limitations) |
| Human Oversight | Manual approval gates for høyrisiko-systemer |
| Transparency | Eksporter alle pipeline runs til immutable audit log |
Eksempel: Auto-generere Model Card
# I training pipeline (post-training step)
from azureml.core import Run
run = Run.get_context()
model_card = {
"model_name": "customer-churn-predictor",
"version": "1.2.0",
"training_data": "customer-data-2024-Q1",
"accuracy": 0.87,
"bias_metrics": {"gender_parity": 0.95},
"intended_use": "Predicting customer churn for retention campaigns",
"limitations": "Not suitable for real-time decisions on individual customers",
"risk_level": "medium"
}
run.log_table("model_card", value=model_card)
Kostnad og lisensiering
Azure DevOps Prising (2026)
| Komponent | Gratis Tier | Paid Tier | Kostnad (NOK/mnd) |
|---|---|---|---|
| Azure Repos | Ubegrenset private repos | - | Inkludert |
| Azure Pipelines | 1 free Microsoft-hosted job (1800 min/mnd) | Ekstra parallel jobs | ~450 NOK/job |
| Artifacts | 2 GB gratis | 1 TB | ~30 NOK/GB utover 2 GB |
| Test Plans | Ikke inkludert | Per user | ~625 NOK/bruker/mnd |
Viktige Poeng:
- Microsoft-hosted agents (Linux/Windows) er billigere enn self-hosted for små team
- Self-hosted agents er gratis, men krever vedlikehold av infra
- Private repos er gratis (uavhengig av antall)
Kostnadsoptimalisering:
- Bruk single-stage pipelines for enkle ML-jobs (reduserer pipeline run time)
- Implementer caching av pip packages (reduserer build time)
- Bruk matrix builds kun når nødvendig (teller som separate jobs)
GitHub Actions Prising (2026)
| Plan | Free | Team | Enterprise |
|---|---|---|---|
| Inkludert Minutes | 2000 min/mnd | 3000 min/mnd | 50 000 min/mnd |
| Kostnad per Ekstra Minutt | ~0,09 NOK (Linux) | ~0,09 NOK | ~0,09 NOK |
| Storage | 500 MB | 2 GB | 50 GB |
| Concurrent Jobs | 20 | 60 | 180 |
Viktige Poeng:
- Public repositories: Ubegrenset gratis minutes
- Windows og macOS runners koster mer (2x og 10x multiplier)
- Self-hosted runners er gratis (ingen minutt-grense)
Kostnadsoptimalisering:
- Bruk
ubuntu-latest(billigst runner type) - Implementer
concurrencygroups for å unngå duplikate runs - Bruk
pathstrigger filters for å kun kjøre pipeline ved relevante endringer:
on:
push:
paths:
- 'src/**'
- 'training/**'
Azure Machine Learning Compute Prising
CI/CD pipelines for ML krever compute for training og deployment:
| Compute Type | Bruksscenario | Kostnad (NOK/time, estimat) |
|---|---|---|
| Compute Instance | Interaktiv utvikling, små treningsjobber | ~15-150 NOK/time |
| Compute Cluster | Automatisk skalerende training | ~10-200 NOK/time (per node) |
| Managed Endpoints | Real-time inference | ~100-500 NOK/time (avhengig av SKU) |
| Batch Endpoints | Batch scoring | Kun compute cost (ingen endpoint overhead) |
Optimaliseringstips:
- Bruk low-priority VMs for training (opptil 80% rabatt, men kan preemptes)
- Implementer auto-shutdown for compute instances (spar kostnad ved inaktivitet)
- Bruk batch endpoints for ikke-sanntids inference (unngå "always on" cost)
Eksempel Pipeline Cost Breakdown (typisk MLOps setup):
- Azure DevOps: 450 NOK/mnd (1 parallel job)
- Azure ML Compute Cluster: ~2000 NOK/mnd (10 timer training/uke på Standard_D4s_v3)
- Managed Endpoint: ~3000 NOK/mnd (Standard_DS3_v2, always-on)
- Storage og Monitoring: ~500 NOK/mnd
- Total: ~5950 NOK/mnd
For arkitekten (Cosmo)
Spørsmål å Stille Klienten
-
Organisatorisk Modenhet:
- "Har dere erfaring med DevOps-pipelines i dag? Bruker dere Azure DevOps eller GitHub Actions?"
- "Har dere separate team for data science og DevOps, eller er rollene integrert?"
- "Hvor ofte deployer dere modeller til produksjon i dag? (daglig/ukentlig/månedlig)"
-
Compliance og Sikkerhet:
- "Er dette en høyrisiko AI-applikasjon i henhold til AI Act? (eks. rekruttering, kredittscoring)"
- "Hvilke compliance-krav må dere overholde? (GDPR, sikkerhetslov, bransjespesifikke)"
- "Har dere krav til 'four eyes principle' for produksjons-deployments?"
-
Teknisk Infrastruktur:
- "Kjører dere allerede arbeidslaster i Azure? Hvilke regioner brukes?"
- "Har dere eksisterende CI/CD-infrastruktur vi kan bygge videre på?"
- "Trenger dere support for multi-cloud eller hybrid deployment?"
-
ML-Spesifikke Behov:
- "Hvor ofte må modellene retraines? (continuous/scheduled/manual)"
- "Trenger dere A/B testing eller canary deployments for gradvis rollout?"
- "Har dere krav til reproduserbarhet og audit trails for modelltrening?"
-
Kostnadsrammer:
- "Hva er budsjettet for CI/CD-infrastruktur? (DevOps lisenser + compute)"
- "Er dere komfortable med consumption-based prising (pay-per-use)?"
- "Har dere kompetanse til å drifte self-hosted runners for kostnadsoptimalisering?"
Fallgruver å Unngå
-
Over-Engineering Tidlig:
- Start IKKE med kompleks multi-stage pipeline før team har grunnleggende CI/CD
- Bruk Azure ML Studio UI først, migrer til YAML når prosessen er stabil
- Unngå custom Docker containers før det er strengt nødvendig (bruk curated environments)
-
Secret Sprawl:
- ALDRI hardkode API keys eller connection strings i pipeline YAML
- Bruk Azure Key Vault eller GitHub Secrets konsekvent
- Implementer OIDC (OpenID Connect) for Azure-autentikasering i stedet for service principal secrets
-
Manglende Testing i Staging:
- IKKE deploy direkte til prod fra training pipeline
- Krev at modeller testes i staging-miljø med real-world data
- Implementer smoke tests (basic inference requests) før full rollout
-
Ignore Data Versioning:
- ML-modeller er et produkt av både kode OG data
- Bruk Azure ML Data Assets eller Delta Lake for å tracke data lineage
- Tag modeller med data version for reproduserbarhet
-
Single Point of Failure:
- Ikke ha kun ett produksjons-endpoint uten fallback
- Implementer blue-green deployment eller ha tidligere modellversjon klar til rollback
- Monitor endpoint health og implementer automatic failover
Anbefalinger per Modenhetsnivå
Nivå 0: No MLOps (manuell deployment)
Status: Data scientists kjører Jupyter notebooks lokalt, manuell deployment av modeller Anbefaling:
- Start med GitHub Actions for enkel CI/CD (gratis for public repos)
- Bruk Azure ML Studio UI for modelltrening (low-code approach)
- Implementer basic monitoring (Azure Application Insights)
- Ikke fokuser på automatisk retraining ennå
Nivå 1: DevOps, No MLOps
Status: Tradisjonell CI/CD finnes, men ikke tilpasset ML-workflows Anbefaling:
- Utvid eksisterende Azure DevOps/GitHub Actions pipelines med ML steps
- Implementer Azure ML CLI v2 i pipeline for modelltrening
- Introduser Model Registry for versjonering
- Legg til data validation steps (schema checks, missing values)
Nivå 2: Automated Training
Status: ML pipelines er automatisert, men deployment er fortsatt manuell Anbefaling:
- Implementer CD pipeline for automated deployment til staging
- Legg til approval gates for produksjons-deployments
- Bruk blue-green eller canary deployment strategies
- Integrer monitoring i feedback loop (data drift → trigger retraining)
Nivå 3: Automated Deployment
Status: Full CI/CD, modeller deployes automatisk ved godkjenning Anbefaling:
- Implementer continuous retraining triggers (schedule eller data drift-basert)
- Bruk feature stores for konsistent data across training/inference
- Introduser automated A/B testing for modellvalidering
- Implementer ML-specific monitoring (model performance, bias, fairness)
Nivå 4: Full MLOps Automation
Status: Alt er automatisert, inkludert retraining og deployment Anbefaling:
- Optimaliser pipeline ytelse (caching, parallelisering)
- Implementer multi-region deployment for high availability
- Introduser AutoML for hyperparameter tuning
- Bruk Responsible AI dashboard for compliance automation
Nivå 5: MLOps som Platform
Status: MLOps-kapabiliteter tilbys som intern platform til data science teams Anbefaling:
- Bygg reusable pipeline templates (Azure ML Components)
- Implementer self-service model deployment (internal developer platform)
- Bruk Infrastructure-as-Code (Terraform/Bicep) for miljøkonsistens
- Etabler sentralisert monitoring dashboard for alle modeller
Kilder og verifisering
Microsoft Learn URLs (Verified via MCP)
-
Use GitHub Actions with Azure Machine Learning https://learn.microsoft.com/en-us/azure/machine-learning/how-to-github-actions-machine-learning (Status: Verified MCP 2026-04 — OIDC recommended; supports Entra app or user-assigned managed identity)
-
MLOps and GenAIOps for AI workloads on Azure https://learn.microsoft.com/en-us/azure/well-architected/ai/mlops-genaiops (Status: Verified 2026-02, Well-Architected Framework MLOps guide)
-
Set up MLOps with GitHub https://learn.microsoft.com/en-us/azure/machine-learning/how-to-setup-mlops-github-azure-ml (Status: Verified MCP 2026-04 — uses mlops-v2-gha-demo accelerator; --json-auth deprecated, OIDC recommended)
-
How does Databricks support CI/CD for machine learning? https://learn.microsoft.com/en-us/azure/databricks/machine-learning/mlops/ci-cd-for-ml (Status: Verified 2026-02, Databricks MLOps Stacks guide)
-
Use Azure Databricks to orchestrate MLOps https://learn.microsoft.com/en-us/azure/architecture/ai-ml/idea/orchestrate-machine-learning-azure-databricks (Status: Verified 2026-02, arkitekturmønster for MLOps på Databricks)
-
Concepts - Machine learning operations (MLOps) for AKS https://learn.microsoft.com/en-us/azure/aks/concepts-machine-learning-ops (Status: Verified 2026-02, MLOps principles og DevOps-integrasjon)
-
Azure CI/CD data pipelines https://learn.microsoft.com/en-us/azure/devops/pipelines/apps/cd/azure/cicd-data-overview (Status: Verified 2026-02, data science CI/CD overview)
-
Which Azure pipeline technology should I use? https://learn.microsoft.com/en-us/azure/machine-learning/concept-ml-pipelines (Status: Verified 2026-02, decision guide for Azure Pipelines vs. Azure ML Pipelines)
Konfidensnivå per Seksjon
| Seksjon | Konfidens | Kilde |
|---|---|---|
| Introduksjon | Verified | MCP: MLOps and GenAIOps guide |
| Kjernekomponenter → Pipeline Stages | Verified | MCP: AKS MLOps concepts, CI/CD data pipelines |
| Kjernekomponenter → Testing Strategies | Baseline | Modellkunnskap + MCP: MLOps principles |
| Kjernekomponenter → Deployment Gates | Verified | MCP: Azure ML deployment docs |
| Kjernekomponenter → Rollback Mechanisms | Verified | MCP: Azure ML managed endpoints |
| Arkitekturmønstre → Azure DevOps Pipeline | Verified | MCP: Azure Pipelines MLOps setup |
| Arkitekturmønstre → GitHub Actions | Verified | MCP: GitHub Actions + Azure ML guide |
| Arkitekturmønstre → Hybrid DevOps + ML | Verified | MCP: Which pipeline technology guide |
| Beslutningsveiledning | Baseline | Modellkunnskap + best practices |
| Integrasjon med Microsoft-stakken | Verified | MCP: Multiple Azure ML integration docs |
| Offentlig sektor (Norge) | Baseline | Modellkunnskap (NSM, GDPR, AI Act) |
| Kostnad og lisensiering | Baseline | Modellkunnskap (2026 prising estimert) |
| For arkitekten (Cosmo) | Baseline | Beste praksiser + MLOps maturity model |
Overall Konfidens: 85% (majoriteten av innhold er verifisert via Microsoft Learn MCP-kilde, offentlig sektor og prising er basert på modellkunnskap og er merket som "Baseline")