小公司的軟件開發IT工具箱

目錄

工具鏈困境

難題的解決

達到的效果

資源要求低

工具箱一覽

1、代碼管理工具

2、自動化發版(測試)工具

3、依賴庫(制品包)管理

4、鏡像管理

5、授權管理(可選)

待討論:為什么不是jenkins

相關鏈接


工具鏈困境

小公司開發人員少,一般只有幾個。為此專門招聘IT人員搭建龐大的IT框架有點不劃算。

但是靠開發人員本地維護代碼和版本又不方便,既增加了開發人員的工作量,又增加了管理難度。

難題的解決

搭建一套簡單的軟件IT設施,不需要IT人員維護,同時又能提高我們的開發效率。

這樣就一站式解決代碼管理,自動化發版,自動化測試,依賴庫(制品包)管理,鏡像管理,授權管理等問題。

達到的效果

  • 組織規范:代碼、發版二進制文件統一管理。

  • 流水線作業,自動化程度高:研發通過打tag或者提交mr的方式觸發流水線自動編譯、打包、測試和上傳等動作。不用擔心拉錯分支,編錯版本。

  • 學習成本低,易上手:只需基礎的git,docker使用經驗,熟悉wget和curl等基礎的文件上傳和下載。

資源要求低

一臺Linux服務器

工具箱一覽

1、代碼管理工具

gitlab服務器社區版

建議部署到docker中,既不影響物理機環境,后續一旦有遷移需求,也很方便

2、自動化發版(測試)工具

gitlabrunner

安裝方式簡單,下載deb包安裝即可,因此可以部署到物理機。 也支持部署到docker中。

經過簡單的配置后,就可以在gitlab上配置CI,通過gitlabrunner做流水線CICD發版和測試。

3、依賴庫(制品包)管理

最簡單的方式是搭建一個http文件服務器(nginx或者其他)

最好是安裝artifactory專業的制品庫管理工具,他具有嚴格的權限管理且有web頁面

4、鏡像管理

  • dockerfile和構建腳本: 用git管理

  • docker鏡像: 用artifactory或harbor存儲和管理

5、授權管理(可選)

openLDAP可以配置到git,artifactory以及harbor上面實現類似域帳號的統一認證功能

安裝openLDAP后可以接入統一認證系統,實現一個用戶名密碼登錄git,artifactory等所有系統

如果覺得配置起來麻煩,可以通過各平臺手動添加用戶或者手動注冊的方式進行,例如直接通過gitlab頁面注冊

待討論:為什么不是jenkins

jenkins也是一個CICD工具鏈,有很多使用場景。

但對小型團隊的收益有限,還增添了額外的學習成本。

相關鏈接

CICD:為gitlab搭建gitlab-runner服務支持docker流水線pipeline

這寫是我在小公司的真實實踐,希望能幫助到同樣在小公司的你。

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

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

相關文章

LeetCode17電話號碼的字母組合

題目描述 給定一個僅包含數字 2-9 的字符串,返回所有它能表示的字母組合。答案可以按 任意順序 返回。 給出數字到字母的映射如下(與電話按鍵相同)。注意 1 不對應任何字母。 解析 廣度優先遍歷或者深度優先遍歷兩種方式,廣度優先…

springboot動態切換數據源

1、創建一個springboot項目&#xff0c;導入依賴&#xff08;3.3.0&#xff09; <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.6.1</version></depe…

滲透測試靶機----FirstLeads_1.3

滲透測試靶機----FirstLeads_1.3 啟動靶機&#xff0c;掃描ip&#xff0c;平平無奇 可以看出&#xff0c;這里是存在139這個主機的&#xff0c;這就是掃描出來的靶機ip繼續探測端口及其他信息 發現這里只開啟了80 端口 嘗試一些基本目錄&#xff0c;發現存在robot.txt文件目錄…

集成算法:Bagging模型、AdaBoost模型和Stacking模型

概述 目的&#xff1a;讓機器學習效果更好&#xff0c;單個不行&#xff0c;集成多個 集成算法 Bagging&#xff1a;訓練多個分類器取平均 f ( x ) 1 / M ∑ m 1 M f m ( x ) f(x)1/M\sum^M_{m1}{f_m(x)} f(x)1/M∑m1M?fm?(x) Boosting&#xff1a;從弱學習器開始加強&am…

插入排序以及希爾排序; 先學會插入,希爾會更簡單喔

1.前言 首先肯定是要學會插入排序再學習希爾排序會更簡單&#xff0c;因為代碼部分有很多相似之處&#xff1b;如果你覺得你很強&#xff0c;可以直接看希爾排序的講解。哈哈哈&#xff01;&#xff0c;每天進步一點點&#xff0c;和昨天的自己比 2.插入排序 讓我們先來看看…

鴻蒙Ability Kit(程序框架服務)【UIAbility組件與UI的數據同步】

UIAbility組件與UI的數據同步 基于當前的應用模型&#xff0c;可以通過以下幾種方式來實現UIAbility組件與UI之間的數據同步。 [使用EventHub進行數據通信]&#xff1a;在基類Context中提供了EventHub對象&#xff0c;可以通過發布訂閱方式來實現事件的傳遞。在事件傳遞前&am…

Rustdesk 自建服務器教程

一、環境 阿里云輕量服務器、debian11 系統 二、服務端搭建 2.1、開放防火墻指定端口 TCP(21115, 21116, 21117, 21118, 21119)UDP(21116) 2.2、安裝 rustdesk 服務器文件 在 github 下載頁https://github.com/rustdesk/rustdesk-server/releases/&#xff0c;下載 rustde…

【自撰寫,國際象棋入門】第1課、棋盤和棋子

第1課 棋盤和棋子 一、國際象棋的棋盤 國際象棋的棋盤為一8乘8的黑、白格相間的棋盤&#xff0c;8條豎線的編號分別為A-H&#xff0c;8條橫線的編號分別為1-8&#xff0c;在記譜時用豎線編號橫線編號的方式表示棋盤上的格子&#xff0c;例如a1格、h8格等.棋盤上有幾條重要的大…

c++程序員為什么要做自己的底層庫

五一期間&#xff0c;在家里翻到之前上學時候用的電腦和工作日志&#xff0c;粗略瀏覽一番&#xff0c;感慨10年歲月蹉跎&#xff0c;仍然沒有找到自己技術方向的“道”。遂有感而發&#xff0c;寫下此文。 算起來&#xff0c;接觸軟件開發也有10年時間了&#xff0c;最開始是…

Java——異常

1.什么是異常 將程序執行過程中發生的不正常行為稱為異常。 常見的異常有&#xff1a;算數異常&#xff0c;空指針異常&#xff0c;數組越界異常 每一種異常都有對應的類對齊描述 為了對每一種異常進行管理&#xff0c;Java內部實現了一個對異常的體系結構 1. Throwable&#x…

CS2游戲30萬掛箱賬號被封,飾品市場要變天

Steam游戲平臺上CS2的玩家在線人數常年位于第一位&#xff0c;即便偶爾會被爆款游戲擠下來&#xff0c;但一切都是暫時的。飾品交易作為CS2的重要組成部分&#xff0c;早已成為了維系游戲熱度的不二法門。可相對應的&#xff0c;各種掛箱子的工作室及個人也孕育而生。 但近來V社…

mysql多啟動

binary安裝&#xff1a; 1、redhat rpm 2、mysql rpm 3、mysql glibc source安裝&#xff1a; 1、5.1mysql(./configure && make && make install) 2、5.5mysql(cmake && make && make install) 單啟動&#xff1a; 1、安裝 tar xf xxx.tar…

【Docker學習】docker pull詳細說明

docker pull是我們經常用到的一個命令。我們使用一些官方鏡像&#xff0c;如MySql、Nginx等都需要用docker pull下載。不過不用的話&#xff0c;也可以。比如使用docker run&#xff0c;要是找不到鏡像&#xff0c;會自動下載。 命令&#xff1a; docker image pull 描述&am…

Uniapp寫一個簡單的商品瀑布流界面+商品詳情

最終效果&#xff1a; 整體內容比較簡單&#xff0c;參考了一篇瀑布流文章和一篇商品詳情文章隨便修改整了下&#xff0c;主要是給想做這方便面的新人一個簡單邏輯的展示&#xff08;其實我也是第一次寫這個emmm&#xff09; 一.組件下載&#xff1a; uni-icon uni-goods-nav…

什么是ACP?

前言 ACP指的是應用程序控制平面&#xff0c;是微服務架構中的一個關鍵組成部分。它負責管理微服務架構中的各個微服務&#xff0c;包括服務發現和注冊、負載均衡、服務路由、熔斷和降級、配置管理等方面的功能。 A&#xff1a;可用性 所有請求都有響應。C&#xff1a;強一致…

[DDR5 Jedec 3-4] 模式寄存器 Mode Register MRR/MRW

依公知及經驗整理,原創保護,禁止轉載。 專欄 《深入理解DDR》 1. 概念 模式寄存器用于定義各種操作模式。在初始化過程中,可以通過重新執行MRS命令來更改模式寄存器的內容。即使用戶只想修改模式寄存器變量的一個子集,在發出MRS命令時也必須編程所有變量。 只有當所有ban…

C語言案例-輸入任意三個數,按從大到小的順序輸出.

目錄 問題待續、更新中 問題 輸入任意三個數,按從大到小的順序輸出. 最大值 3數&#xff0c;重新排序輸出 輸出數據if來&#xff0c;ab ac bc比&#xff0c;比中里面交換值&#xff0c;輸出abc時為降序 代碼如下: #include <stdio.h> void main() {int a,b,c,t;printf(&…

現實殘酷!存款百萬只是少數人的游戲,普通家庭能存多少?

近期&#xff0c;網絡上掀起了一股關于普通家庭終身存款上限的熱烈討論。一位網友通過簡單的算術方式提出了一個假設&#xff1a;如果一對夫妻每年收入15萬&#xff0c;并成功將6萬存入銀行&#xff0c;那么從25歲步入社會至60歲退休&#xff0c;他們理論上能積累到210萬的存款…

從0開發一個Chrome插件:Manifest 文件詳解

前言 這是《從0開發一個Chrome插件》系列的第六篇文章,本系列教你如何從0去開發一個Chrome插件,每篇文章都會好好打磨,寫清楚我在開發過程遇到的問題,還有開發經驗和技巧。 專欄: 從0開發一個Chrome插件:什么是Chrome插件?從0開發一個Chrome插件:開發Chrome插件的必要…

C++知識點總結(36):二分進階練習

二分答案練習 一、憤怒的羊駝題目描述輸入描述輸出描述樣例1提示參考答案 二、偷吃西瓜題目描述輸入描述輸出描述樣例1提示參考答案 三、丟沙包題目描述輸入描述輸出描述樣例1提示參考答案 四、木材加工題目描述輸入描述輸出描述樣例1提示參考答案 五、路標設置題目描述輸入描述…