概述

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.1 创建项目

新建项目的开发流程包含两种类型:scrum流程、看板流程。Scrum流程是标准的敏捷开发流程,工作项层级为传统的scrum划分方法Epic->Feature->Story->Task&Bug,本项目为把工作划分的层级更清晰,选择了scrum流程。

2.2 创建迭代

本项目研发周期短,只有一次release,划分成三个迭代,迭代周期为一周。

代码托管

3.1 创建仓库

Ø 新建代码仓库时,选择“模板新建”,在搜索框中输入已经被公开为示例模板的仓库名称object_detection,选择该模板。

Ø 输入新的仓库名称(可以和模板仓库同名),即可创建代码仓

构建&发布

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.1 非模板部署任务

Ø 新建部署任务,部署类型选择“非模板任务”

Ø 编辑“部署设置”

① 选择已购买的集群

② 选择SWR生成的镜像,并设置内存及CPU大小

③ 输入设置访问方式:容器端口为Dockerfile中“EXPOSE”开放的端口,对应的访问端口为服务器访问端口。

5.2 查看部署效果

部署成功后,在华为云应用引擎中,可以在工作负载中查看“无状态”节点

点击“外部访问网址”,登录服务器,上传图片进行图片识别

至此,恭喜您打通了DevCloud的各服务,完成了python云上开发环境的搭建。

华为云DevCloud,5人以下额度范围内,可以免费使用,并且可以预约免费的产品演示和技术交流,详情查看华为云官网

【华为云实战开发】13.如何在云端快速搭建python网站相关推荐

  1. 【华为云实战开发】8.如何快速搭建C#网站并实现持续集成?

    1 概述 1.1 文章目的 本文通过一个实例介绍如何使用软件开发服务DevCloud完成一个C#Web项目的开发. 1.2 项目详情 1. 项目名称:超级冷笑话网站 2. 项目简介:一个Web网站,包 ...

  2. 【华为云实战开发】11.如何快速开展嵌入式开发项目?

    1 概述 1.1 文章目的 本文主要想为研发嵌入式项目的企业或个人提供上云指导,通过本文中的示例项目 "智能显示器",为开发者提供包括项目管理,代码托管,编译构建,部署等操作指导, ...

  3. 【华为云实战开发】14.如何使用Node爬虫利器Puppteer进行自动化测试

    文:华为云DevCloud 乐少 1.背景 1.1 前端自动化测试较少 前端浏览器众多导致页面兼容性问题比较多,另外界面变化比较快,一个月内可能页面改版两三次,这样导致对前端自动化测试较少,大家也不是 ...

  4. 【华为云实战开发】12.如何在云端快速开展Swagger接口测试

    1 Swagger简介 1.1 概要 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务. 总体目标是使客户端和文件系统作为服务器以同样的速度来 ...

  5. 【华为云实战开发】10.经典的C++项目怎么在云端开发?

    1 概述 1.1 文章目的 本文主要想为研发C++项目的企业或个人提供上云指导,通过本文中的示例项目 "音频解析器",为开发者提供包括项目管理,代码托管,代码检查,编译构建,测试管 ...

  6. 【华为云实战开发】9.如何进行PHP项目的快速搭建并实现CICD?

    1 概述 1.1 文章目的 本文主要想为研发PHP项目的企业或个人提供上云指导,通过本文中的示例项目 "workerman-todpole",为开发者提供包括项目管理,代码托管,代 ...

  7. 【华为云实战开发】6.Cocos游戏项目如何在云端开发

    1 概述 1.1 文章目的 本文帮助想要或者正在将Cocos项目迁移到华为软件开发服务DevCloud中的用户,把本地Cocos在Android平台下的项目迁移到云上. 1.2 项目详情 1. 项目名 ...

  8. 【华为云实战开发】16.DevOps交付模式下的软件测试

    文:华为云DevCloud  兵东 众所周知,近10年IT领域有两个关键的风向转变,传统IT向云计算转变,传统瀑布和迭代开发模式向敏捷开发模式转变.这两个转变促成了DevOps产品交付模式的出现.互联 ...

  9. 【华为云实战开发】2.Docker镜像部署怎么玩才酷炫?

    1 文章目的 本文主要帮助想要或者正在使用容器部署服务的用户,如何将他们的应用部署通过DevCloud部署在华为云上. 2 概述 2.1 Docker Docker是一个开源的引擎,可以轻松的为任何应 ...

最新文章

  1. 使用在线软件合并pdf论文文件安全吗?不妨使用简单的python代码
  2. Nginx 跨域使用字体
  3. 5月22日阿里云网络变更公告
  4. Git clone时出现Please make sure you have the correct access rights and the repository exists.问题已解决。...
  5. 第3章 Linux内核调试手段之三
  6. 【中文分词】隐马尔可夫模型HMM
  7. 删除计算机共享信息命令,win10系统使用命令将网络共享删除的操作办法
  8. 中文宾州树库标记含义
  9. 为什么程序员都不愿意升级 Java 8?
  10. 作为JavaScript的“超集”,感受一下TypeScript 的那些黑魔法
  11. ztree 后台异步加载_zTree树形插件异步加载方法详解
  12. 【易实战】Spring Cloud Greenwich Eureka:服务注册与发现
  13. mapInfo文件格式详解,其中有“细说Mapinfo索引文件*.ind”
  14. 英伟达显卡不同架构_【英伟达NVIDIA显卡GPU架构核心代号名称一览】(截止到 2018·08)...
  15. Python使用openpyxl插入excel批注,修改批注
  16. STM32---ADC模数转换详解
  17. url的转换与重定向
  18. VCC,VDD,VSS,VEE区别
  19. 帝国模板留言板增加自定义字段教程
  20. 锐捷客户端总是自动关闭VMware NAT Service 解决办法

热门文章

  1. keil c语言绝对值函数,keil编写C程序是不是不能在函数内定义变量啊,求大神
  2. java jdbc代码_javajdbc代码解决
  3. 微信小程序, 解析↵换行
  4. 使用Linux的alternatives命令替换选择软件的版本
  5. 【JZOJ4920】【NOIP2017提高组模拟12.10】降雷皇
  6. 关于状态更新时间字段取值的问题
  7. 通过SectionIndexer实现微信通讯录
  8. silverlight游戏在坑内发展
  9. 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。...
  10. 在 SharePoint 2010 中访问数据