欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 自动化部署(三):项目管理平台

自动化部署(三):项目管理平台

2025/9/19 4:53:23 来源:https://blog.csdn.net/weixin_46370595/article/details/145301796  浏览:    关键词:自动化部署(三):项目管理平台

一、项目管理平台作用

帮助团队高效规划、执行和监控项目进度,确保任务按时完成并实现目标

  • 敏捷开发:提供标准敏捷研发管理,支持Scrum 与 Kanban

  • 规模化敏捷:支持大型研发团队跨项目协同,实现多项目路线图规划和资源管控

  • 研发工作流:连接多种工具,构建自动化研发工作流、DevOps 工作流

  • 测试管理:测试用例管理和测试计划执行,确保产品交付质量

  • 知识库管理:帮助企业建立规范化知识管理体系,实现文档协同与知识沉淀

二、市场主流平台

  • 阿里云效平台

  • teambition:阿里出品的项目管理平台 https://www.teambition.com/

  • PingCode:PingCode 是2021年中国软件项目管理软件榜单排名TOP1;它满足客户反馈、规划、开发、编码、构建、测试、发布上线的研发全流程管理,支持私有部署、定制开发、SAAS等版本;价格仅是Jira的30%-40%。

  • Worktile:Worktile 是连续多年的项目管理排行榜总榜前三。它是一个通用型的项目管理工具,支持不同类型的团队使用。项目管理方面具备项目管理、项目集管理、项目规划、项目追踪、项目文档管理等项目功能,除此以外还是一工具集合。Worktile 同样支持私有部署、二次开发、saas等版本。

  • Redmine:Redmine是一款开源的、灵活的项目管理Web解决方案。使用Ruby on Rails框架编写的,支持跨平台和跨数据库。主要功能包括:灵活的项目控制;支持多个项目;灵活的问题追踪系统;Gantt图表;新闻、文件/文档管理。

  • Clickup:Clickup 是国外点评网站G2排名第二的项目管理软件,它是一个为所有用户类型打造的项目管理系统,整合了所有业务流程的核心功能——销售、营销、设计和开发等。非常适合境外企业使用,但国内可能并不是最佳选择,因为不具备服务团队和服务器。

  • Jira:Jira是全球知名软件项目管理工具,有非常多的用户认为它好,也有非常多的用户吐槽难用。它足够成熟,但学习成本也足够高。在2020年开始停止在大陆出售本地版,强迫上云。

三、试用阿里云效

官网地址:https://www.aliyun.com/product/yunxiao

在这里插入图片描述

在这里插入图片描述

创建项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

新建迭代

在这里插入图片描述

新建需求

在这里插入图片描述

新建任务

在这里插入图片描述

新建缺陷

在这里插入图片描述

查看工时

在这里插入图片描述

项目总体把控

在这里插入图片描述

给测试人员测试任务

在这里插入图片描述

工作项:查看自身这一天的工作量

在这里插入图片描述

邀请成员加入企业和项目(迭代)

在这里插入图片描述

总结功能

项目协作

在这里插入图片描述

文档功能: 项目排期、需求文档、测试文档

在这里插入图片描述

知识库

在这里插入图片描述

代码管理(类似gitlab)

在这里插入图片描述

流水线(类似jenkens)

在这里插入图片描述

制品库(类似nexus)

在这里插入图片描述

四、体验一把自动构建

云效流水线 Flow 是一款企业级、自动化的持续集成和持续交付工具,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线的CI/CD全流程,帮助企业高质量、高效率的交付业务。

应用场景:没必要自建机房部署代码托管、jekens,并且自己公司的产品部署在服务器上,完全可以利用云效平台进行自动话部署。

在这里插入图片描述

新建代码库

将jzjwebcackend项目,推送到codeup代码管理中,类似gitlab。

在这里插入图片描述

把本地仓库和codeup关联

cd existing_folder
git init
git remote add origin https://codeup.aliyun.com/2e34ed3c151e2cc/jzjwebcackend.git
git add .
git commit
git push -u origin master

初始化成功

在这里插入图片描述

pom中修改生成jar包名 application.jar

<build><finalName>application</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

添加启动脚本deploy.sh

真实生产环境,肯定是使用sh脚本启停我们的项目,所以这个项目的启停脚本写好在根目录,推送

#!/bin/bash# 修改APP_NAME为云效上的应用名
APP_NAME=applicationPROG_NAME=$0
ACTION=$1
APP_START_TIMEOUT=20    # 等待应用启动的时间
APP_PORT=8083          # 应用端口
HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT}/demo/test  # 应用健康检查URL
APP_HOME=/home/admin/${APP_NAME} # 从package.tgz中解压出来的jar包放到这个目录下
JAR_NAME=${APP_HOME}/target/${APP_NAME}.jar # jar包的名字
JAVA_OUT=${APP_HOME}/logs/start.log  #应用的启动日志# 创建出相关目录
mkdir -p ${APP_HOME}
mkdir -p ${APP_HOME}/logs
usage() {echo "Usage: $PROG_NAME {start|stop|restart}"exit 2
}health_check() {exptime=0echo "checking ${HEALTH_CHECK_URL}"while truedostatus_code=`/usr/bin/curl -L -o /dev/null --connect-timeout 5 -s -w %{http_code}  ${HEALTH_CHECK_URL}`if [ "$?" != "0" ]; thenecho -n -e "\rapplication not started"elseecho "code is $status_code"if [ "$status_code" == "200" ];thenbreakfifisleep 1((exptime++))echo -e "\rWait app to pass health check: $exptime..."if [ $exptime -gt ${APP_START_TIMEOUT} ]; thenecho 'app start failed'exit 1fidoneecho "check ${HEALTH_CHECK_URL} success"
}
start_application() {echo "starting java process"nohup java -jar ${JAR_NAME} > ${JAVA_OUT} 2>&1 &echo "started java process"
}stop_application() {checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'`if [[ ! $checkjavapid ]];thenecho -e "\rno java process"returnfiecho "stop java process"times=60for e in $(seq 60)dosleep 1COSTTIME=$(($times - $e ))checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'`if [[ $checkjavapid ]];thenkill -9 $checkjavapidecho -e  "\r        -- stopping java lasts `expr $COSTTIME` seconds."elseecho -e "\rjava process has exited"break;fidoneecho ""
}
start() {start_applicationhealth_check
}
stop() {stop_application
}
case "$ACTION" instart)start;;stop)stop;;restart)stopstart;;*)usage;;
esac

新建流水线

  • 进入云效 > 流水线 Flow 首页 > 我的流水线,单击 新建流水线,打开 选择流水线模板弹窗,选择对应的开发语言,可以查看当前语言下的默认流水线模板,可以根据模板快速创建流水线。
  • 单击 Java,选择 Java · 构建、部署到阿里云ECS/自有主机模板,单击创建,进入流水线编辑页面。

在这里插入图片描述

编排流水线

  • 进入流水线编辑页 > 流程配置,打开 添加流水线源,选择 示例代码源,默认选中 Java 代码类型,自动填充代码仓库地址、默认分支、工作目录等。
  • 单击 添加,流水线源区域便会出现已添加的流水线源。

在这里插入图片描述

配置测试

在这里插入图片描述

配置构建任务

  • 单击 Java 构建上传任务,打开任务配置面板。
  • 查看java构建步骤配置,可按需修改。
  • 查看 构建物上传步骤配置,可按需修改。本例中,需要将target/application.jar和deploy.sh两个文件打包到制品中,打包路径按下图配置。

在这里插入图片描述

配置部署任务

  • 接下来配置主机部署任务,在制品下拉框中选择“制品名称.default”,也就是前面的“Java构建上传”步骤归档的那个制品。为了配置主机组,需要先创建一个,点击“新建主机组”。

在这里插入图片描述

在这里插入图片描述

刷新页面

在这里插入图片描述
在这里插入图片描述

部署脚本:需要运行启停脚本

  • a.下载路径:表示希望把”构建上传”任务中的压缩包下载到机器上的什么位置,在本例的值为:/home/admin/app/package.tgz
  • b.执行用户:希望以是哪个用户的身份进行脚本执行,本例的值为:root
  • c.部署脚本:在机器上执行脚本的具体内容,本例的值为:
mkdir -p /home/admin/application
tar zxvf /home/admin/app/package.tgz -C /home/admin/application/
chmod 777 /home/admin/application/deploy.sh
sh /home/admin/application/deploy.sh restart

在这里插入图片描述

运行流水线

上述配置完成,单击 保存并运行,可以看到 保存成功 提示,并打开 运行配置弹窗。默认 master分支,单击 运行即可触发流水线运行,进入流水线运行页。

在这里插入图片描述

查看部署情况

在这里插入图片描述

验证项目是否启动

在这里插入图片描述

推送代码触发构建

流水线配置中,开启代码触发

在这里插入图片描述

代码管理中配置Webhooks

在这里插入图片描述

测试一下

在这里插入图片描述

在这里插入图片描述

测试真实代码提交

push

在这里插入图片描述

在这里插入图片描述

回滚

如果发布完成之后发现线上服务有问题,则需要快速回滚。云效Flow提供了通过历史版本直接进行回滚的能力。在流水线运行页面点击”部署历史“,然后选择相应的部署任务,便可以看到该部署任务所有的成功部署记录。

在这里插入图片描述

在这里插入图片描述

通知

为了更好的进行协作,Flow提供了通知能力在流水线不同的生命周期节点上进行通知。一般来讲开发团队会关心部署的成功和失败,那么可以将该事件推送到团队的钉钉群中,配置方式如下,点击”添加插件”,选择钉钉机器人通知,填入webhook地址,运行时机选择”失败“,”成功”

在这里插入图片描述

再次运行之后,就会收到相应的通知:

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词