自動化部署(三):項目管理平臺

一、項目管理平臺作用

幫助團隊高效規劃、執行和監控項目進度,確保任務按時完成并實現目標

  • 敏捷開發:提供標準敏捷研發管理,支持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地址,運行時機選擇”失敗“,”成功”

在這里插入圖片描述

再次運行之后,就會收到相應的通知:

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66728.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66728.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66728.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

常用集合-數據結構-MySql

目錄 java核心&#xff1a; 常用集合與數據結構: 單例集合: 雙列集合: 線程安全的集合: ConcurrentHashMap集合: HashTable集合: CopyOnWriteArrayList集合: CopyOnWriteArraySet集合: ConcurrentLinkedQueue隊列: ConcurrentSkipListMap和ConcurrentSkipListSet&…

IP屬地與視頻定位位置不一致:現象解析與影響探討

在數字化時代&#xff0c;IP屬地和視頻定位位置已成為我們獲取網絡信息、判斷內容真實性的重要依據。然而&#xff0c;有時我們會發現&#xff0c;某些視頻內容中展示的定位位置與其發布者的IP屬地并不一致。這種不一致現象引發了廣泛的關注和討論。本文旨在深入剖析IP屬地與視…

計算機畢業設計hadoop+spark股票基金推薦系統 股票基金預測系統 股票基金可視化系統 股票基金數據分析 股票基金大數據 股票基金爬蟲

溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 作者簡介&#xff1a;Java領…

機器學習-數據集劃分

文章目錄 一. 為什么要劃分數據集二. 數據集劃分的方法1. 留出法&#xff1a;2. 交叉驗證&#xff1a;將數據集劃分為訓練集&#xff0c;驗證集&#xff0c;測試集3. 留一法&#xff1a;4. 自助法&#xff1a; 一. 為什么要劃分數據集 為了能夠評估模型的泛化能力&#xff0c;可…

根據當前用戶的活動、當地天氣和喜歡音樂類型,然后根據這些信息來播放相應的Spotify音樂 附python代碼

這段代碼是一個Python腳本,它使用了幾個外部庫來創建一個簡單的圖形用戶界面(GUI),讓用戶根據當前用戶的活動、當地天氣和喜歡音樂類型,然后根據這些信息來播放相應的音樂。 1. **導入庫**: - `openai`:用于與OpenAI API交互(盡管在這段代碼中沒有使用)。 - `sp…

excel導入數據處理前端

dialogErrorVisible false;dialogErrorTitle ;//錯誤標題public get gridErrorOptions(): GridOptions {return {headerHeight: 30, // 表頭高度rowHeight: 30, // 行高columnDefs: [//列定義{headerName: "序號",field: "SerialNumber",width: 40,pinne…

Vue 攔截監聽原理

Vue 漸進式JavaScript 框架 學習筆記 - Vue 攔截監聽原理 目錄 攔截監聽原理 如何跟蹤變化 攔截監聽示例 觀察者 注意:vue3的變化 總結 攔截監聽原理 如何跟蹤變化 當你把一個普通的Javascript 對象傳入 Vue 實例作為data選項&#xff0c;Vue 將遍歷此對象所有的proper…

全面評測 DOCA 開發環境下的 DPU:性能表現、機器學習與金融高頻交易下的計算能力分析

本文介紹了我在 DOCA 開發環境下對 DPU 進行測評和計算能力測試的一些真實體驗和記錄。在測評過程中&#xff0c;我主要關注了 DPU 在高并發數據傳輸和深度學習場景下的表現&#xff0c;以及基本的系統性能指標&#xff0c;包括 CPU 計算、內存帶寬、多線程/多進程能力和 I/O 性…

基于JAVA的校園二手商品交易平臺的設計與開發

摘 要&#xff1a;政府政策引導與社會觀念的轉變使得國內大學生的創業意識逐漸提高&#xff0c;很多高校大學生開始自主創業。目前我國各大高校暫且還沒有較為成型的針對校內學生創業者的校園網絡服務平臺。本文首先主要是介紹了關于java語言以及web開發的相關技術&#xff0c;…

HarmonyOS Next 應用UI生成工具介紹

背景 HarmonyOS Next適配開發過程中難買難要參考之前邏輯&#xff0c;但是可能時間較長文檔不全&#xff0c;只能參考Android或iOS代碼&#xff0c;有些邏輯較重的場景還可以通過AI工具將Android 的Java代碼邏輯轉成TS完成部分復用。對于一些UI場景只能手動去寫&#xff0c;雖…

總結6..

背包問題的解決過程 在解決問題之前&#xff0c;為描述方便&#xff0c;首先定義一些變量&#xff1a;Vi表示第 i 個物品的價值&#xff0c;Wi表示第 i 個物品的體積&#xff0c;定義V(i,j)&#xff1a;當前背包容量 j&#xff0c;前 i 個物品最佳組合對應的價值&#xff0c;同…

代碼隨想錄day1

704.二分查找&#xff1a; 1.左閉右閉 int search(vector<int>& nums, int target) {int right nums.size() - 1;int left 0;while(left < right){int middle left ((right - left) >> 1);if(nums.at(middle) target){return middle;}else if(nums[m…

四級詞匯第六期

1.accomplish 完成 2.implication 暗示 3.complicated 復雜的 4.extent 范圍 5.sufficient 充足的 6.remarkable 引人注目的 7.insight 洞察 8.executive 管理的 9.overlook 俯瞰 忽略 10.urge 渴望 激勵 11.urgent 緊急的 12.accumulate 積累 13.appreciate 賞識 …

OpenHarmony OTA升級參考資料記錄

OpenHarmony 作為一個開源分布式操作系統,通過其強大的 OTA(Over-The-Air)升級能力,為開發者和廠商提供了一套靈活而安全的系統升級方案。 OTA升級方式 根據升級包的應用方式,OpenHarmony 的 OTA 升級可以分為兩種:本地升級和網絡OTA升級。 本地升級 本地升級是將已制作…

【數據結構篇】順序表 超詳細

目錄 一.順序表的定義 1.順序表的概念及結構 1.1線性表 2.順序表的分類 2.1靜態順序表 2.2動態順序表 二.動態順序表的實現 1.準備工作和注意事項 2.順序表的基本接口&#xff1a; 2.0 創建一個順序表 2.1 順序表的初始化 2.2 順序表的銷毀 2.3 順序表的打印 3.順序…

SDL2基本的繪制流程與步驟

SDL2(Simple DirectMedia Layer 2)是一個跨平臺的多媒體庫,它為游戲開發和圖形應用提供了一個簡單的接口,允許程序直接訪問音頻、鍵盤、鼠標、硬件加速的渲染等功能。在 SDL2 中,屏幕繪制的流程通常涉及到窗口的創建、渲染目標的設置、圖像的繪制、事件的處理等幾個步驟。…

上位機工作感想-2024年工作總結和來年計劃

隨著工作年限的增增長&#xff0c;發現自己越來越不喜歡在博客里面寫一些摻雜自己感想的東西了&#xff0c;或許是逐漸被工作逼得“成熟”了吧。2024年&#xff0c;學到了很多東西&#xff0c;做了很多項目&#xff0c;也幫別人解決了很多問題&#xff0c;唯獨沒有漲工資。來這…

阿里云-銀行核心系統轉型之業務建模與技術建模

業務領域建模包括業務建模和技術建模&#xff0c;整體建模流程圖如下&#xff1a; 業務建模包括業務流程建模和業務對象建模 業務流程建模&#xff1a;通過對業務流程現狀分析&#xff0c;結合目標核心系統建設能力要求&#xff0c;參考行業建 模成果&#xff0c;形成結構化的…

Unity3D基于Unity整合BEPUphysicsint物理引擎實戰詳解

引言 Unity3D是一款流行的游戲引擎&#xff0c;提供了豐富的功能和工具&#xff0c;使開發者能夠輕松創建各種類型的游戲。其中&#xff0c;幀同步技術是游戲開發中至關重要的一環&#xff0c;它能確保多個玩家在同一時間內看到的游戲狀態是一致的。BEPUphysicsint是一個基于U…

【C++筆記】紅黑樹封裝map和set深度剖析

【C筆記】紅黑樹封裝map和set深度剖析 &#x1f525;個人主頁&#xff1a;大白的編程日記 &#x1f525;專欄&#xff1a;C筆記 文章目錄 【C筆記】紅黑樹封裝map和set深度剖析前言一. 源碼及框架分析1.1 源碼框架分析 二. 模擬實現map和set2.1封裝map和set 三.迭代器3.1思路…