【免费下载链接】pycaretOpen-source, low-code AutoML platform for Python. PyCaret 4.0: sklearn-native engine React control plane.项目地址https://gitcode.com/gh_mirrors/py/pycaret点击查看免费下载导读本文以 infra/terraform/azure/README.md 为骨架梳理 PyCaret 4.0 平台面向微软 Azure 的 Terraform 部署模块设计。读者将了解到该模块作为 V2 阶段性占位stub声明了哪些 Azure 托管服务组合、它与 AWS / GCP 模块在多云矩阵中的对应关系、Control Plane 各组件API、Worker、数据库、对象存储、缓存、密钥、可观测性在 Azure 生态中的落点以及从当前本地 Docker Compose 交付走向云上一键部署的整体演进路线。文章同时结合仓库源码说明这些云服务在后端运行时层面的对接现状与约束。模块定位面向 Azure 的 Control Plane 一键部署模块V2 stubinfra/terraform/azure/目录当前仅包含一份 READMEinfra/terraform/azure/README.md自述为Azure deployment module (V2 stub)即 V2 阶段性的部署模块占位。它在仓库中的上级语境由两份文档共同定义infra/terraform/README.md明确标注aws/、gcp/、azure/三个子目录均为stubs占位目标是 V2每个云各提供一个自包含的 Terraform 模块从零开始完整交付 Control Plane。infra/README.md将infra/terraform/归入非源码、用于交付 PyCaret Control Plane的部署基础设施并指出当前处于 MVP 激活状态的只有infra/docker/Terraform 与 Helm 均为路线图项。该模块的声明目标如下Container Apps或可选 AKS Azure Database for PostgreSQL Blob Storage Azure Cache for Redis Application Gateway Key Vault Application Insights。也就是说Azure 模块要把计算、数据库、对象存储、缓存、网关、密钥管理与可观测性全部纳入一个terraform apply的交付范围这与 AWS、GCP 模块的粒度保持一致。多云矩阵Azure 在三朵云中的对应位置infra/terraform/README.md 给出了三朵云逐项对应的服务矩阵Azure 列是本模块的直接参照云计算数据库对象存储缓存密钥日志AWSECS/Fargate或 EKSRDS PostgresS3ElastiCacheSecrets ManagerCloudWatchGCPCloud Run或 GKECloud SQLGCSMemorystoreSecret ManagerCloud LoggingAzureContainer Apps或 AKSAzure Database for PostgreSQLBlob StorageAzure CacheKey VaultApp Insights该矩阵揭示了三条设计准则每朵云自包含每个模块都是独立的 Terraform 模块一次terraform apply即可从零交付整套 Control Plane变量面最小化每个模块只暴露region、domain、tier等最少输入其余全部使用默认值Variables expose the minimum surface (region, domain, tier), everything else is defaulted计算层允许替换AWS 用 ECS/Fargate、GCP 用 Cloud Run、Azure 用 Container Apps同时各自保留 K8sEKS / GKE / AKS作为 opt-in 选项。从 docs/revamp/PLATFORM_ARCHITECTURE.md 的路线图看AWS 模块被定义为 canonical production deploy 路径阶段 2而 Azure 模块被明确列入阶段 5 Multi-cloud属于far future的远期交付物配套的设想是 Azure pack (Azure SQL, Blob, Container Apps, Service Bus)。目标架构Azure 托管服务与 Control Plane 组件的映射Azure 模块要交付的对象是 PyCaret Control Plane——由 compose.yml 与 docs/revamp/CONTROL_PLANE_SPEC.md 描述的完整平台FastAPI 后端services/api、React 前端apps/web、任务 Workerservices/workerV1 为进程内 APScheduler与部署运行时services/deployment-runtime。对照 Azure 模块声明的服务清单可得到如下映射Control Plane 组件Azure 托管服务目标当前本地实现compose.ymlAPI / Worker / 部署运行时容器Azure Container Apps或 AKS本地 Docker 容器pycaret-api、pycaret-web平台状态数据库Run、用户、审计等Azure Database for PostgreSQLSQLite挂载卷pycaret-data数据集与模型工件对象存储Azure Blob Storage本地文件系统PYCARET_ARTIFACT_DIR任务队列与事件发布订阅Azure Cache for Redis进程内 APSchedulerV1入站流量与 TLSApplication Gatewaynginxinfra/docker/nginx.ui.conf反向代理/api/wsJWT 与加密密钥、连接凭据Key Vault环境变量 Fernet 密钥本地卷持久化指标与日志Application Insights本地日志这种本地实现 → 云托管服务的对应关系在 docs/revamp/STATUS.md 的待办清单中得到了印证待办项明确写着 K8s Helm chart per-cloud Terraform (AWS / GCP / Azure) 与 Postgres MinIO Redis Caddy TLS 的docker-compose.prod.yml说明云交付是在本地全栈跑通之后的演进目标。从源码看 Azure 服务的运行时对接现状与约束Azure 模块当前是 stub后端源码也尚未实现 Azure 原生驱动但从现有抽象层可以准确评估哪些能复用、哪些待新增。以下结论均可在源码中找到依据。存储层S3 协议先行Blob Storage 待新增驱动对象存储抽象定义在 services/api/pycaret_server/storage/由base.pyObjectStore协议、factory.py按PYCARET_STORAGE_BACKEND分发的工厂、local_fs.py与s3.py组成。factory.py 目前只接受三个后端值local、s3、minio其中minio与s3复用同一份 boto3 实现、仅追加PYCARET_STORAGE_ENDPOINT_URL。因此若 Azure 模块选择 Blob Storage需要新增一个azure驱动实现put_bytes/ 生成az://bucket/key这类 URI这与 docs/revamp/DECISIONS.md 中LLM 提供商可插拔的同类设计思路一致若采用 Azure Blob 的 S3 兼容端点则可以复用现有s3驱动仅调整端点配置。队列与调度Redis 后端已就绪服务总线为远期services/api/pycaret_server/runs/dispatch.py 的调度逻辑显示当settings.runs_backend redis时会通过queue_redis.py的enqueue_job向 Redis 入队失败时回退进程内执行fall back to the in-process并有default/cpu-heavy/gpu/inference多队列的路由逻辑GPU 队列由 services/api/pycaret_server/runtime/gpu.py 支撑。这为 Azure Cache for Redis 作为任务队列提供了直接可用的对接路径。而路线图中提到的 Azure Service Bus见 docs/revamp/PLATFORM_ARCHITECTURE.md 阶段 5 的 Azure pack 设想则属于尚未落地的远期项。密钥与配置环境变量驱动Key Vault 为未来注入点服务端配置由 services/api/pycaret_server/config.py 统一定义全部以PYCARET_前缀的环境变量读取关键项包括环境变量作用默认值PYCARET_DATABASE_URL数据库连接串sqlite:///./pycaret.dbPYCARET_JWT_SECRETJWT 签名密钥dev-only 占位生产必须覆盖PYCARET_SECRETS_KEY存储密钥的 Fernet 加密密钥无dev 有降级与告警PYCARET_ARTIFACT_DIR本地工件目录./artifactsPYCARET_RUNS_BACKEND任务队列后端inproc/redis进程内PYCARET_REDIS_URLRedis 连接串redis://localhost:6379/0PYCARET_STORAGE_BACKEND存储后端local/s3/miniolocalPYCARET_STORAGE_BUCKET/_ENDPOINT_URL/_REGION/_ACCESS_KEY/_SECRET_KEY对象存储参数见上这套纯环境变量配置模型意味着Azure 模块在交付时只需把 Key Vault 中的值以环境变量形式注入 Container Apps 的容器运行时即可完成密钥托管无需改动应用代码。可观测性从本地日志到 Application Insightscompose.yml 中 API 与 Web 服务均带健康检查healthcheck探针后端日志由 pycaret_server/ 内部日志体系输出。Azure 模块将 Application Insights 列为日志/指标落点属于容器平台层可观测性的标准替换应用侧无需新增代码。云上交付的预期使用方式尽管 Azure 模块尚未落地但 AWS 模块 READMEinfra/terraform/aws/README.md给出了整个infra/terraform家族预期的调用形态可作为 Azure 模块成型的模板module pycaret { source github.com/pycaret/pycaret//infra/terraform/azure?refv4 region eastus2 domain ml.example.com tier small # small | medium | large # ... 其余全部使用模块默认值 }而 docs/revamp/PLATFORM_ARCHITECTURE.md 中 AWS 模块的 DevOps 流程也预示了 Azure 模块成型后的操作范式cd infra/terraform/azure terraform init terraform apply -var domainml.example.com -var envprod terraform output # → API 地址、数据库主机、存储桶名等此外该文档还强调了一条重要的安全边界Terraform 只负责配置基础设施运行中的后端/前端永远不会反过来配置云资源Terraform configures infrastructure. The running BE/UI never configures AWS。这一边界同样适用于 Azure 模块——云凭据与密钥只存在于部署期与托管密钥库中而不进入应用数据库。模块的文件结构预期参照 infra/terraform/README.md 给出的 AWS 模块文件布局Azure 模块成型后的目录结构可以合理推断为infra/terraform/azure/ ├── main.tf # 入口模块声明全部 Azure 资源 ├── variables.tf # region、domain、tier 等最小变量面 ├── outputs.tf # 端点 URL、数据库主机、Blob 容器名 ├── network.tf # VNet / Application Gateway ├── container-apps.tf # Container Apps 环境与 API / Worker 容器 ├── postgres.tf # Azure Database for PostgreSQL ├── blob.tf # Blob Storage 账户与容器 ├── redis.tf # Azure Cache for Redis ├── keyvault.tf # Key Vault 与机密 ├── insights.tf # Application Insights └── README.md # 本云的使用入门需要强调的是这是基于仓库现有布局的推断docs/revamp/ARCHITECTURE.md 也确认infra/helm/infra/terraform/{aws,gcp,azure}/均为 V2 stubs具体文件名以模块正式落地为准。现状与路线图总结综合 docs/revamp/STATUS.md、docs/revamp/PLATFORM_ARCHITECTURE.md 与 docs/revamp/ROADMAP.mdAzure 部署模块的定位可归纳为现状V2 stub仅有一份声明性的 README明确了目标服务组合与多云矩阵位置infra/terraform/azure/目录下暂无.tf文件infra/terraform/azure/路线位置三朵云 Terraform 属于 V2 阶段目标Azure 更具体地落在多云的远期阶段阶段 5当前可交付的部署入口仍是本地 Docker Composedocker compose -f compose.yml up前端 http://localhost:3020后端就绪度环境变量驱动的配置模型、S3 兼容的存储抽象与 Redis 队列后端为 Azure 服务的注入预留了清晰的扩展点而 Blob Storage 原生驱动、Service Bus 队列等属于待实现项。对于希望在微软 Azure 上交付 PyCaret Control Plane 的团队本文档与配套源码提供了完整的服务选型参考Container Apps PostgreSQL Blob Storage Redis Cache Application Gateway Key Vault Application Insights 的组合即该模块声明的目标拓扑在模块正式发布前团队可以依据后端配置模型services/api/pycaret_server/config.py先行规划环境变量与密钥注入方案为后续terraform apply落地做好准备。赞分享【免费下载链接】pycaretOpen-source, low-code AutoML platform for Python. PyCaret 4.0: sklearn-native engine React control plane.项目地址https://gitcode.com/gh_mirrors/py/pycaret点击查看免费下载相关推荐Hindsight 服务架构解析API、Worker 与 Control Plane 的部署与分工Hindsight 服务架构解析API、Worker 与 Control Plane 的部署与分工 Hindsight 是一个会学习的 Agent 记忆系统人工智能AI AgentAgent 记忆MCP 服务Teleport 官方 Terraform 模块实战指南用 IaC 一键部署集群资源与 AWS/Azure 云资源Teleport 官方 Terraform 模块实战指南用 IaC 一键部署集群资源与 AWS/Azure 云资源 本指南以 integrations/ter网络安全认证鉴权运维后端Hyperswitch 开源支付编排平台全解析核心架构、支付模块与本地一键部署实战指南Hyperswitch 开源支付编排平台全解析核心架构、支付模块与本地一键部署实战指南 Hyperswitch本仓库是一套以 Rust 构建的 可组合、模后端金融科技创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?