SVN多分支開發模式V1.0.1

来源:http://www.cnblogs.com/Javame/archive/2017/09/15/7526913.html
-Advertisement-
Play Games

1目的 規範開發模式過程,指導項目研發、質控測試、DevOps的相關活動。 2適用範圍 本規範的作用範圍是為互聯網軟體產品相關項目開發模式的管理過程。 (1) 對項目團隊中研發人員在開發模式過程中的活動、職責等方面進行了指導; (2) 對項目團隊中質控測試在開發模式過程中的活動、職責等方面進行了指導 ...


1目的

規範開發模式過程,指導項目研發、質控測試、DevOps的相關活動。

2適用範圍

本規範的作用範圍是為互聯網軟體產品相關項目開發模式的管理過程。

(1)   對項目團隊中研發人員在開發模式過程中的活動、職責等方面進行了指導;

(2)   對項目團隊中質控測試在開發模式過程中的活動、職責等方面進行了指導;

(3)   對項目團隊中DevOps人員在開發模式過程中的活動、職責等方面進行了指導。

3角色及職責定義

(1)   項目研發:需求功能的實現者,分支開發、轉測階段由研發負責人驅動,交付質控提測郵件中需明確六要素:

項目名稱、版本號、分支路徑、腳本路徑、部署手冊、功能邊界。

(2)   質控測試:為實現版本輪轉高效,除日常測試活動外,

測試環境【合併主幹併發布測試環境】、

預發佈環境【主幹測試通過發佈預發佈環境】、

生產環境【預發佈環境驗收通過,發佈生產環境並完成版本歸檔等】

由質控團隊統一負責服務。

(3)   DevOps:持續交付工具研發和維護,負責版本交付周期過程中的發佈支持。

4開發模式

包括單分支開發模式多分支開發模式。下麵分別闡述每種開發模式在項目過程中如何進行。

4.1開發模式

 

                            

(1)單分支開發模式:確定基線、拉分支、合主幹、項目發佈、版本歸檔、持續交付。

(2)多分支開發模式:確定基線、拉(特性)分支、同步/回滾/合主幹、項目發佈、

版本歸檔、持續交付。

4.1.1單分支開發模式

4.1.1.0確定基線版本

SVN-Trunk:工程Demo – 》特性開發–》 穩定版本

4.1.1.1拉分支

分支來源於穩定主幹,穩定主幹均需符合以下條件:

(1)   版本已發佈生產環境;

(2)   版本已完成版本歸檔。

4.1.1.2合主幹

分支提測合主幹

六要素:項目名稱、版本號、分支路徑、腳本路徑、部署手冊、功能邊界。

4.1.1.3項目發佈

4.1.1.3.1持續集成
  • 隨著軟體項目複雜度的增加,對確保集成和軟體組件一起工作的要求也就越來越高,因此要早集成,常集成。早集成、常集成,有助於在早期發現項目風險和質量問題,若到項目後期才發現這些問題,解決問題的代價會很大,將導致項目延期或者項目失敗。

 

 

l  Jenkins是將代碼進行統一的編譯打包、還可以放到tomcat容器中進行發佈。

通過配置,將以前:編譯、打包、上傳、部署到Tomcat中的過程交由Jenkins,Jenkins通過給定的代碼地址URL,將代碼拉取到其“宿主伺服器”(就是Jenkins的安裝位置),進行編譯、打包和發佈到容器中。

在Jenkins的宿主伺服器中必須要有可以進行:代碼clone(Git)、代碼編譯(Maven)、代碼運行(Tomcat)的基本環境

4.1.1.3.2持續部署

Udeployer是一套完整的持續交付生態系統,在交付過程的每一個步驟都是可視化、自動化的,可以帶來包括效能在內的顯著的好處,自動應用部署也改進了軟體的總體質量。Udeployer集合了Jenkins、swarm、docker等工具,在跨網段、跨內外網等方面可以靈活配置。在整個版本交付生命周期(包括部署在內)推薦使用Udeployer,能夠把人為的干預最小化、節省各環節等待時間,使得交付的流程更清晰化。一旦把人的干預去掉,質量就更加可預測,會變得更好。

其他自動化部署工具(Ansible、SaltStack)

4.1.1.4版本歸檔

版本管理是為滿足不同需求,對同一產品或系統進行局部的改進和改型所產生的產品或系統系列的變更情況進行記錄、跟蹤、維護和控制的過程。

版本是記錄特定對象各個可選狀態的快照,版本管理的任務就是對對象的歷史演變過程進行記錄和維護,根據實際應用背景選擇合適的版本間的拓撲結構,並至少應包括以下功能:(1)新版本的生成;統一、協調管理各個版本;

(2)有效記錄不同版本的演變過程及對不同版本進行有效管理,以儘可能少的數據冗餘記錄各版本。

(3)保證不同版本在邏輯上的一致性和相對獨立性,一個版本的產生和消失不會對其

餘版本的內容產生影響。

(4) 版本切換時,指定了新的當前版本後,必須保證對象的映象和指定的版本保持一致。

4.1.1.5持續交付

4.1.1.5.1統一源碼路徑(保證測試環境、預發佈環境、生產環境的源碼一致性)

(1)分支:由歸檔後的主幹創建,操作人員為項目研發,用於新需求功能實現。

(2)主幹:由提測分支合併,操作人員為質控測試;用於功能測試、測試環境、預發佈環境、生產環境的運行。

(3)Tag:預發佈環境驗收通過,發佈生產環境並完成版本歸檔,操作人員質控測試,用於記錄生產環境穩定版本,便於回滾主幹操作。

4.1.1.5.2統一依賴關係(保證測試環境、預發佈環境、生產環境的容器一致性)

(1)  Swarm集群

l  Swarm是一套較為簡單的工具,用來管理docker集群,它將一群Docker宿主機變成一個單一的,虛擬的主機。Swarm使用標準的Docker API介面作為其前端訪問入口,換言之,各種形式的Docker Client(docker client in Go, docker_py, docker等)均可以直接與Swarm通信。

l  Swarm deamon只是一個調度器(Scheduler)加路由器(router),Swarm自己不運行容器,它只是接受docker客戶端發送過來的請求,調度適合的節點來運行容器,這意味著,即使Swarm由於某些原因掛掉了,集群中的節點也會照常運行,當Swarm重新恢復運行之後,它會收集重建集群信息。下麵是Swarm的結構圖:

 

 

圖1

 

圖2

(2)  Docker倉庫

  • Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。

  • 倉庫是集中存放鏡像文件的場所。有時候會把倉庫和倉庫註冊伺服器(Registry)混為一談,並不嚴格區分。實際上,倉庫註冊伺服器上往往存放著多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標簽(tag)。

  • 倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。

最大的公開倉庫是 Docker Hub,存放了數量龐大的鏡像供用戶下載。 其作為預設docker倉庫,但在國內下載速度很慢。當然,用戶也可以在本地網路內創建一個私有倉庫。當用戶創建了自己的鏡像之後就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺機器上使用這個鏡像時候,只需要從倉庫上 pull 下來就可以了。

4.1.1.5.3自動化發佈(源碼交付和依賴關係交付,通過自動化交付實現)

同上“4.1.1.3項目發佈”

4.1.2多分支開發模式

同步/回滾/合主幹

 

 

4.1.2.1直接合併主幹

提測版本號末位-1與當前主幹版本號一致。

4.1.2.2先同步該主幹,再合併主幹

  (1)提測版本號末位-1與當前主幹版本號不一致;
(2)其他分支有歸檔記錄,找到最近一次歸檔的版本號。

4.1.2.3先回滾上一版本,再合併主幹

(1)提測版本號末位-1與當前主幹版本號不一致;

(2)其他分支無歸檔記錄;

(3)提測版本號末位-1在歷史版本中存在 , 則需找到主幹版本號末位-1的主幹。

4.1.2.4先回滾分支對應主幹,再合併主幹

(1)提測版本號末位-1與當前主幹版本號不一致;
(2)其他分支無歸檔記錄;
(3)提測版本號末位-1在歷史版本中不存在,則需找到對應的拉分支時主幹。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 溫度PID控制時, 有多個溫度測量點, 但最終只有一個溫度作為反饋值參與PID控制, 我們有時會採用平均值法, 計算所有溫度的平均值來作為PID的反饋值. 但在某一路溫度探頭斷線的情況下, 溫度值為零, 這時平均值就會小很多.像這種情況下中值法比較有效. 原理如下: 對於一組溫度, 模擬量轉換為數字... ...
  • 編譯:Lemon,原文作者:Ernst Haagsman 公眾號:Python數據之道(ID:PyDataRoad) pycharm:2017.3版即將新增科學計算模式 在JetBrains將發佈的新版本PyCharm中,考慮到越來越多的Python開發者進行數據科學相關開發,即將發佈的PyChar ...
  • 首先,看完這篇文章,不能保證你成為大神,但是卻可以讓你懂得什麼是爬蟲,如何使用爬蟲,如何利用http協議,侵入別人的系統,當然只是一些簡單的教程,拿到一些簡單的數據; 先上代碼,在一步一步講解: 這是一個工具類,不用詳細看,網上哪裡都能找到發送http請求的工具類,少包自己導 package com ...
  • 筆者每當遇到一個新事物的想去瞭解的時候,總是會問上自己第一個問題,這個新事物是乾什麼用的?在解釋我所理解的REST這個過程中也不例外,這篇博客我們先關註一下REST是乾什麼用的,然後後續再解釋REST是什麼。好了,不說廢話了,在上篇結尾處說到,REST是Web的架構風格,暫且不管REST和Web,我 ...
  • 【卻說那七衣仙女自受了大聖的定身法術,一周天方能解脫,各提花籃,回奏王母說道:“齊天大聖使術法困住我等,故此來遲。”王母問道:“汝等摘了多少蟠桃?”仙女道:“只有兩籃小桃,三籃中桃。至後面,大桃半個也無,想都是大聖偷吃了。及正尋間,不期大聖走將出來,行凶拷打,又問設宴請誰。我等把上會事說了一遍,他就 ...
  • ?useUnicode=true&characterEncoding=utf-8&useSSL=false ...
  • 【大聖看玩多時,問土地道:“此樹有多少株數?”土地道:“有三千六百株。前面一千二百株,花微果小,三千年一熟,人吃了成仙了道,體健身輕。中間一千二百株,層花甘實,六千年一熟,人吃了霞舉飛升,長生不老。後面一千二百株,紫紋緗核,九千年一熟,人吃了與天地齊壽,日月同庚。”大聖聞言,歡喜無任,當日查明瞭株樹 ...
  • 目前已定義的java設計模式細分下來有二十餘種,這篇博客主要是想從大家所熟知的孫悟空入手,闡述各個設計模式的概念和優缺點,以及他們之間的聯繫。 在下麵介紹的每個設計模式里,都會有與孫悟空相關的具體案例,主要是為了方便大家理解與記憶,否則使用一些枯燥的例子,很難讓人印象深刻。 按筆者的理解,設計模式的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...