- 最新消息
- 简介
- 目录结构
- 版本说明
- 兼容性信息
- 环境部署
- 编译流程
- 测试用例
- 快速入门
- 功能介绍
- API参考
- FAQ
- 安全声明
- 分支维护策略
- 版本维护策略
- 免责声明
- License
- 贡献声明
- 建议与交流
- [2025.12.30]:🚀 MEF开源发布
MEF是一款定位为被集成的轻量化端边云协同使能框架。用于智能边缘设备使能,提供边缘节点管理、边缘推理应用生命周期管理等边云协同能力。可通过MEF Edge和MEF Center进行边云协同管理,用户可通过二次开发,对接ISV(Independent Software Vendor)业务平台,集成所需功能。
- MEF Edge部署在智能边缘设备上,负责与中心网管对接,完成智能推理业务(容器应用)的部署和管理,为算法应用提供服务。
- MEF Center部署在通用服务器上,负责对边缘节点实现批量管理、业务部署和系统监测。
关键目录如下,详细目录介绍参见项目目录。
MEF # 项目根目录
├── build # 构建相关目录
├── docs # 文档目录
│ └── zh # 中文文档目录
└── src # 源码目录
├── common-utils # 公共工具库
├── device-plugin # 设备插件组件
├── mef-center # MEFCenter 中心组件代码
└── mef-edge # MEFEdge 边缘组件代码
MEF版本配套详情请参考:版本配套说明。
表1 MEF支持的产品形态和OS清单表
| 安装节点 | 软件 | 产品形态 | 软件架构 | 操作系统 |
|---|---|---|---|---|
| 管理节点 | MEF Center | 通用服务器 | AArch64 x86_64 |
Ubuntu 20.04 OpenEuler 22.03 |
| 计算节点 | MEF Edge | Atlas 200I A2 加速模块 Atlas 200I DK A2 开发者套件 |
AArch64 | OpenEuler 22.03 Ubuntu 22.04 |
| Atlas 500 Pro 智能边缘服务器(型号 3000)(插Atlas 300I Pro 推理卡) | AArch64 | OpenEuler 22.03 |
可通过本项目获取正式版本软件包,或自行编译构建两种方式获取软件包。
- 正式版本软件包获取: https://gitcode.com/Ascend/MEF/releases
- 自行编译构建软件包请参考编译流程章节
在安装和使用前,用户需要了解安装须知、进行安装环境准备,具体内容请参考“安装MEF”章节文档。
本节以Ubuntu20.04系统为例,介绍如何通过源码编译生成MEF软件包。
- 执行MEF编译前,需保证系统上安装了必要的编译工具和依赖库,参考安装命令如下:
apt-get update apt-get -y install texinfo gawk libffi-dev zlib1g-dev libssl-dev openssl sqlite3 libsqlite3-dev libnuma-dev numactl libpcre2-dev bison flex build-essential automake autoconf libtool rpm dos2unix libc-dev lcov pkg-config sudo tar git wget unzip zip docker.io python-is-python3 iputils-ping
- 除上述工具和依赖外,还需安装golang、cmake,版本要求如下,建议通过源码安装。
表2 依赖版本要求
| 依赖名称 | 版本建议 | 获取建议 |
|---|---|---|
| Golang | 1.22.1 | 建议通过获取源码包编译安装。 |
| CMake | 3.16.5及以上 | 建议通过获取源码包编译安装。 |
- 拉取MEF整体源码,例如放在/home目录下。
- 进入/home/MEF/build目录
cd /home/MEF/build - 修改组件版本配置文件service_config.ini中mef-version字段值为所需编译版本,默认值如下:
mef-version=7.3.0 - 执行以下命令,执行构建脚本:
dos2unix *.sh && chmod +x *.sh ./build_all.sh
- 执行完成后,可在/home/MEF/output目录下获取编译完成的软件包,注意:根据MEF Center和MEF Edge对不同架构的支持情况,AArch64架构下将编译MEF Center和MEF Edge软件包,x86_64架构下将仅编译MEF Center软件包。
- 由于软件支持的运行操作系统包括Ubuntu 20.04,且软件构建过程中使用了glibc 2.34源码编译,建议使用Ubuntu 20.04系统进行编译构建,避免系统上的glibc版本过高导致的不兼容问题。
- 如果在编译过程中遇到问题,请检查错误日志并确保所有依赖库和工具都已正确安装。
测试用例执行方法参考如下,注:测试用例需要在x86_64架构环境下执行,由于部分测试用例使用了gomonkey进行运行时函数打桩,该技术依赖底层架构相关的汇编指令和GO编译器行为,需要在x86_64架构运行。
- 执行测试用例前,请参考依赖准备章节进行测试环境准备
- 安装依赖用于统计测试覆盖率和生成可视化报告,若最新版本依赖与Golang版本不兼容,可自行安装兼容的版本
go install github.com/axw/gocov/gocov@latest go install github.com/matm/gocov-html/cmd/gocov-html@latest go install gotest.tools/gotestsum@latest export PATH=$PATH:$(go env GOPATH)/bin
- 本项目下包含多个模块,各个模块的测试用例可分别执行,执行参考如下:
- 执行common-utils模块下测试用例
cd /home/MEF/src/common-utils/build dos2unix *.sh && chmod +x *.sh bash test.sh
- 执行device-plugin模块下测试用例
cd /home/MEF/src/device-plugin/build dos2unix *.sh && chmod +x *.sh bash test.sh
- 执行mef-center模块下测试用例
cd /home/MEF/src/mef-center/build dos2unix *.sh && chmod +x *.sh bash test.sh
- 执行mef-edge模块下测试用例
cd /home/MEF/src/mef-edge/build dos2unix *.sh && chmod +x *.sh bash prepare_dependency.sh bash test.sh MEF_Edge_SDK
云边协同的应用流程主要包括安装MEF、二次开发集成和管理边缘节点及容器应用三部分,具体内容请参考“使用指导”章节文档。
可通过MEF Edge和MEF Center进行边云协同管理,用户可通过二次开发,对接ISV(Independent Software Vendor)业务平台,集成所需功能。
- MEF Edge部署在智能边缘设备上,负责与中心网管对接,完成智能推理业务(容器应用)的部署和管理,为算法应用提供服务。
- MEF Center部署在通用服务器上,负责对边缘节点实现批量管理、业务部署和系统监测。
表3 MEF组件功能介绍
| 功能类型 | 详细功能介绍 |
|---|---|
| 节点管理 |
|
| 容器应用管理 |
|
| 日志收集 |
|
| 配置管理 |
|
| 告警管理 |
|
| 软件升级 |
|
| 北向接口 |
|
API参考详见:接口参考。
相关FAQ详见:FAQ。
- 请参考安全加固建议对系统进行安全加固。
- 安全加固建议中的安全加固措施为基本的加固建议项。用户应根据自身业务,重新审视整个系统的网络安全加固措施。用户应按照所在组织的安全策略进行相关配置,包括并不局限于软件版本、口令复杂度要求、安全配置(协议、加密套件、密钥长度等),权限配置、防火墙设置等。必要时可参考业界优秀加固方案和安全专家的建议。
- 安全加固涉及主机加固和容器应用加固,防止可能出现的安全隐患,用于保障设备和容器应用的安全,请用户根据实际需要进行安全加固操作。
- 外部下载的软件代码或程序可能存在风险,功能的安全性需由用户保证。
- 通信矩阵详见:通信矩阵
- 公网地址详见:公网地址
- 环境变量说明详见:环境变量说明
- 用户信息列表详见:用户信息列表
版本分支的维护阶段如下:
| 状态 | 时间 | 说明 |
|---|---|---|
| 计划 | 1-3个月 | 计划特性 |
| 开发 | 3个月 | 开发新特性并修复问题,定期发布新版本 |
| 维护 | 3-12个月 | 常规分支维护3个月,长期支持分支维护12个月。对重大BUG进行修复,不合入新特性,并视BUG的影响发布补丁版本 |
| 生命周期终止(EOL) | N/A | 分支不再接受任何修改 |
| 版本 | 维护策略 | 当前状态 | 发布日期 | 后续状态 | EOL日期 |
|---|---|---|---|---|---|
| master | 长期支持 | 开发 | 在研分支,不发布 | - | - |
- 本代码仓库中包含多个开发分支,这些分支可能包含未完成、实验性或未测试的功能。在正式发布之前,这些分支不应被用于任何生产环境或依赖关键业务的项目中。请务必仅使用我们的正式发行版本,以确保代码的稳定性和安全性。 使用开发分支所导致的任何问题、损失或数据损坏,本项目及其贡献者概不负责。
- 正式版本请参考正式release版本: https://gitcode.com/Ascend/MEF/releases
MEF以Mulan PSL v2许可证许可,对应许可证文本可查阅LICENSE。
介绍MEF docs目录下的文档适用CC-BY 4.0许可证,具体请参见LICENSE文件。
- 提交错误报告:如果您在MEF中发现了一个不存在安全问题的漏洞,请在MEF仓库中的Issues中搜索,以防该漏洞被重复提交,如果找不到漏洞可以创建一个新的Issues。如果发现了一个安全问题请不要将其公开,请参阅安全问题处理方式。提交错误报告时应该包含完整信息。
- 安全问题处理:本项目中对安全问题处理的形式,请通过邮箱通知项目核心人员确认编辑。
- 解决现有问题:通过查看仓库的Issues列表可以发现需要处理的问题信息, 可以尝试解决其中的某个问题。
- 如何提出新功能:请使用Issues的Feature标签进行标记,我们会定期处理和确认开发。
- 开始贡献:
- Fork本项目的仓库
- Clone到本地
- 创建开发分支
- 本地自测,提交前请通过所有的单元测试,包括为您要解决的问题新增的单元测试
- 提交代码
- 新建Pull Request
- 代码检视,您需要根据评审意见修改代码,并重新提交更新。此流程可能涉及多轮迭代
- 当您的PR获得足够数量的检视者批准后,Committer会进行最终审核
- 审核和测试通过后,CI会将您的PR合并入到项目的主干分支
欢迎大家为社区做贡献。如果有任何疑问或建议,请提交issues,我们会尽快回复。感谢您的支持。

