概述

1.1 文章目的

本文主要想为研发PHP项目的企业或个人提供上云指导,通过本文中的示例项目 “workerman-todpole”,为开发者提供包括项目管理,代码托管,代码检查,编译构建,测试管理的操作指导,覆盖软件开发全生命周期。

1.2 项目详情

1. 项目名称:workerman-todpole社区系统

2. 项目简介:workerman-todpole采用PHP(workerman框架)+HTML5技术开发,是一款以workerman作为应用服务器,前端采用HTML5+WebSocket开发的小蝌蚪即时交互游戏。 游戏交互很简单,点击屏幕小蝌蚪可以自由游动,其它玩家可以看到周围玩家的游动状态,并且可以即时聊天

3. 开发语言:PHP

4. 项目类型:蝌蚪游泳交互程序 使用PHP(workerman框架)+HTML5开发

5. 开发环境:PHP

6. 部署环境:Linux

7. 部署方式:shell部署

8. 项目架构

前端采用HTML5开发

以PHP的workerman框架开发后台游戏服务器

后端PHP多进程支持

采用WebSocket协议

PHP实时推送技术

独立运行,不依赖Mysql、apache、nginx等软件。

1.3 前提条件

1. 注册华为云账号:华为云官网注册华为云账号,此账号适用于所有华为云产品。

2. 弹性云服务器:部署将使用带有公网IP的ECS。

项目管理

2.1 创建项目

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

2.2 创建迭代

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

2.3 梳理产品需求清单

项目规划是以思维导图的形式将工作项的层级结构展示出来,更直观的看到父子关系,在项目规划中新建工作项后,会自动生成到后面的Epic,Feature,Backlog和迭代页面,在迭代开始前,项目经理将从客户获取的所有需求信息,逐一落实到项目规划中,分解成story,并为工作项设置优先级。

2.4 输出迭代清单

在迭代开始前,在Backlog页面过滤出优先级“高”且重要程度为“关键”的工作项,纳入迭代1,与开发人员进行需求澄清。其余迭代,均可根据组内实际情况,按照优先级从高到低,重要程度减弱的顺序进行开发。

3 代码获取

3.1 新建代码仓库

1. 进入创建好的项目中,选择代码托管功能,点击右侧新建仓库按钮。

2. 进入新建仓库界面后,选择模板新建,左侧筛选条件中应用类型为Web Server,变成语言为PHP,选择完筛选条件后,选择出现的workerman-todpole,完成模板选择。

3. 选择完模板后填写仓库信息,点击确定,完成仓库创建。

云端持续部署流水线

4.1 编译构建

本PHP项目直接在linux主机环境下直接开启服务即可运行,本身无需进行编译构建打包,但是在DevCloud中云端部署需要可识别的软件包,所以在DevCloud中需要对PHP的程序进行简单的打包。

4.1.1 新建编译构建任务

1. 进入创建好的项目中,在构建&发布模块下选择编译,点击右侧新建按钮

2. 输入任务名称,选择对应代码仓库和分支

3. 选择公共模板中的Shell模板创建任务。

4. 进入任务配置界面后点击左侧的加号,添加步骤

5. 在弹出的操作步骤选择页面中选择添加“上传软件包到软件发布库”步骤

6. 点击参数设置选项,为本次任务添加两个配置参数,分别为pkgVersion和codeBranch作为版本号和代码仓库分支的参数,并在代码仓库分支选项中选定此参数。

7. 添加完步骤后点击左侧执行shell命令步骤,进行命令编辑。本任务添加的shell命令为“tar zcvf workerman_todpole.tar.gz *”,目的是将代码打包为tar.gz格式的软件包。

8. 接着选择左侧上传软件包到发布库步骤,编辑对应信息。构建包路径对应上一步shell命令中的打包路径,发布版本号为第一步添加的版本号参数,格式为${pkgVersion},最后包名为上传软件发布库后的包名。

9. 完成构建任务后,点击保存按钮。

10. 进入创建好的构建任务,点击开始构建按钮,在弹出的参数配置窗口输入要配置的参数值,点击确定执行构建任务。

4.2 部署

4.2.1 添加主机

将服务器主机授信到DevCloud里,用于部署网站。

点击“设置-通用设置-主机组管理”,将服务器以主机组的形式授信到项目当中。

新建主机组:

在主机组中添加主机:

4.2.2 环境准备

由于本项目需要特定的环境,因此需要在部署之前先登录对应的ECS云主机进行环境搭建。搭建环境的脚本内容如下:

php-cli安装方法:

composer安装方法:

4.2.3 新建模板部署任务

1. 新建模板部署

2. 编辑基本信息后,不使用模板直接创建

3. 点击“确定”后,添加部署步骤:

选择部署来源、解压文件、删除文件、执行shell脚本

选择部署来源:(将软件包传到云主机上)

解压文件:(将传输完毕的软件包解压到指定路径)

删除文件:(将传输到主机的软件包删除)

执行shell命令:(启动脚本start.sh位于代码根目录,现已被解压至解压路径)

将启动脚本start.sh复制到指定路径,并执行。启动脚本中的路径需要与部署主机中的实际路径相一致。

shell命令内容:

4. 点击确认按钮,保存任务配置。

4.2.4 执行部署任务

1. 进入配置好的部署任务中,点击“执行”按钮开始执行部署任务。

2. 当任务状态显示完成后,表明自动化部署执行成功,可在地址栏输入对应的访问地址,进行访问验证。本项目验证地址为http://ip:8383

4.3 流水线

当我们完成了编译构建和部署阶段的任务配置后,即可创建包含编辑构建和自动化部署的持续交付流水线了。

4.3.1 新建流水线任务

1. 进入流水线界面,点击新建流水线按钮,进入新建流水线页面。

2. 在新建流水线配置中,首先选择默认的基本场景,填写流水线名称,然后根据实际需要添加或删除流水线阶段步骤。

本项目中的阶段分别设定为构建阶段和部署阶段

3. 在添加具体的流水线任务之前需要先配置流水线参数

点击添加参数,添加两个参数,然后对参数信息进行配置

编辑新添加的两个参数名称为version和branch,参数默认值可以不用编辑

点击保存完成参数配置。

4. 在构建和部署阶段分别点击添加任务,然后点击编辑按钮对添加的任务进行编辑

5. 在构建的任务编辑界面,选择之前已经创建好的构建任务,并将该构建任务的参数值设为刚才配置的流水线参数,格式分别为${version}和${branch},以达到用流水线参数为构建任务参数赋值的目的。完成配置后点击保存按钮。

6. 部署任务的添加方法同上,在选择完对应的部署任务后,软件包一项选择上一个阶段构建任务生成的软件包,保证流水线中的部署任务是使用最新的包文件。完成配置后点击保存。

7. 完成所有任务后点击保存按钮对流水线任务进行保存。

4.3.2 执行流水线

1. 在配置好的流水线任务重点击全新执行,在弹出的参数窗口中,输入配置的参数值,点击确定,开始执行流水线任务。

2. 完成流水线任务。

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

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

  1. 【华为云实战开发】1.传统Java项目怎么能变得高大上?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 计算机usb接口充电效率差,usb2.0和3.0的区别 从传输速度和充电效率等来区别
  2. 用文本指导文本:基于文本的自监督可控文本生成模型
  3. jconsole命令(Java Monitoring and Management Console)
  4. 人一生中最大的遗憾应该是什么
  5. C语言、嵌入式位操作精华技巧大汇总
  6. mysql中使用HAVING 筛选分组后的数据
  7. y空间兑换代码_Python爬虫实战:QQ空间全自动点赞工具
  8. 阿里云ACP认证考试细则须知与考题内容学习方法分享...
  9. oracle 学习之:建视图时报ora-01031
  10. linux 设置pip 镜像 Pip Warning:–trusted-host 问题解决方案
  11. java二维码生成-谷歌(Google.zxing)开源二维码生成学习及实例
  12. 负载均衡—实现配置篇(Nginx)
  13. 路由交换技术(一)---- 网络基础概述
  14. 戴德金之连续性和无理数的中文翻译
  15. [经验教程]百度Robots检测:您的服务器配置有误,百度暂时无法连接您的服务器,请检查服务器的设置,确保您网站的服务器能被正常访问。
  16. 银行的压力测试如何进行?
  17. linux nic cpu 10%,cpu – NIC中的描述符概念
  18. 搜索结果Refinement 行为总结之 multi-selection refinement
  19. [idea遇到的坑] - Cannot load settings from file[xxxx/xxxx]
  20. Sentry开启 Github sso 配置(self-hosted)

热门文章

  1. kafka自带的zk启动_Centos上将zookeeper和kafka设置为开机自启
  2. matlab圆形器件,计算围绕点+ Matlab的圆形箱
  3. MySql.Data.dll官网下载
  4. Vue通过id跳转到商品详情页
  5. if else 的个小案例~
  6. JavaScript中关于创建对象的笔记
  7. 实现一个简单的银行转账操作
  8. SEO优化之Title 和 Meta 标签
  9. STM32的EXTI相关学习笔记
  10. 数组——寄包柜(洛谷 P3613)