1 概述
1.1 文章目的
本文主要想为研发Python项目的企业或个人提供上云指导,通过本文中的示例项目 “AI物体检测”,为开发者提供包括项目管理,代码托管,代码检查,编译构建的操作指导,覆盖软件开发全生命周期。
1.2 项目详情
项目简介:AI物体检测应用程序,浏览器从本地上传JPG、PNG和JPEG格式的图片,使用已经训练好的AI模型进行图片检测,返回检测结果。
项目周期:3周(敏捷迭代开发)
构建环境:docker 18.03
部署环境:华为云集群节点
华为云服务:软件开发服务 DevCloud
容器镜像服务 SWR
云容器引擎 CCE
1.3 前提条件
注册华为云账号:华为云官网注册华为云账号,此账号适用于所有华为云产品。
华为云集群节点:部署将使用虚拟机集群,Kubernetes社区基线版本为1.9.10。
2 项目管理
2.1 创建项目
新建项目的开发流程包含两种类型:scrum流程、看板流程。Scrum流程是标准的敏捷开发流程,工作项层级为传统的scrum划分方法Epic->Feature->Story->Task&Bug,本项目为把工作划分的层级更清晰,选择了scrum流程。
2.2 创建迭代
本项目研发周期短,只有一次release,划分成三个迭代,迭代周期为一周。
3 代码托管
3.1 创建仓库
Ø 新建代码仓库时,选择“模板新建”,在搜索框中输入已经被公开为示例模板的仓库名称object_detection,选择该模板。
Ø 输入新的仓库名称(可以和模板仓库同名),即可创建代码仓
4 构建&发布
4.1 SWR上传基础镜像
对于很多python语言项目,都会用到一些基础安装包,如果每次构建都重新安装显然是不合理的,所以,我们可以自己创建包含工程依赖包的镜像,上传到SWR服务中,构建时直接使用。本项目中使用的就是SWR中自己上传的自有AI镜像。
在SWR服务中,点击“客户端上传”,会显示上传指导说明,本小节通过具体步骤辅助大家实践。
① Linux系统上安装docker
查看本地docker.io源并安装,可以通过“=”指定版本,如:docker.io=1.13.1-0ubuntu1~16.04.2,也可以不指定版本,那么,默认安装本地最新。如果想安装docker.ce(社区版)或者docker.ee(企业版),可以通过更新docker源获得。
# sudo apt-cache madison docker.io
# sudo apt install docker.io
② 通过当前路径下的Dockerfile文件构建自有ubuntu镜像
# sudo docker build -t aienvir :16.04 .
Dockerfile文件内容如下,按照这些信息会在基础ubuntu环境中逐一安装:
③ 上传镜像
#sudo docker login -u cn-north-1@cWazX6gbL80EO2XNw4Pp -p 2b8676812056e24a3fc2da3abe4d6ae40f17b4b912488dda2bc7060c43a7d1ac swr.cn-north-1.myhuaweicloud.com
#sudo docker tag aienvir :16.04 swr.cn-north-1.myhuaweicloud.com/org-pj/aienvir :16.04
#sudo docker push swr.cn-north-1.myhuaweicloud.com/org-pj/aienvir :16.04
其中,org-pj为镜像所属组织,可以在SWR的“组织管理”创建。
④ 在SWR中查看上传镜像
⑤ 将镜像权限设置成“公开”,才能在构建任务中使用
⑥ 获取该镜像地址(docker pull后面内容),在代码仓库dockerfile中引用
4.2 创建构建任务
Ø 新建任务,输入任务名
Ø 选择源码仓库
Ø 不使用模板,直接创建任务
Ø 点击左侧“+”,选择“使用SWR公共镜像”操作类型
Ø 输入构建详细信息
注意:“组织”需要在容器镜像服务中预先创建完成:
4.3 构建目标
执行构建任务时,会根据object_detection代码仓库中Dockerfile文件依次执行任务:
5 部署
5.1 非模板部署任务
Ø 新建部署任务,部署类型选择“非模板任务”
Ø 编辑“部署设置”
① 选择已购买的集群
② 选择SWR生成的镜像,并设置内存及CPU大小
③ 输入设置访问方式:容器端口为Dockerfile中“EXPOSE”开放的端口,对应的访问端口为服务器访问端口。
5.2 查看部署效果
部署成功后,在华为云应用引擎中,可以在工作负载中查看“无状态”节点
点击“外部访问网址”,登录服务器,上传图片进行图片识别
至此,恭喜您打通了DevCloud的各服务,完成了python云上开发环境的搭建。
华为云DevCloud,5人以下额度范围内,可以免费使用,并且可以预约免费的产品演示和技术交流,详情查看华为云官网