色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于DevOps工具鏈設計過程及前后效果對比

8nfr_ZTEdevelop ? 來源:互聯網 ? 作者:佚名 ? 2018-04-05 09:08 ? 次閱讀

點擊上方“中興開發者社區”,關注我們

每天讀一篇一線開發者原創好文

現狀背景

某項目是為配合大視頻運維推出的一個項目,需求和任務管理停留在原始的ts上,項目依托svn進行代碼管理,結合jenkins實現持續集成,測試方法偏向使用專項工具進行手工測試的補充。在項目初期經常出現版本交付困難或提交系統測試的交付版本質量滿足不了1輪發布要求,開發和測試人員疲于應對版本提交后的需求調整和故障修復,代碼評審受限于物理空間和時間,不能逐行確認, 自動化測試沒有整體框架,各個專項工具不能整合或擴充;代碼靜態檢查工具等幫助提升版本質量和研發過程效率的工具沒有利用起來。

解決方案

經過研究,也借鑒公司各個兄弟項目的DevOps優秀經驗并與某項目的實際情況相結合,經過不斷的演進,最終形成了以TFS 作為需求和任務管理平臺, 以Gerrit代碼審核服務器為核心構建整合代碼提交、并發測試、靜態檢查、評審、反饋以及入庫等完整代碼流程,引入分層云CI實現了代碼提交評審VerifyCI、代碼合入受控庫MergeCI、每日代碼質量檢測的DailyCI三級質量防護,版本持續迭代和在現網的小批量灰度發布,實現現網運維數據的收集并根據收集的數據改良我們的探針采集建模模型。

1.端到端交付全景圖

2.需求任務可視化

采用TFS輔助敏捷流程,跟蹤需求、用戶故事、Task完成情況

3.云代碼托管

在項目敏捷化迭代演進過程中,很重要的一部分是代碼管理,原來使用svn代碼管理下載速度慢,非常依賴服務器的硬件資源配置, 代碼提交前線下代碼評審比較粗糙,評審過后需要手工合入容易出錯且低效。經過對比考察,使用GIT工具管理源碼,不僅提高代碼獲取效率,而且與Gerrit配合開啟代碼評審功能,提高合入效率。

Git 和其他版本控制系統的主要差別在于,Git 只關心文件數據的整體是否發生變化,而大多數其他系統則只關心文件內容的具體差異,但并不保存這些前后變化的差異數據。實際上,Git 更像是把變化的文件作快照后,記錄在一個微型的文件系統中。每次提交更新時,它會縱覽一遍所有文件的指紋信息并對文件作一快照,然后保存一個指向這次快照的索引。為提高性能,若文件沒有變化,Git不會再次保存,而只對上次保存的快照作一鏈接。

在 Git 中的絕大多數操作都只需要訪問本地文件和資源,不用連網。因為 Git 在本地磁盤上就保存著所有當前項目的歷史更新,所以處理起來速度飛快。舉個例子,如果要瀏覽項目的歷史更新摘要,Git不用跑到外面的服務器上去取數據回來,而直接從本地數據庫讀取后展示給你看。所以任何時候你都可以馬上翻閱,無需等待。如果想要看當前版本的文件和一個月前的版本之間有何差異,Git 會取出一個月前的快照和當前文件作一次差異運算,而不用請求遠程服務器來做這件事,或是把老版本的文件拉到本地來作比較。

4.分支管理策略

原來的分支策略是為不同市場定制需求采用分支版本,開發過程中公共需求采用主線,具體市場發布時采用分支方式,代碼同步耗時過多,極端情況下一個通用的Bug修復要同時同步到幾個活躍分支, 而且CI開展只是覆蓋主線問題容易泄露。切換到git后,項目調整為采取單一master主干為主,少量臨時Feature分支為輔的開發模式。主干通過自動化測試和人工測試結合保證基本功能,實現代碼分支實時可用,可按需發布;對于在master上開發的少量變化大的短周期Feature基于master拉分支開發,自測通過后master進行歸并:

5.代碼評審

Gerrit是一種免費、開放源代碼的代碼審查軟件,使用網頁界面。利用瀏覽器,同一個團隊的開發人員,可以相互審閱彼此修改后的程序代碼,決定是否能夠提交,退回或者繼續修改。公司技術部統一提供Git和Gerrit支持,為了充分利用Git的特性,將項目的代碼托管在公司云服務器,并通過Gerrit實現開發人員之間代碼的互相審核。解決了之前人工看電影式的走查存在的不細致, 記錄失真或者合入失真等問題, 下圖為使用gerrit效果圖:

6.代碼覆蓋率檢測

在功能代碼開發環節和測試用例開發環節,我們引入了gcov代碼覆蓋率檢測工具,通過其lcov生成的掃描報告,如下圖所示:

報表中清晰地指出了代碼行級別的覆蓋,包括:1.每一行代碼的執行頻率;2.實際上哪些代碼確實被執行了;3.每一段代碼(section code)的耗時(執行時間)

根據上述報表,可以清晰地看到代碼是否有冗余或者測試用例設計考慮不周全導致覆蓋率偏低,然后針對性地進行分析和優化改進。

7.持續集成

為了提升代碼產出質量,首先對某的自動化測試環節進行了梳理,把之前零散的專項工具通過基于RF(RobotFrameware)測試框架進行了改造,并引入了分層云CI, 在不同維度上進行分層代碼質量檢測。云CI通過pipeline實現了VerifyCI、MergeCI和DailyCI三個層級持續集成,使得代碼庫變更通過pipeline來組件自動化掃描檢測以郵件推送方式得到及時反饋,示意如下圖:

1)持續集成——VerifyCI

開發人員調試自測通過代碼,提交到gerrit托管庫時,會自動觸發VerfyCI,進行編譯檢測,代碼圈復雜度掃描、UT測試等,并進行VerifyCI+2自動參與代碼評審,并通過郵件自動推送結果。當開發人員開發完成代碼的編寫后,在個人開發環境上就可以立即對自己修改的代碼執行靜態檢查、圈復雜度檢查和UT測試,問題可以在提交gerrit評審庫之前就暴露出來,能夠更早的獲取代碼質量的反饋。實際效果如下圖所示:

2)持續集成——MergeCI

評審通過之后,準許入庫git,提交Merge后會觸發代碼編譯檢測、代碼圈復雜度檢查、商業版的KW靜態代碼掃描、FT功能測試等,并把每個pipeline插件環節的執行結果以郵件的方式實時推送給項目相關成員,執行結果一目了然:

3)持續集成——DailyCI

在某主線分支,我們每天定時觸發進行每日構建,并完成ST系統(包括壓力測試拷機等)測試,執行我完成同樣會生成結果郵件并推送給團隊成員。受資源限制我們設定的定時時間是半夜啟動執行,但第二天一上班就可以看到相關結果,充分利用自動化填報了晚上大家休息的空閑時間。

而且,在掃描過程中的可以設定相關閾值,不滿足要求的可以亮紅燈,進行回退整改。

(備注:CI原則是:紅燈不過夜,如不能及時修復可以先回退,解決后再重新合入)

8.多維度制品庫管理

從制品庫類型分:某的制品庫分為snapshot、alpha、release三個庫。三個庫的功能各不相同,snapshot庫存儲CI中每日構建版本,alpha庫主要存儲供內部測試的穩定版本,release存儲對外發布版本。

1)snapshot制品庫

存放的是每日CI構建的過程版本,這種類型版本通過基本自動化測試,一般用于后續的臨時問題驗證和主線迭代手工測試。

2)alpha制品庫

存放的是經過自動化和手工測試驗證的穩定迭代版本,這種類型版本主要是要開發環節自測可內部發布,提交測試部進行后續占比約20%的系統測試。

3)release制品庫

存放的是通過系統測試,可以進行實際發布部署的版本。

4)灰度發布&持續優化

Release制品庫中的版本,規劃人員會推動現場小批量灰度升級部署,跟蹤升級后的運維指標變化情況后,如果沒發現異常則再安排進行大規模升級部署;如果發現有異常需要修復則反饋給開發團隊修復后重新迭代發布,形成從需求到開發測試及運維的PDCA閉環。

實踐情況

通過項目端到端的流程變革,實現了某探針項目需求開發過程更順暢、團隊產出質量明顯提升,形成了需求、開發、測試和運維相關人員的及時良性互動。

效果評價

  • 代碼分支從svn切換到git,下載速度快,提升了版本構建效率

  • 需求經過了充分討論和評審,并在不同維度上進行了拆分

  • 實現了任務管理可視化,可以及時干預或調整優先級管控風險

  • 代碼提交、評審到主分支入庫進行了有效管控

  • 評審、CI測試、靜態檢查等過程有及時有效的反饋環

采用DevOps實踐效果對比

過去

現在

收益

需求任務可視化

需求突發,與實際開發者缺少溝通,任務沖突時需求優先級不明確協調困難

按Feature、UserStory、Task、Bug呈現,有需求問題描述和驗收準則,開發前就把需求分解澄清

迭代產出版本更符合市場交付需求,版本質量和開發效率和團隊合作等方面都得到提升

版本構建

下載耗時5~10min,無網絡無法工作

下載基本不耗時

版本構建基本不花費下載時間,斷網也可以工作

檢查執行時間

代碼入庫后定時執行

代碼提交動作觸發立即執行

5分鐘發現問題并給出反饋

自動化測試

測試用例少,測試工具整合困難、難以擴展,檢查結果方式不統一

統一基于RF 實現自動化測試設計

測試用例平臺化,易于補充擴展,結果推送格式統一,內容明了報錯亮紅燈

覆蓋率檢查

Grov/lcov執行完輸出詳細的報告可供參考改進

保證覆蓋率、保證代碼質量,改進測試用例覆蓋

靜態檢查

入庫前對變更代碼檢查,要求全部滿足要求

提高代碼質量

運維改進

版本發布部署后被動改進

發布部署前試驗觀察,根據數據進行持續改進

形成了需求、開發、測試和運維閉環

推廣

本文簡要描述了某項目嘗試實踐DevOps工具鏈的過程和前后效果對比,在端到端交付方面進行了摸索,通過優化研發流程提升了團隊的整體效率,當然在很多方面我們做到還不夠精細還需要繼續優化完善,這個轉型過程值得相關項目進行參考。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5086

    文章

    19142

    瀏覽量

    305979
  • devops
    +關注

    關注

    0

    文章

    115

    瀏覽量

    12028

原文標題:DevOps案例 | 某項目DevOps端到端實踐

文章出處:【微信號:ZTEdeveloper,微信公眾號:中興開發者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    stm32可不可以移植linux系統,移植后效果怎么樣?望大神告知?

    如題:stm32可不可以移植linux系統,移植后效果怎么樣?望大神告知?
    發表于 05-25 17:05

    DEX加密效果分析

    :查看jar文件,閱讀反編譯后的java代碼效果對比:1、smali加密前效果2、smali加密后效果3、java加密前4、java加密后補充說明在線免費DEX加密僅隨機加密部分動態
    發表于 12-12 16:56

    請問CCS能燒錄HEX文件到FLASH嗎?如果將*.OUT文件轉換為HEX文件,燒錄到FLASH,前后效果是一樣的嗎?

    本帖最后由 一只耳朵怪 于 2018-6-6 14:18 編輯 CCS一般是燒錄*.out文件到FLASH, 請問CCS能燒錄HEX文件到FLASH嗎?如果可以的話,我將*.OUT文件轉換為HEX文件,燒錄到FLASH,前后效果是一樣的嗎?期待回答。謝謝
    發表于 06-06 02:13

    什么是交叉編譯工具

    @LINUX# 嵌入式嵌入式LINUX交叉編譯工具前言一、什么是交叉編譯工具?二、ARM交叉編譯工具
    發表于 11-04 07:05

    DevOps工具的項目端到端應用實踐過程

    如何在項目中快速建立起一套比較完整的DevOps工具支持。
    的頭像 發表于 04-05 18:30 ?7224次閱讀
    <b class='flag-5'>DevOps</b><b class='flag-5'>工具</b><b class='flag-5'>鏈</b>的項目端到端應用實踐<b class='flag-5'>過程</b>

    是否有了這個工具就是DevOps?

    從達成這一準高性能DevOps指標的團隊分析來看,其具體體現在三個方面:一方面是自動化、標準化、質量保證、敏捷方法的實踐活動上;一方面是DevOps各個階段的對應工具上。除此以外就是,團隊正在開發應用的架構上。
    的頭像 發表于 01-13 15:23 ?1669次閱讀

    DevOps是什么 DevOps常用的工具有哪些

    DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,用于促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。 它是一種
    的頭像 發表于 08-05 11:20 ?6446次閱讀

    DevOps與DevSecOps有什么區別

    DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,用于促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。 五種
    的頭像 發表于 01-30 14:01 ?2651次閱讀

    軟通動力DevOps團隊榮獲“2022年互聯網行業DevOps領域明星團隊”

    作為DevOps 規范任務組成員單位,軟通動力具備成熟的DevOps端到端建設能力。迄今為止,軟通動力已成功協助多個客戶實現了 DevOps 相關工程實踐落地,并圍繞這一過程研發了相關
    的頭像 發表于 11-15 15:27 ?665次閱讀

    平臺工程理念崛起,DevOps 會被取代嗎?

    ”。 平臺工程 (Platform Engineering) 是一種運維理念,試圖解決云原生時代運維問題。其提倡的一個重要觀點是運維平臺要提供工程師自服務能力,希望平臺可以屏蔽基礎設施復雜性,提供靈活的工具
    的頭像 發表于 04-26 09:52 ?1052次閱讀

    JFrog:DEVOPS工具加速軟件發布

    運行DevOps流水線,使其從代碼到生產階段實現了完全自動化。JFrogDevOps 工具支持完全自動化的構建、測試、發布和部署流程,提供廣泛的API的同時,實現快速反饋,確保持續改進。
    的頭像 發表于 05-08 09:41 ?1076次閱讀

    如何實現DevOps目標的核心技術類別和具體技術

    ? 1 關于 DevOps 及其工具 2 計劃工具 3 問題跟蹤 4 源碼控制 5 構建工具 6 測試工具 7 持續集成(CI)和持續部署(
    的頭像 發表于 06-25 15:34 ?697次閱讀

    常用的devops工具集成方法

    常用的devops工具集成方法涵蓋了軟件開發和運維的各個方面,從版本控制到自動化構建、測試、部署和監控。這些工具的有效集成可以幫助團隊提高協作效率,減少溝通障礙,實現快速、高質量的軟件交付。
    的頭像 發表于 10-09 11:21 ?268次閱讀

    Devops工具集成的意義及基本原理

    Devops工具集成的意義在于實現開發(Development)與運維(Operations)之間的緊密協作,通過自動化流程提高軟件交付的速度、質量和穩定性。其基本原理是通過一系列相互連接的
    的頭像 發表于 10-14 10:32 ?207次閱讀

    devops使用最廣泛的集成工具盤點

    devops使用最廣泛的集成工具包括GitLab(全棧DevOps平臺)、Jenkins(CI/CD自動化服務器)、Docker(容器化技術)、Kubernetes(容器編排平臺)、Ansible
    的頭像 發表于 11-26 13:48 ?184次閱讀
    主站蜘蛛池模板: 又粗又大又爽又黄的免费视频| 囯产免费久久久久久国产免费 | 白丝高中生被c爽哭| 青青青青青青青草| 欧美xxxxx九色视频免费观看| 在线少女漫画| 欧美丰满熟妇BBB久久久| 大香伊人中文字幕精品| 亚洲AV国产福利精品在现观看| 久久黄色精品视频| 被公疯狂玩弄的漂亮人妻| 午夜性爽视频男人的天堂在线| 久9青青cao精品视频在线| 97精品一区二区视频在线观看| 色偷偷av男人的天堂| 精品一区二区免费视频蜜桃网| 99久久精品久久久久久清纯| 色偷偷888欧美精品久久久| 精品在线观看一区| 成人在线视频免费观看| 亚洲日本乱码中文论理在线电影| 免费人成视频19674不收费| 国产精品久久久久久免费字体 | YELLOW视频直播在线观看| 午夜一级毛片看看| 女人和男人插曲视频大全| 国产欧美一区二区三区在线看| 2021扫黑风暴在线观看免费完整版| 日日干夜夜艹| 米奇影视999| 狠狠色狠狠色综合日日小说| 宝贝乖女好紧好深好爽老师| 亚洲综合视频| 窝窝色资源站| 强奸日本美女小游戏| 久久精品无码一区二区日韩av| 国产AV无码熟妇人妻麻豆| 99久久国产露脸精品麻豆| 亚洲在线无码免费观看| 爽死你个放荡粗暴小淫货漫画| 嫩草影院成人|