Skip to content

antony@notes:~/misc$ cat "資訊人員的挑戰-悲愁.md"

資訊人員的挑戰 (悲愁)

2025-04-26· misc

資訊人員的挑戰 (悲愁)

挑戰 1 : 應用系統安裝與設定 (人爲疏乎, 強勢主觀, …..)

應用系統在安裝或設定的文件內容不完整,即使文件步驟撰寫相當完整流暢,真正執行的人可能會因為各種原因,也不一定會按照文件寫的內容或要求的順序去執行。

如何解決?

基礎設施

使用 Infrastructure as code 去做安裝與設定,可降低 Human Error 和節省時間,再搭配 AI 做程式的註解

應用系統

使用 Application Container 技術,因為這項技術裡面有一個叫做 Dockerfile,裡面會記錄你的應用程式是如何封裝好的,另外也可以拿來做交接,並且也可以搭配 AI 作註解

挑戰 2 : 弄髒 作業系統 (殘留測試用帳號與設定, 不需存在的 Library, …)

在建置作業系統時,廠商或企業內部工程師時常會在作業系統中產生不必要的測試帳號或安裝不需存在的套件或 Library,這很容易會有資安疑慮。

如何解決?

使用 Application Container 技術,這項技術有自己的檔案系統,當你的 Application Container 被移除時,在其他新增的測試帳號或臨時安裝的 Packages 或 Library 也會跟著在作業系統上被移除。

挑戰 3 : 交接之痛 (人跑了, 沒有交接資訊, 交接資訊不易閱讀, …)

在企業內部的員工離職並沒有留下交接資訊人就跑了,或是交接的文件不完整,不易閱讀,即使私下聯絡道前員工,人家對你的訊息也不讀不回。

如何解決?

採用 Kubernetes 技術,在 K8s 中以 Pod 的方式去執行的 Application,可以做到反向工程,可以把應用程式的設定檔 (YAML File) 匯出來,也可以將電腦規格及相關設定資訊匯出來。

挑戰 4 : 歷史除錯記錄遺失

企業在每次系統發生問題時,並未將問題發生的原因、狀況和如何解決的資訊紀錄下來。

如何解決?

搭配 AI 來做,一定要把 “產生” 這個動作去執行,期望可透過 AI 來有效的去維運,讓 AI 來回答與判斷系統發生了什麼情況,並提出解決辦法


2013 年 Docker 改寫 IT 歷史

叫做 Application Container,他到處去幫客戶裝應用系統,裝到實在受不了,每位客戶的環境都不一樣,於是這家公司創造了 Application Container 技術,主要的目的是在不影響客戶既有環境的情況下,將應用系統快速部署到客戶端。

Containerization

Containerization 的最高戰略目標 : 是要能讓企業的任何應用程式 (app) 輕鬆地在任意一台電腦上執行,並且不會影響或污染該台電腦的既有環境,也就是 “Running Any App Anywhere”

image

那麼,要如何實現這個目標呢?

Application Container - 軟體貨櫃

答案是透過 Application Container 的技術。Application Container 可以被看作是一種電腦,許多人可能對它感到陌生,這是因為真正理解其運作原理的人並不多。既然稱之為一台「電腦」,它就必須具備一般電腦所需的主機名稱、網路環境、檔案系統以及硬體資源管理等能力。

  • 主機名稱所使用的技術是 Linux Namespace
  • 檔案系統所使用的技術則是 chroot 結合 overlay2
  • 網路環境所使用的技術則是 Virtual Bridge
  • 硬體資源限制與管理 (CPU, Memory, Network) 所使用的技術則是 CGroup

Application Container 與傳統電腦最大的差異,在於它會共用 Host 主機作業系統的 Kernel,以共享電腦內 CPU、記憶體與網路等硬體資源,因此能有效地執行應用程式並實現隔離。

那麼,什麼是 OCI 呢?

OCI (Open Container Initiative) 組織針對 Application Container 制定了三個重要標準,主要目標即是實現「任何應用程式都能在任何地方執行」(Running any app anywhere)。

要做出 Application Container 的技術很難,但它帶來的好處很多,因此 OCI 組織便透過制定這三個標準,讓更多使用者能更快速、更簡單地實現與使用 Application Container。

  • OCI-image 定義了一種標準化的格式,用來儲存應用程式及其相關的依賴檔案。這種標準格式主要由一個設定檔 (config) 和多個目錄區組成。設定檔 (config) 中包含了 Container 執行時所需的設定,例如預設執行的命令、環境變數等等;目錄區則包含應用程式與所需的所有相依檔案。
  • OCI-distribution 制定了應用程式可在任意環境間自由移動的標準流程。具體作法是將應用程式及其相依檔案依照 OCI-image 標準打包成 image,再依據 OCI-distribution 標準規定的流程,將這個 image 上傳到 image registry。其他使用者便能透過相同的標準流程,將該 image 從 image registry 下載到本地電腦中使用。
  • OCI-runtime 負責實際利用 Linux Namespace、Virtual Bridge、overlay2、chroot、CGroup 等技術來做出 Application Container。因此,根據 OCI-runtime 標準,目前已有許多程式,如 runc、crun、runsc 等,透過這些程式使用者便能輕鬆地建立與執行 Application Container。