项目编号:【180387】
一、项目背景
我方通过Azure的storage account平台、virtual machine平台和Ray开源分布式框架构建了面向机器学习和数据流处理的基础设施。该基础设施难以满足我方日益多变的计算需求。同时资源管理难度高,导致云平台使用和维护成本高。
我方需要可靠的基础设施解决方案,实现对计算资源的弹性管理,解决计算资源与数据资源的灵活连接、数据安全性与一致性,同时尽可能以最小成本支持当前基础设施迁移到新基础设施。
二、项目目标
旨在设计在 Microsoft Azure上可弹性伸缩的点云数据处理计算集群解决方案和配套的数据存储方案,以满足如下目标:
o 计算任务编排:根据任务量/队列长度/系统负载自动节点扩容/缩容和升级/降级;
o 支持多种节点规格:
支持预设定多种节点规格;支持根据 cpu密集/IO密集任务确定节点规格;支持cpu/gpu节点和跨类型的节点组合;
支持多环境:支持计算任务对环境的多种依赖,例如python环境;
o 数据存储:
当前数据为中心化存储于storage account下container内,通过虚拟机挂载实现代码端无感访问数据,存在数据访问瓶颈和数据一致性的不确定性;
需要支持共享存储或分布式文件系统:确保各节点能高效读取大文件和批量小文件,避免I/O冲突,避免数据一致性风险;
o 任务管理:支持手动任务管理,日志管理;
o 资源监控与成本优化:支持自动任务监控、报警、故障恢复;支持成本优化,如闲时节点停机或使用低优先级instance,同时保证数据安全。
三、技术栈
(1)云基础设施 & 资源管理 Cloud Infrastructure & Resource Management
1. Microsoft Azure 的核心服务:Virtual Machines、Virtual Machine Scale Sets、Kubernetes Service (AKS)、Storage (Blob, Files, Elastic SAN) 等。
2. 了解 Auto-scaling / 弹性伸缩机制(比如基于 CPU/GPU 利用率、队列长度、响应延迟的扩容/缩容策略)。
3. 熟悉云网络、子网、VNet、安全组。
4. 云资源权限管理Azure RBAC
(2)容器化与编排 Containerisation & Orchestration
1. 熟练使用 Kubernetes(K8s)包括其集群管理、节点池(node pool)、自动伸缩(Cluster Autoscaler / Horizontal Pod Autoscaler)、负载均衡、滚动更新、蓝绿/Canary 部署模式。
2. 熟悉容器化技术(Docker 或 containerd/CRI-O)、镜像构建、镜像仓库(Azure Container Registry / ACR)部署流程。
3. 能够在 Kubernetes/AKS 上部署点云处理服务/任务,并实现弹性伸缩。
(3)任务调度、作业队列 & 弹性伸缩 Task Scheduling, Job Queue & Elastic Scaling
1. 监控系统:使用 Azure Monitor / Log Analytics,能够采集、报警、触发自动化扩缩容。
四、交付内容
4.1 设计文档
系统高层架构图(Architecture Diagram)
1. 计算节点池(CPU 节点、GPU 节点)、节点规格、网络拓扑、可用区/区域分布。
2. 自动伸缩(Auto-scaling)机制。
组件清单(Component Catalogue)
1. 列出所有子系统/服务(例如:容器编排 AKS/VM Scale Set、任务队列、存储服务)。每个组件说明其功能、技术选型、关键参数。
安全/网络文档
1. 网络结构、子网、VNet、NSG(网络安全组)配置
2. 身份访问控制(IAM/RBAC)
4.2 部署与配置交付
容器化/服务打包
1. Dockerfile 或镜像构建脚本:点云预处理服务、切片服务、缺陷检测服务、渲染/报告服务。
2. 容器仓库描述(如 Azure Container Registry)及版本控制策略。
Kubernetes/节点池配置(若使用)
1. Node pool 配置文档(规格、标签、GPU支持、弹性伸缩设置)
数据存储与访问配置
1. 存储账户/文件存储/共享磁盘配置脚本
2. 存储访问策略(权限、网络隔离、读写配置)
3. 数据结构设计文档(目录结构、文件命名规范、元数据说明)。
监控与告警部署
1. Azure Monitor/Log Analytics 工作区、指标采集、告警规则、日志方案。
2. Dashboard 模板交付(关键指标:CPU/GPU 利用率、队列长度、任务等待时间、节点空闲率、成本消耗)。
4.3 运行手册与维护文档
日常操作流程:节点扩容/缩容、故障节点替换、监控仪表盘使用。
任务提交流程:扫描数据上传→队列→处理流程→结果导出。
节点上线/下线、节点维护流程。