iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0

所以企業該如何把這些東西納管。

在想禁了外部的路之前,總要有合法的路讓人走,不然員工只會想盡辦法翻牆爬窗

翻牆爬窗

要管的是什麼?
有地方上架、有人審、資料有分級、有版本、有 owner 在清冊上、異常找得到人、有紀錄可查。
就是把這些人做的東西從企業視線外搬到視線內,而且過程是簡單又容易,照著SOP就知道怎麼搬家的。

那市面上來看就我所知以及諮詢AI後最像的東西,就是程式碼託管平台。
這些人可能本來就是把東西放在 GitHub 上,那企業自己架設一套或租一套 GitHub 不就好了?

市面上有哪些

先把常見的列一列:

GitHub Enterprise:好心人本來就在用的 GitHub,企業版。有 Cloud 版(租用、資料在 GitHub 那邊)和 Server 版(自己架在內網)。功能最完整,Actions、Pages、Secret 掃描、Dependabot、Code Scanning 全都有,生態系最大。按人頭收費。

GitLab:分企業版(EE,按人頭收費)和社群版(CE,免費自架)。CI/CD 內建、Pages 有、掃描功能企業版比較齊。很多台灣企業內網用的是這個。

Bitbucket:Atlassian 家的,跟 Jira 整合最順。企業如果已經在用 Jira、Confluence,通常會順便用它。也是按人頭。

Azure DevOps:微軟家的,跟 AD、M365 整合方便。Repos、Pipelines、Boards 一套。企業如果是微軟生態,導入阻力小。

Gitea / Forgejo:輕量、免費、開源、自架。一台小 VM 就跑得動,接 LDAP,有 Actions(相容 GitHub Actions 語法),也有 Pages 的外掛。功能沒前面那些多,但夠用、好養。

Gogs:Gitea 的前身,更輕,但更新慢,現在多半直接選 Gitea。

託管只是把程式碼收進來,「上架」還要有 CI/CD 把東西部署出去。上面這些平台都有內建:GitHub Actions、GitLab CI、Azure Pipelines、Gitea Actions,push 之後自動跑 pipeline,跑完丟到 Pages 或某台 web server。也有獨立的 CI/CD 工具可以搭:

Jenkins:最老牌、最多外掛、最多人會,但也最難養,設定和安全問題一堆。

Drone / Woodpecker:輕量的容器式 CI,設定用 YAML,跟 Gitea 搭配很常見。

Netlify / Vercel / Cloudflare Pages:雲端的靜態網站部署服務,接上 repo 就自動上線,體驗最好。但它們是 SaaS,連不出去就沒戲,資料和網址也在外面。

Nginx / Apache:最後其實就是一台 web server 放靜態檔。CI 把檔案丟過去,Nginx 負責給人看。最簡單,也最不會出事。

比較圖

它們確實給得了很多

不管選哪一套,核心功能都對得上納管的規格:

  • 版本控制:改了什麼、誰改的、什麼時候改的,一清二楚
  • 審核:PR / Merge Request,有人看過才能進
  • 掃描:Secret 掃描、相依套件掃描、程式碼掃描,都有現成的或能接
  • 部署:CI/CD 自動跑,push 之後自動上線,不用人工搬檔案
  • 靜態託管:Pages 功能或丟到 web server,上去就有網址
  • 帳號與權限:能接 AD / LDAP,誰能看誰能改
  • 稽核紀錄:每個動作都有 log

但還有四個地方卡關

一、錢和限制

雲端版按人頭算,企業幾千上萬人,就算只算會做工具的,也是要一筆很可觀的數字;
而且很多企業環境的某些環境中連不了外網,雲端版對它們並不適用。

雖然這兩點自架版應該可以解:GitLab CE、Gitea 免費、純內網。

二、適用對象不同

很多工具比較適合工程師,這也是最根本的問題。

repo、branch、commit、PR、CI pipeline,這些對工程師是日常,對好心人是外星語。他手上就是一個 AI 產的 HTML 檔,他要的是「放上去、給同事一個網址」。你給他一個 Gitea 登入畫面,他要先建 repo、clone、add、commit、push,或者至少要在網頁上找到「上傳檔案」在哪裡,然後搞懂為什麼上傳完沒有網址。

CI/CD 更不用講。pipeline 是 YAML 寫的,好心人不會寫,也不該要求他寫。就算資訊部門幫他寫好範本,他改一個字壞掉,也不知道去哪裡看 log。

他會關掉,回去用 github.io,因為那個他會。

而非工程師或許才是這次我們想要納管的對象。工具再好,他不會用,等於沒有。

三、審核流程對不上

託管平台的審核是 PR review:工程師看程式碼、留 comment、approve。這是同儕審查,不是企業簽核。

我們要的審核是:這個工具碰什麼資料?資料分級是什麼?單位主管知道嗎?資安審過了嗎?高風險的要不要資訊部門核准?這些託管平台裡沒有對應的欄位、沒有對應的角色、沒有對應的流程。要嘛硬用 PR 的 label 和 comment 去湊,要嘛另外開一套簽核系統再人工對回來。

四、沒有「上架」這個概念

Pages 功能是「push 上去就有網址」,中間沒有閘門。誰都可以開 Pages、開了就有網址、有網址就能傳。這跟 github.io 有什麼差別?只是搬進內網而已,治理面的問題還是一個都沒解,只是讓使用者任意上架的地方變成內部環境。

全企業有哪些工具、哪個單位的、誰負責、還在不在維護,託管平台中並不方便確認。
它主要還是給開發者放程式碼的,不是給使用者找工具的。

缺了點甚麼

小結

程式碼託管平台功能很多:版本、分支、PR、CI、掃描、紀錄。
但我們首先的目標要管的是純靜態的 HTML 工具,
但這些功能主要是為了完整的軟體專案設計的。分支、合併、pipeline 這些對一般人來說太複雜。

我們可能需要的是非工程師看得懂的東西、整個流程又得上企業的要求:
審核流程、上架前的審查、上架後的目錄。
然後才是存檔、版本、權限、紀錄,對靜態檔案來說其實很簡單。

所以架一套託管平台再想辦法在上面補東西其實也花非常多時間,
那不如乾脆考慮自己蓋一棟房子,針對企業的需求來做需要的。

開始想一件事:
一般人不是工程師,都能用 Vibe Coding 做出能用的工具了;
我雖然不是程式專業人員,但我知道要管什麼、知道資安要看什麼,
那我用 Vibe Coding 做出一套管理系統,可行嗎?

思考的是他們用 AI 煮菜,我用 AI 蓋一個有人管的市集
想擺攤先登記、東西要過檢查、掛了牌才能賣,客人來一個地方就找得到所有攤位。
有了市集,路邊攤才有地方搬進來;路邊攤有地方搬,企業說「外面不准擺」才說得過去。

納管

那怎樣開發這整套系統才會是安全的 ???


上一篇
Day 10 | 所以企業該怎麼辦??
下一篇
Day 12|動手前的準備工作:先理解 SSDLC 是什麼
系列文
只要有心,人人都是食神—做得出來,就能端給別人吃嗎?20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言