摘要:隨著軟件行業(yè)的快速發(fā)展和數字化轉型的加速,DevOps作為一種強調開發(fā)與運維緊密協(xié)作的軟件交付方法論,其實施高度依賴團隊內部各角色間權限的合理分配與動態(tài)調整。本文從全局級、項目空間級、產品版本級和產品分支級四個維度,對DevOps一體化下的多維權限管理體系進行全面分析。研究結果顯示,多維權限管理不僅為軟件研發(fā)的效率、安全性、穩(wěn)定性和可靠性提供保障,也為企業(yè)DevOps一體化的權限管控提供理論支持與實踐指導,有助于建立安全高效的軟件研發(fā)流程生態(tài)。
關鍵詞:DevOps一體化;軟件研發(fā)流程;多維權限管理
引言
隨著軟件行業(yè)的快速發(fā)展與企業(yè)數字化轉型的深入,軟件研發(fā)流程的復雜度顯著提升,團隊間協(xié)作的緊密性亦日益增強。DevOps作為一種革新性的研發(fā)范式,正逐漸成為企業(yè)提升軟件交付速度與優(yōu)化軟件質量的核心策略[1]。然而,DevOps環(huán)境下復雜的團隊協(xié)作與多角色互動等特性,對權限管理體系提出了更為嚴苛的挑戰(zhàn)。
傳統(tǒng)研發(fā)流程的權限管理存在多重局限,包括權限控制粒度不夠精細,往往局限于產品或系統(tǒng)層面,難以實現針對軟件配置項或特定操作的細致權限劃分;權限分配機制較為粗放,易導致權限過度授予問題,進而引發(fā)安全漏洞與數據泄露風險;權限管理系統(tǒng)與版本控制、持續(xù)交付等關鍵環(huán)節(jié)缺乏有效的集成機制,限制了權限管理與研發(fā)流程的整體協(xié)同效能。鑒于此,本文以浩鯨云計算科技股份有限公司研發(fā)云一體化平臺為基礎,從全局級、項目空間級、產品版本級和產品分支級四個維度,系統(tǒng)性地探討基于DevOps一體化的多維權限管理體系,旨在提升軟件研發(fā)的安全性、高效性及靈活性,為企業(yè)面對復雜的權限管理提供創(chuàng)新性解決方案。
1. 一體化平臺
研發(fā)云作為一體化的DevOps實踐平臺,構建了一套全鏈路自動化機制,覆蓋從源代碼管理到應用系統(tǒng)部署整個流程[2]。該流程涵蓋多個環(huán)節(jié),每個環(huán)節(jié)對應不同的崗位角色,多維權限管理體系有助于加強企業(yè)內各角色之間的緊密協(xié)作,確保軟件開發(fā)能夠快速迭代并有序進行,縮短軟件交付周期,以更好地適應客戶需求變化[3]。該機制不僅是確保軟件各類配置項安全的基礎,也是實現與DevOps一體化平臺無縫銜接不可或缺的必要條件。
2. 多維權限管理體系設計
2.1 模型設計
數據模型通過權限表ad_task_priv實現多維度的權限管理,其中priv_type表示具體的業(yè)務權限類型,priv_user_id表示有權限的用戶,而不同維度的權限以某條記錄的不同字段作為區(qū)分,project_id表示項目空間級權限,product_version_id表示產品版本級權限,branch_version_id表示產品分支級權限,所有字段都為空,表示全局級權限。同時通過生效時間eff_date和失效時間exp_date實現權限的生效時間范圍能力,以及state狀態(tài)提供權限的臨時禁用和開啟功能,如圖1所示。
2.2 實現架構設計
本文設計了一套集成多維權限點的統(tǒng)一管理界面,旨在提升管理效率、確保權限管理的精確性和便捷性。該界面簡化管理員操作流程,通過集中化管理實現權限的集中分配、調整和監(jiān)控。
在界面的一級菜單中,設定了權限管理,二級菜單包括全局級、項目空間級、產品版本級和產品分支級權限。在三級菜單中,涵蓋腳本分類配置、產品分支變更、表元配置、代碼分支管理員、產品配置數據管理、生產分支建單類型等功能(架構如圖2所示)。通過層級結構,管理員可以輕松地根據需要選擇不同的權限級別和功能模塊,進行相應的權限管理操作,提高了操作的便捷性和效率。
集成多維權限點的管理界面,為管理員提供了更直觀、更全面的權限管理視圖,幫助他們更好地監(jiān)控和調整各個權限點,確保權限管理的準確性和一致性。同時,界面的設計也考慮到了擴展性,可以根據需要靈活添加新的權限點或功能模塊,以滿足未來業(yè)務發(fā)展的需求。
3. 多維權限管理體系應用
在DevOps一體化框架下,多維權限管理體系對于確保持續(xù)集成與持續(xù)交付流程的順暢至關重要。浩鯨云計算科技股份有限公司定義了多元角色體系,應用多維權限管理提升系統(tǒng)安全性、可靠性,以及確保合規(guī)性要求的嚴格遵守。該體系不僅優(yōu)化團隊協(xié)作效率和資源利用率,同時為持續(xù)集成與持續(xù)交付流程提供有力支持[4]。
3.1 全局級權限
全局級權限在確保平臺整體安全性和穩(wěn)定性方面起著關鍵作用,不僅涵蓋了用戶管理、安全策略配置等基礎性功能,還擴展至腳本管理、產品分支變更、源碼歸檔等高級操作。
全局級權限賦權信息記錄在ad_global_priv表中。例如,為用戶A賦予全局級腳本分類權限時,全局級維度信息存儲在priv_user_id字段,權限類型存儲在priv_type字段,取值為SQL_SCRIPT_TYPE(如圖3所示)。全局級權限分配策略:產品規(guī)劃經理負責腳本資源分類與配置,優(yōu)化資源管理效率;系統(tǒng)架構師專注于表元配置優(yōu)化,確保系統(tǒng)設計合理高效;研發(fā)責任人管理產品分支變更,靈活調整策略推進項目進度;測試接口人集中復盤任務單,跟進任務執(zhí)行,確保高效交付;配置管理員在全局權限管理中負責任務單腳本修正、源碼歸檔和版本作廢,保證系統(tǒng)版本準確性和源代碼倉庫整潔有序[5]。
3.2 項目空間級權限
在浩鯨云計算科技股份有限公司的DevOps一體化平臺中,項目空間被設計為支持多角色協(xié)同工作的環(huán)境,其中包括項目空間管理員、工時管理員、倉庫管理員和代碼分支管理員等角色。每個角色承擔特定的職責和權限,共同支持項目的安全高效運行。
項目空間管理員負責項目配置、代碼審核、需求驗證規(guī)則和發(fā)布策略,確保團隊操作一致規(guī)范,具備項目編輯權限,靈活調整項目設置以適應需求變化,負責項目戰(zhàn)略與重大決策。工時管理員評估任務工時,監(jiān)控數據解決效率問題,優(yōu)化資源配置,降低項目風險。倉庫管理員保障代碼安全,管理倉庫操作,維護代碼庫結構清晰與安全性[6]。代碼分支管理員管理長期分支,執(zhí)行合并與歸檔操作,確保代碼一致性與歷史記錄完整性。根據上述角色進行相應權限的賦權,用戶權限信息將記錄在ad_task_priv表中。在該表中,project_id字段用于存儲項目空間級維度信息,priv_user_id字段用于存儲用戶信息,priv_type字段用于存儲工時管理類型。以用戶B申請工時管理員權限為例,其權限信息將被記錄在ad_task_priv表中,其中project_id字段將存儲項目空間級維度信息,priv_user_id字段將存儲用戶B的信息,而priv_type字段將存放工時管理類型,取值為WORK。
3.3 產品版本級權限
在軟件產品的整個生命周期中,實施精細化的產品版本級權限管理策略,對于確保系統(tǒng)配置項(包括源代碼、配置文件、參數和數據庫腳本等核心組件)的穩(wěn)定性和可靠性至關重要[7]。通過精心設計的用戶角色和權限分配體系,可以嚴格規(guī)范對配置項的訪問權限和操作行為,提升系統(tǒng)整體的安全性和抵御潛在風險的能力。
本文將重點分析產品版本中的三個核心配置項權限管理。首先是腳本管理權限的精細化控制。數據庫腳本作為產品數據模型的定義載體,涵蓋了表結構、關系定義和約束條件等要素。通過數據庫腳本,研發(fā)團隊將產品的數據模型映射至實際數據庫實例,為產品功能的實現提供必要的數據支持。數據庫腳本與產品功能需求密切交織,以確保數據庫結構有效配合和支持產品的各項功能和業(yè)務流程。精細化權限管控可確保只有授權人員能夠修改和執(zhí)行數據庫腳本操作,維護數據安全性和一致性。
其次是產品配置數據權限的規(guī)范管理。配置文件承載產品或業(yè)務的功能選項和個性化配置,如第三方服務的IP地址、端口號和連接數據庫所需信息等。合理設置和管理配置項可調整系統(tǒng)行為,適應不同環(huán)境和需求[8]。
最后是處理計劃權限的明確界定。處理計劃對項目按時按質完成至關重要,明確定義責任人和時間節(jié)點可確保團隊準確追蹤任務進度,及時解決問題,保證項目交付。鑒于其重要性,浩鯨云計算科技股份有限公司明確規(guī)定僅系統(tǒng)架構師有腳本管理權限,有效防止非授權人員對數據庫腳本的隨意更改,保障腳本正確性與安全性,維護數據模型穩(wěn)定可靠;產品配置數據和處理計劃權限授予研發(fā)責任人,確保配置文件準確、規(guī)范、合規(guī)。依據角色進行權限分配,用戶權限信息將被記錄在ad_task_priv表中。舉例來說,當為用戶C賦予產品配置數據管理權限時,相關信息將被存儲在ad_task_priv表中。具體而言,產品版本級信息將被記錄在product_version_id字段,用戶C的信息將被存儲在priv_user_id字段,而權限類型將被存放在priv_type字段中,其取值為PRODUCT_STD_CONFIG。
3.4 產品分支級權限
浩鯨云計算科技股份有限公司采用分層設計架構,包括產品層和定制層,為跨職能研發(fā)團隊提供清晰高效的框架。每個層級都有專門的研發(fā)團隊和獨立的源代碼倉庫,旨在建立專業(yè)化的開發(fā)環(huán)境,提高研發(fā)效能。
在這種架構下,產品分支級權限管理變得至關重要,主要聚焦于版本計劃的制定和生產分支建單類型的控制。版本計劃權限被授予研發(fā)責任人,通過系統(tǒng)化方法對產品層和定制層的版本需求進行優(yōu)先級排序和資源調度,確保開發(fā)和發(fā)布按計劃進行??茖W的優(yōu)先級評估體系幫助識別和處理最有價值的功能需求,優(yōu)化資源配置,保證研發(fā)進程連續(xù)性和高質量。合理的版本調度有助于順利銜接各開發(fā)階段,降低延誤風險,提高項目管理效率和市場競爭力[9]。生產分支建單類型控制機制通過規(guī)范生產分支上任務單的創(chuàng)建與管理,實現高效分配研發(fā)資源和監(jiān)控發(fā)布版本問題。該機制評估已發(fā)布版本中的故障和未完成需求,為版本規(guī)劃和質量控制提供數據支持。減少故障重復發(fā)生,合理規(guī)劃需求,提升版本管理精準度和產品質量[10]。分析歷史故障和需求完成情況,為未來版本規(guī)劃提供數據支持,提高產品競爭力和用戶滿意度。當為用戶D授予生產分支建單類型權限時,相關信息將被存儲在ad_task_priv表中。其中,產品分支級信息將被記錄在branch_version_id字段,用戶D的信息將被存儲在priv_user_id字段,而權限類型將被存放在priv_type字段中,其取值為TRUNK_CREATE_TASKL。
結語
在當前軟件行業(yè),敏捷開發(fā)與持續(xù)交付模式已成為構筑核心競爭優(yōu)勢的重要基石。在此背景下,權限管理體系的靈活性與可擴展性已提升至企業(yè)戰(zhàn)略層面,成為加速產品迭代周期、精準應對市場變化以及實現高頻發(fā)布策略不可或缺的組成部分。本文提出的全局級、項目空間級、產品版本級和產品分支級多維級權限管理框架,旨在構建一個全面且高效的權限管理體系,確保資源訪問的合規(guī)性、安全性與靈活性,更好地應對在DevOps一體化環(huán)境下不斷加快的產品迭代速度和發(fā)布需求,進而促進企業(yè)整體競爭力的提升。
參考文獻:
[1]喬瑋,趙文瑞.DevOps發(fā)展現狀及趨勢研究[J].數字技術與應用,2018,36(4):74-76.
[2]龔桂芬,龔蘭蘭.基于Devops的軟件項目開發(fā)實踐[J].工業(yè)控制計算機,2022,35(4):87-89.
[3]王曉龍.基于敏捷開發(fā)的持續(xù)交付系統(tǒng)的研究[J].信息技術,2023(5):131-136.
[4]付喬,張昊.持續(xù)集成持續(xù)交付的NFV/SDN網絡新型集成體系[J].移動通信,2019,43(7):22-27.
[5]韋金興.管理軟件權限設計的研究[J].輕工科技,2016(4):67-68.
[6]鄭海洋.安全信息化管理軟件研發(fā)[J].計算機產品與流通,2019(4):41.
[7]李占倉,孟祥雙.一種權限管理的改進方法[J].信息與電腦(理論版), 2021(11):100-103.
[8]王博,郝羽.一種靈活的小顆粒權限管理方法及其實踐[J].現代電子技術,2019(11):153-157.
[9]田健.基于DevOps的軟件開發(fā)項目管理研究[D].北京:北京郵電大學,2023.
[10]溫林芝.軟件開發(fā)過程中的軟件配置管理研究[J].科技視界,2017(33):168-169.
作者簡介:屠趁鋒,碩士研究生,副高級工程師,549404616@qq.com,研究方向:DevOps、軟件研發(fā)流程。
互聯(lián)網周刊2024年22期