如果你和你的團隊正在處理像Git或Subversion這樣的工具,你可能需要一個管理層,在那里你能夠以一種舒適的方式管理用戶訪問和倉庫,因為原始碼控制管理系統(SCM)并沒有帶來這種功能的開箱,
也許你已經熟悉了流行的管理解決方案,如GitHub、GitBlit或GitLab,它們成功的主要原因是其巨大的功能,當然,如果你打算用Jenkins這樣的自動化服務器創建自己的構建和部署管道,你也需要托管自己的倉庫管理器,
盡管GitLab和其他解決方案的使用很好,但也有一點苦澀的味道,
- 管理是非常復雜的,需要一定的經驗,
- 要使這些程式有良好的性能,對硬體資源的最低要求也不低,
為了克服所有這些障礙,我將在工具制造商的天空上介紹一顆新星SCM-Manager,快速、緊湊、可擴展和簡單,是我用來描述它的主要屬性,
入門:安裝
讓我們快速看一下安裝有多簡單,為了快速見效,你可以使用官方的Docker容器,只需要一個簡短的命令,
docker run --name scm –restart=always \
-p 8080 -p 2222 \
-v /home/<user>/scmManager:/var/lib/scm \
scmmanager/scm-manager:2.22.0
首先,我們在SCM-Manager影像2.22.0的基礎上創建一個名為scm的容器,然后,我們告訴這個容器在主機作業系統重啟時總是重新啟動,同時,我們打開2222和8080埠,使服務可以被訪問,最后一步是在容器內掛載一個目錄,所有的配置資料和資源庫都存盤在這里,之后,你可以打開瀏覽器,輸入localhost:8080,在這里你可以通過創建初始管理賬戶完成安裝,在這個表格中,你需要從命令列粘貼啟動令牌,如圖2所示,在你提交了初始化表格后,你會被重定向到登錄,這就是全部,不到5分鐘就完成了,
對于完整的腳本化的未觸及的安裝,也有一種方法可以通過使用系統屬性scm.initalPassword繞過初始化表單,這將創建一個名為scmadmin的用戶,并給出密碼,
在舊版本的SCM-Manager中,默認的登錄賬戶是scmadmin,密碼是scmadmin,這種老方法相當有用,但如果管理員在安裝后沒有禁用這個賬戶,就會有很高的安全風險,這個安全改進是自2.21版本以來的新內容,
在我們一起發現更多關于管理的資訊之前,讓我們先來了解一下關于SCM-Manager的一些一般細節,SCM-Manager在MIT許可下是開源的,這允許商業使用,代碼可以在GitHub上找到,該專案開始于研究作業,從第二版開始,Cloudogu公司獲得了代碼庫的所有權并管理未來的發展,這種結構允許為公司提供專業的企業支持,另一個不錯的細節是,SCM-Manager是在德國開發的,
插件
使用SCM-Manager最令人興奮的細節之一是,有一個簡單的可能性,即用插件來擴展最小的安裝,以增加更多有用的功能,但是要小心,因為安裝的插件越多,SCM-Manager需要分配的資源就越多,每個開發團隊都有不同的優先級和必要性,為此,我總是喜歡根據自己的需要定制應用程式,
插件安裝部分可以通過管理選項卡到達,如果你不能看到這個條目,你就沒有管理權限,在右側的選單中,你可以找到插件這個條目,插件選單分為兩個部分:已安裝和可用,為了更好地了解情況,插件是按類別組織的,如管理、授權或作業流,每個插件的簡短描述都非常精確,讓人對它們的作用有一個好印象,
一些預裝的插件,如源代碼管理類別中支持的倉庫型別Git、Subversion和Mercurial,不能被卸載,
我最喜歡的一些插件位于授權部分:
- 路徑寫入保護,分支寫入保護
- Tag保護
這些功能對Build-和Configuration Manager來說是最方便的,使用方法也和安裝一樣簡單,讓我們來看看它是如何作業的,有什么必要,
權限
想象一下,你的團隊正在處理一個Java/Maven專案,也許有一條規則,只允許選定的人修改pom.xml構建邏輯的內容,這可以通過路徑寫保護插件來實作,安裝完畢后,導航到代碼庫,選擇右側選單中的設定條目,然后點擊選項Path Permissions并激活該復選框,
正如你在圖4中看到的,我創建了一個規則,只有用戶Elmar Dott能夠修改pom.xml,相反的權限是排除(拒絕)該用戶,如果檔案或路徑運算式不存在,規則就不能被創建,另一個重要的細節是,這個權限涵蓋所有現有的分支,為了便于管理,現有的用戶可以被組織成組,
以同樣的方式,你能夠保護分支不受不必要的改變,當你的團隊使用大規模分支或git-flow分支模型時,你可能需要這個選項,另外,個人開發者分支可能只有擁有該分支的開發者的寫入權限,或者運行CI/CD管道的發布分支只有配置管理團隊成員的權限,
讓我們繼續前進到另一個有趣的功能,即審查插件,這個插件可以為你的存盤庫實作拉動請求,安裝審查插件后,在你的倉庫的選單中會出現一個新的專案點,它被稱為pull requests,
Pull Requests
另一方面,pull requests是一個非常強大的作業流程,在我的職業生涯中,我經常看到對拉動請求的誤用,這導致了生產力的急劇下降,出于這個原因,我想更深入地了解這個話題,
最初,拉動請求是為開放原始碼專案設計的,以確保代碼質量,這種范式的另一個名字是獨裁者作業流程[5],每個開發者都向倉庫提交他的修改,倉庫所有者決定哪個修訂版將被集成到代碼庫中,
如果你把你的專案源托管在GitHub上,陌生人就不能直接在你的專案中合作,他們首先要把倉庫分叉到自己的GitHub空間,在他們向這個分叉的倉庫提交一些修訂后,他們可以向原始倉庫創建一個拉動請求,作為版本庫的所有者,你現在可以決定是否接受拉動請求,
SCM工具IBM Synergy在20年前也有類似的策略,使用起來太復雜了,所以很多公司決定轉向其他解決方案,這些天來,看起來歷史正在重演,
我對使用pull requests持懷疑態度的原因是非常務實的,我經常在專案中觀察到,經理并不信任開發者,然后他決定實施pull requests的作業流程,讓首席開發者或架構師接受pull requests,這些人通常太忙了,無法真正檢查每個拉動請求的所有細節,因此,他們的解決方案是簡單地將每個拉動請求合并到代碼庫中,并檢查CI管道是否仍然有效,這樣一來,拉動請求就成了浪費時間的事情,
還有一種方法,即拉動請求可以真正提高專案的代碼質量:如果它們被用作代碼審查工具,
特點總結
SourceCode Management
SCM-Manager comes out of the box with support for Git, Mercurial and Subversion. All three types can be managed the same way over one interface.
Easy Installation
SCM-Manager can be easily installed on the platform of your choice. We are trying to make the installation on every platform as easy as possible.
Plugins
We provide a variety of useful plugins from a wide range of categories out of the box which can be expanded individually.
Extensible
SCM-Manager can be easily extended with its simple plugin api.
REST API
We provide you a rich Level 3 RESTful WebService for every function of SCM-Manager. This makes it easy to integrate with your internal processes.
Authentication
SCM-Manager comes with a very flexible authentication mechanism. You can configure the mechanism that fits your needs or use the embedded one.
Authorization
SCM-Manager provides a fine grained authorization model. Give users or groups of users exactly the permissions they need.
Simple Configuration
SCM-Manager is completely configurable from its Web-Interface. There is no need to hack configuration files.
No Dependencies
No web servers, databases or caches are required. SCM-Manager is very lightweight and does not force you to install a ton of infrastructure components.
User Interface
SCM-Manager comes with a nice looking rich user interface, which provides you with a smooth user experience.
OpenSource
SCM-Manager is free and licensed under the MIT OpenSource license.
Summary
如果你敢于希望在DevOps世界中過上更簡單的生活,也許你的愿望成真了,SCM-Manager可能是你最好的朋友,這個應用程式提供了很多我在這里簡單描述的功能,但還有更多的高級功能,我甚至沒有在這個簡短的介紹中提到,有可能創建腳本并通過SCM-Manager的API執行它們,此外,還有一個用于Jenkins自動化服務器的插件,其他基礎設施工具,如Jira、Timescale或Prometheus指標收集,都與SCM-Manager集成,
我希望通過這篇小文章,我能夠吊起你對這個令人興奮的工具的胃口,我希望你喜歡嘗試它,
參考
[1] https://www.scm-manager.org
[2] https://hub.docker.com/r/scmmanager/scm-manager
[3] https://www.scm-manager.org/download/
[4] https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests
[5] https://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows
今天先到這兒,希望對云原生,技術領導力, 企業管理,系統架構設計與評估,團隊管理, 專案管理, 產品管管,團隊建設 有參考作用 , 您可能感興趣的文章:
領匯入怎樣帶領好團隊
構建創業公司突擊小團隊
國際化環境下系統架構演化
微服務架構設計
視頻直播平臺的系統架構演化
微服務與Docker介紹
Docker與CI持續集成/CD
互聯網電商購物車架構演變案例
互聯網業務場景下訊息佇列架構
互聯網高效研發團隊管理演進之一
訊息系統架構設計演進
互聯網電商搜索架構演化之一
企業資訊化與軟體工程的迷思
企業專案化管理介紹
軟體專案成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與個人目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共享
高效能的團隊建設
專案管理溝通計劃
構建高效的研發與自動化運維
某大型電商云平臺實踐
互聯網資料庫架構設計思路
IT基礎架構規劃方案一(網路系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之采購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之性能實時度量系統演變
如有想了解更多軟體設計與架構, 系統IT,企業資訊化, 團隊管理 資訊,請關注我的微信訂閱號:
![MegadotnetMicroMsg_thumb1_thumb1_thu[2] MegadotnetMicroMsg_thumb1_thumb1_thu[2]](https://img.uj5u.com/2021/09/13/264083130712024.jpg)
作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文著作權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利,
該文章也同時發布在我的獨立博客中-Petter Liu Blog,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299586.html
標籤:其他
