一、項目管理平臺作用
幫助團隊高效規劃、執行和監控項目進度,確保任務按時完成并實現目標
-
敏捷開發:提供標準敏捷研發管理,支持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地址,運行時機選擇”失敗“,”成功”
再次運行之后,就會收到相應的通知: