跨云平台MLOps实践:在Azure、AWS和开源环境中构建部署AI模型

本文详细介绍了如何构建云无关的MLOps架构,使用Airflow、Kubeflow、MLflow等开源工具在多个云平台部署AI模型,避免厂商锁定,实现模型的可移植性和可重复性。

云无关MLOps:如何在Azure、AWS和开源环境中构建和部署AI模型

人工智能已成为每个数字战略的核心。从数据科学家笔记本电脑上运行的孤立概念验证,现在需要跨云、业务部门和大陆进行扩展。

企业很快发现挑战不在于构建AI模型,而在于可持续地将其运营化。

云便利性困境

Azure Machine Learning和AWS SageMaker简化了AI采用的早期阶段。它们的集成环境、数据管道、注册表和端点可以在几周内将模型从笔记本过渡到生产环境。

但便利性隐藏了复杂性:

  • 每个服务都引入了专有API和元数据格式
  • 即使在没有产生业务价值之前,成本也会随实验线性增长
  • 在区域或云之间移植工作负载变成了迁移项目

三栈格局

下表展示了Azure、AWS和开源生态系统之间的对比:

能力 Azure AWS 开源/云无关
数据编排 Azure Data Factory AWS Glue / Step Functions Apache Airflow / Prefect
数据湖/存储 ADLS Gen2 S3 + Lake Formation Apache Iceberg / Delta Lake + MinIO
特征存储 Azure ML Feature Store SageMaker Feature Store Feast / Hopsworks
实验跟踪 Azure ML Workspaces SageMaker Experiments MLflow + DVC
模型注册 Azure Model Registry SageMaker Model Registry MLflow Registry / OpenModelDB
训练计算 AML Compute Clusters SageMaker Training Jobs Kubeflow / Argo Workflows / Ray
推理服务 托管端点(AKS) SageMaker Endpoints KServe / Seldon Core
管道CI/CD Azure Pipelines CodePipeline + Step Functions GitHub Actions + Argo CD / Flux
监控和漂移 Azure Monitor + Insights CloudWatch + SageMaker Monitor Prometheus + Grafana + Evidently AI
安全和策略 Defender for Cloud + Policy GuardDuty + Config Rules OPA + Vault + Trivy
成本和FinOps Azure Cost Management Cost Explorer + Budgets Kubecost / OpenCost

数据管道和特征工程

托管方式 Azure Data Factory和AWS Glue提供基于GUI的ETL,与其生态系统紧密集成。

开放方式 Apache Airflow或Prefect将管道表示为Python代码,在Git中进行版本控制。MinIO作为S3兼容的对象存储,可部署在Kubernetes或裸机上。

示例Airflow代码片段:

1
2
3
with DAG("daily_etl", schedule="@daily") as dag:
    PythonOperator(task_id="extract", python_callable=extract)
    PythonOperator(task_id="transform", python_callable=transform)

实验和可重复性

使用MLflow和DVC将实验记录为版本控制下的文件:

1
2
3
with mlflow.start_run():
    mlflow.log_param("lr", 0.001)
    mlflow.log_metric("f1", 0.89)

规模化训练

云无关方法 Kubeflow管道或Argo工作流直接在Kubernetes上运行,使用自己的扩展规则。

示例可移植训练作业:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
apiVersion: batch/v1
kind: Job
metadata:
  name: train-model
spec:
  template:
    spec:
      containers:
      - name: trainer
        image: myrepo/trainer:latest
        command: ["python", "train.py"]
      restartPolicy: Never

模型打包和注册表

开放方法使用MLflow注册表,将模型作为版本化工件存储在MinIO或Nexus中:

1
mlflow models serve -m models:/Churn/1 --port 5000

部署和推理

开放路径 KServe和Seldon Core将模型公开为Kubernetes服务。

示例Seldon清单:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
apiVersion: machinelearning.seldon.io/v1
kind: SeldonDeployment
metadata:
  name: sentiment
spec:
  predictors:
  - graph:
      implementation: SKLEARN_SERVER
      modelUri: "s3://minio/models/sentiment"
    replicas: 2

CI/CD管道

开放管道统一了DevOps和MLOps:

  • GitHub Actions → 构建和测试
  • DVC → 重现训练
  • Argo CD → GitOps部署

可观测性和漂移检测

开放栈统一所有内容:

工具 用途
指标 Prometheus 抓取模型和基础设施指标
可视化 Grafana 统一仪表板
漂移 Evidently AI 统计漂移报告
数据质量 Great Expectations 模式和验证检查

示例漂移检测:

1
2
3
4
from evidently.report import Report
from evidently.metric_preset import DataDriftPreset
report = Report(metrics=[DataDriftPreset()])
report.run(reference_data=ref_df, current_data=prod_df)

治理、安全性和可解释性

开放模型使用:

  • OPA(开放策略代理)用于策略即代码
  • Trivy用于容器扫描
  • Vault + Sealed Secrets用于凭证
  • AI Fairness 360和Alibi用于偏见检测和可解释性

持续重训练和自动化

使用Airflow或Kubeflow管道监听漂移指标:

1
2
if drift_score > 0.3 or accuracy_drop > 0.05:
    trigger_retrain()

管道:监控 → 重训练 → 验证 → 注册 → 金丝雀部署

FinOps和成本可见性

Kubecost和OpenCost聚合跨集群的支出,甚至比较本地与云成本。

跨云安全和合规性

现代企业在SOC2、ISO 27001和AI道德准则下运营。开放工具填补合规性空白:

关注点 开源解决方案
容器漏洞 Trivy / Clair
密钥 Vault / Sealed Secrets
策略执行 OPA
网络分段 Kubernetes NetworkPolicies
审计跟踪 MLflow + Git提交元数据

架构视图

供应商架构

1
2
Azure Data Factory → Azure ML Studio → AKS Endpoints → Azure Monitor
AWS Glue → SageMaker Train/Deploy → CloudWatch

开放架构

1
2
Airflow/Prefect → Iceberg + Feast → Kubeflow Train → MLflow Registry →
KServe Deploy → Prometheus + Grafana + Evidently → OPA Governance

云无关AI的商业案例

  • 移动自由:避免锁定意味着获得谈判杠杆和合规灵活性
  • 统一技能集:工程师学习Kubernetes,而不是五个不同的专有门户
  • 透明成本:当每个字节和Pod都可观察时,FinOps更简单
  • 可审计性:当每个工件都存在于Git和开放数据库中时,监管可追溯性得到改善
  • 创新速度:开放生态系统比托管生态系统发展更快

前进之路

实用方法不是放弃Azure或AWS,而是与它们解耦:

  • 以开放格式保存数据(Parquet、Iceberg)
  • 标准化使用MLflow进行跟踪
  • 在任何地方使用Kubernetes作为基础
  • 实施GitOps(Argo CD)以实现可重复性
  • 早期集成Evidently AI、Kubecost和OPA

结论:自由是终极优化

构建AI模型不再是竞争优势;在任何地方安全、可持续地交付它们才是。

Azure和AWS提供了强大的托管体验,但它们的优势也是它们的牢笼。基于Airflow、Kubeflow、MLflow、KServe、Prometheus和OPA构建的开放、云无关架构提供了相同的智能而没有约束。

掌握这种模式的企业可以:

  • 今天在Azure上训练
  • 明天在AWS上部署
  • 下季度在本地重训练,无需重写任何代码

在基础设施每几年变化一次的世界中,可移植性就是新的生产力。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计