多機教學環境建構、發布與學生使用 SOP
本 SOP 是 SkyLab 多機教學環境的產品與開發基準,適用於系統管理員、教師、學生及開發與維運人員。各畫面的逐步操作請見使用手冊:機器範本、教學環境、快速練習與建立班級。
一、目的
本 SOP 統一規範以下完整流程:
- 教師或管理員準備單機母模板。
- 教師以一至三台 VM/LXC 組成可重複使用的多機教學環境。
- 教師發布環境,鎖定其機器配置。
- 學生把它當成快速練習環境使用,或使用正式班級指派的環境。
- 系統在背景完成整組複製、網路套用、啟動、到期停止與回收。
本 SOP 的核心原則是:
教師建構與發布環境;學生只啟動、進入及使用環境。學生不管理母模板,也不直接操作模板複製。
二、適用範圍與排除範圍
2.1 適用範圍
- 單機 VM/LXC 母模板的來源管理。
- 一至三台機器的多機環境建構。
- 機器角色、固定規格與連線拓撲。
- 草稿、發布及版本鎖定。
- 快速練習。
- 正式課程班級環境。
- 學生環境啟動、使用、到期及回收。
- 權限、安全、失敗處理、稽核與驗收。
2.2 排除範圍
- 課程教材編輯、作答、評分與學習進度。
- 一般研究型或個人自訂 VM 申請。
- 學生自行建立、轉換或複製單機母模板。(學生仍可用可見範圍為「全部可見」的範本「申請」一台機器,但不能管理範本,也不能直接呼叫 clone API。)
一般研究型機器走獨立的資源申請流程,不與本 SOP 的快速練習環境混用。
三、名詞與資料模型
| 使用者用語 | 系統模型 | 定義 | 學生是否可見 |
|---|---|---|---|
| 母模板/基礎映像 | VMTemplate,或未註冊為範本的 PVE VM/LXC 映像 | 已安裝作業系統與工具的單台來源機器,作為環境機器的來源 | 範本預設私人;可見範圍設為「全部可見」的才會出現在學生申請表單 |
| 教學環境 | CourseEnvironment | 由一至三台固定機器、機器間連線與對外服務組成的可重複使用環境 | 可見名稱、說明與機器角色 |
| 環境版本 | CourseEnvironmentVersion | 發布時鎖定的機器、規格與拓撲 | 可見版本號,不可修改 |
| 快速練習環境 | usage_scope = quick_practice 或 both 的已發布環境 | 任何登入者都能自行啟動的短期多機環境 | 可見且可啟動 |
| 課程環境 | usage_scope = course 或 both 的已發布環境 | 教師套用到正式班級的環境 | 僅班級成員可使用 |
| 練習 Session | QuickPracticeSession | 某位使用者啟動一次完整環境的生命週期 | 只看自己的 |
| 學生機器 | Resource(快速練習由 VMRequest 建出,班級由批次建機任務建出) | 系統依發布版本在 PVE 建立的實際 VM/LXC | 只看自己或班級授權資源 |
3.1 用語規則
- 教師端使用「機器範本」、「教學環境」與「發布並鎖定」。
- 學生端使用「快速練習」、「啟動」、「課程」、「我的資源」與「結束練習」。
- 學生端不得使用「克隆」、「完整複製」、「連結複製」、「PVE 範本 ID」等基礎設施用語。
- 「複製」只代表系統內部依環境版本建立機器,不是學生功能。
四、角色與權限
| 操作 | 管理員 | 教師 | 學生 |
|---|---|---|---|
| 建立及維護單機母模板 | 是 | 是;只能用自己的機器建立,也只能維護自己的範本 | 否 |
| 查看母模板技術資訊 | 全部範本 | 自己的與「全部可見」的 | 否 |
| 建立教學環境草稿 | 是 | 是 | 否 |
| 編輯草稿 | 全部環境 | 自己的 | 否 |
| 發布環境版本 | 是 | 自己的;發布即生效 | 否 |
| 發布後調整名稱、套用方式與說明 | 是 | 自己的 | 否 |
| 刪除從未被班級或 Session 使用的環境 | 是 | 自己的 | 否 |
| 啟動快速練習環境 | 可測試 | 可測試 | 是 |
| 使用正式班級環境 | 依管理權限 | 依教學權限 | 僅自己的班級環境 |
| 查看其他學生環境 | 是 | 僅授課班級 | 否 |
| 直接呼叫單機模板 clone API | 是 | 是,限自己看得到的已就緒範本 | 否(403) |
| 在申請表單以範本申請單機 | 是 | 是 | 是;限「全部可見」的範本並走一般審核;範本決定來源與型別,CPU 與記憶體由申請者選擇 |
前端隱藏功能不算權限控制。所有限制都由後端 API 再次驗證;未授權請求回傳 403,不存在或不可見資源依資訊揭露政策回傳 404。
五、標準端到端流程
教師/管理員準備單機母模板
↓
教師建立教學環境草稿
↓
加入機器、規格、角色與連線(草稿自動儲存)
↓
伺服器端驗證 → 發布並鎖定版本
↓
┌────┴────┐
↓ ↓
快速練習 正式班級套用
↓ ↓
使用者自行啟動 班級審核與建機
└────┬────┘
↓
學生以一個環境群組使用所有機器
↓
結束/到期/班級封存
↓
整組停止、刪除並釋放 IP、VMID 與容量六、SOP-A:準備單機母模板
頁面與欄位說明見機器範本。
6.1 執行角色
教師與管理員。教師只能用自己的機器當來源。
6.2 前置條件
- PVE 節點、儲存及網路正常。
- 作業系統、授權及教學軟體來源合法。
- 來源機器已完成安全更新及必要工具安裝。
- 已確認 VM/LXC 類型、預設使用者及啟動方式。
6.3 操作步驟
- 準備已安裝完成的來源 VM/LXC。
- 移除個人資料、固定 SSH host key、暫存檔及不應被複製的憑證。
- 確認網路、guest agent 或 LXC 啟動設定能正常產生新機器。要由平台設定登入密碼的 VM,須安裝 cloud-init(Windows 為 cloudbase-init),並在 PVE 加上 cloud-init 磁碟。
- 在「機器範本」頁以來源機器建立範本,填寫名稱、說明、可見範圍,並可選擇預設 CPU 與記憶體。類型、作業系統與磁碟沿用來源機器;來源機器會被關機並在 PVE 上設為保護,不會轉成 PVE 範本。
- 系統把範本標為「就緒」後,執行一次測試複製,確認可開機、取得 IP、登入及刪除。
6.4 完成條件
- 模板狀態為
ready。 - 測試機器可在允許時間內建立並開機。
- 不包含測試帳號密碼、API key、學生資料或其他敏感資訊。
- 仍有教學環境(含草稿與已退役版本)、尚未建機的申請、未完成的批次任務或複製出的機器在使用範本時,範本無法刪除。要讓它從申請表單消失,請改為「私人」。
6.5 開放學生自行申請(選用)
學生能不能自己申請一台已裝好的應用環境(例如 n8n、Jupyter),由範本的可見範圍決定:設為「全部可見」(global)即開放,「私人」則不會出現在任何學生清單。
- 只有
ready且可見範圍為「全部可見」的範本會出現在學生申請表單的「老師/官方提供的環境範本」分組(GET /templates/catalog)。 - 申請一律是單台。範本只決定來源與型別(VM/LXC),CPU 與記憶體由申請者自訂,個人配額照常把關;磁碟會自動提高到不小於範本本身的大小(克隆只能放大)。
- 申請仍走一般審核流程,不會自動核准,也一併計入個人配額。
- 「私人」的母模板不會出現在學生的任何清單:
GET /vm/templates對非教師只回傳未註冊的基礎映像。 - 建立當下由後端再次驗證範本存在、
ready且為「全部可見」;前端清單過濾不算權限控制。
七、SOP-B:教師建構多機教學環境
編輯器的逐步操作見教學環境。
7.1 入口
教師進入「教學 → 教學環境」,按「建立教學環境」。
7.2 填寫基本資料
- 環境名稱:使用學生能理解的名稱。草稿可以先留空,發布時必填。
- 環境用途:描述用途、先備知識及預期成果。
- 套用方式:
course(只用於正式課程):出現在班級設定。quick_practice(只用於快速練習):出現在快速練習頁。both:兩處都提供。
- 說明文件(選填):掛在環境本身、而不是某個版本上的講義。
提供為快速練習的環境,所有登入者都看得到,無法限定特定班級。編輯器沒有整個環境的同時上限;每位使用者「同時一組、24 小時內三次」的限制一律適用。(透過 API 設定 max_concurrent_sessions 時,後端仍會套用。)
7.3 加入機器
- 加入一至三台 VM/LXC。
- 每台機器選擇一個環境擁有者看得到的已就緒範本,或一個基礎映像。機器類型必須與範本相符。
- 設定機器名稱及角色,例如「Web」、「Database」、「Client」。
- 設定 CPU、RAM 與 Disk;磁碟不得小於來源。
- 確認整組資源合計符合平台容量及學生配額;兩者會在學生啟動或建立班級時檢查。
學生啟動時不得修改上述項目。
7.4 設定拓撲
機器之間只能透過教師畫出的連線互通;一條都沒畫就彼此隔離。對外上網預設開放。每條連線由教師設定:
- 來源機器與目標機器。
- 單向或雙向。
- 通訊協定與 Port。
機器上的服務也可以對外發布,方式是網址(教師填的前綴加上每位學生各自的 16 碼亂碼)或對外 Port,見教學環境。
後端會拒絕:
- 來源與目標為同一台機器。
- 指向不存在的機器。
- 已被其他連線涵蓋的連線(雙向連線包含反方向)。
- TCP、UDP、SCTP 沒有指定 Port,以及無效的協定或 Port。
- 超過六條連線或六個對外服務,以及同一台機器的同一個 Port 重複發布。
7.5 刪除
- 刪除(
DELETE /course-environments/{id})只允許從未被任何班級或練習 Session(含已結束的)使用過的環境。 - 已被使用的環境若不想再提供快速練習,把套用方式改為「只用於正式課程」;之後班級設定只對擁有者與管理員列出它。沒有下架或封存狀態。
- 母模板刪除前,系統會列出使用它的教學環境(含草稿與已退役版本),有引用時拒絕刪除。
7.6 草稿
- 草稿的每次變更都會自動儲存,可重複編輯。
- 草稿不對學生顯示,也不可套用到正式班級。
- 草稿無法測試部署。要完整試跑一個環境,請把它發布為快速練習並自行啟動;這會讓所有登入者立刻看到它。
7.7 建構完成檢核
- [ ] 名稱及說明完整。
- [ ] 套用方式正確。
- [ ] 每台機器都有來源、角色與固定規格。
- [ ] 機器數量為一至三台。
- [ ] 所有來源範本均為
ready。 - [ ] 拓撲沒有重複連線或無效 Port。
- [ ] 整組 CPU、RAM、Disk、IP 與機器數量在允許範圍。
- [ ] 不含密碼、token 或個人資料。
八、SOP-C:教師發布環境
8.1 發布前驗證
伺服器會重新執行驗證,不只信任前端:
- 使用者是環境擁有者或管理員。
- 最新版本仍為草稿。
- 名稱已填寫,且有一至三台機器。
- 每個來源範本都已就緒、環境擁有者看得到,且類型相符。
- 連線與對外服務通過 7.4 的檢查。
容量與配額要等學生啟動或建立班級時才檢查。高風險能力目前沒有管理員審核(見第十七節)。
8.2 已發布環境的提供位置
| 套用方式 | 出現位置 |
|---|---|
course | 班級設定的環境清單,限環境擁有者與管理員 |
quick_practice | 快速練習頁與學生首頁,所有登入者 |
both | 以上兩處 |
套用方式在發布前後都能隨時調整(PATCH /course-environments/{id}/basics),只影響之後的啟動與新班級;進行中的 Session 與既有班級照原本的期限走完。快速練習清單與啟動 API 都會重新檢查套用方式,對沒有提供的環境回傳 404。
8.3 發布動作
- 教師在「機器配置」按「發布」。
- 教師確認「發布並鎖定」。
- 系統執行 8.1 的驗證,記錄 configuration hash 與發布時間,並把版本由
draft改為published。 - 已發布版本永久不可修改。
8.4 調整已發布的環境
- 環境名稱、套用方式、環境用途與說明文件仍可調整。
- 機器、規格、連線與對外服務都已凍結。要修改只能另外建立一個環境,沒有「建立新版本」。
- 班級與 Session 維持建立當時的版本。
九、SOP-D:使用快速練習環境
畫面說明見快速練習。
9.1 學生可見內容
快速練習頁(/quick-create)與學生首頁的「快速練習環境」區塊,每個環境顯示:
- 環境名稱與說明。
- 每台機器的名稱、角色與類型。
- 整組 CPU 與記憶體合計,以及可使用的時數。
啟動確認頁另外列出每台機器的規格、計入配額的整組合計及版本號。
畫面不顯示來源母模板 ID、PVE 節點選擇、複製模式、儲存區名稱或母模板操作。
9.2 啟動步驟
- 使用者在快速練習頁或學生首頁選擇一個環境。
- 在「啟動快速練習」頁(
/quick-template/{id})查看固定的機器組合、使用時數與規則。 - 使用者按「啟動
<n>台機器」。送出的參數只有環境 ID。 - 系統鎖定該使用者的啟動流程,同時多次點擊也無法繞過限制。
- 系統重新驗證已發布版本與套用方式、對外服務的前置條件(Gateway、網域、對外 Port 池)、每人限制、環境上限(有設定時)、配額及叢集容量。
- 系統在同一筆交易中預留整組所有 IP,建立一筆 Session 及每台機器各一筆自動核准的申請,再送出建機。
- 所有機器建好後,系統套用防火牆拓撲與對外服務。
- 環境以一個群組出現在「我的資源」,Session 變成
ready後即可使用。
9.3 系統強制規則
- 學生不可修改機器數、類型、CPU、RAM、Disk、來源映像與期限。
- 同一位使用者同時最多一組快速練習環境。
- 同一位使用者滾動 24 小時內最多啟動三次。建立失敗並已回收的不計入;提早結束不會退還次數。
- 練習時間取自
practice_session_hours設定(預設 3 小時,範圍 1~24,在「資源排程」設定)。 - 快速練習的機器不能延長。
- 限制以 Session 計算;三台機器仍只算一次練習。
9.4 使用方式
- 「我的資源」以一列群組呈現,列上顯示到期時間;展開後顯示各台機器名稱、角色、狀態、IP 與主控台入口。
- 使用者可啟動、關機及開啟自己的機器。
- 群組選單提供「整組開機」、「整組關機」與「結束練習」。
- 逐台操作不會改變 Session 的固定期限與整組回收規則。
9.5 就緒標準
只有同時符合以下條件,Session 才會變成 ready:
- 每台機器都已建立並取得 VMID。
- 拓撲的防火牆規則已套用。
還沒完成的對外網址或 Port 會在背景每兩分鐘重試一次,不會擋住 ready。系統不執行連線測試或 guest 內的健康檢查(見第十七節)。
十、SOP-E:正式班級環境
10.1 教師設定班級
- 建立班級及固定的每週課表。
- 加入學生。
- 選擇用途為
course或both的已發布環境。 - 視需要設定每週任務。
- 系統計算「學生人數 × 每位學生的完整機器組合」,並檢查 CPU、RAM、Disk、IP、儲存與節點容量。
- 教師送出建機,同時預留上述容量。
- 管理員在「班級審核」核准。
10.2 系統建機
- 為每位學生建立獨立的環境群組。
- 每位學生取得相同發布版本的機器、規格與拓撲。
- 套用每位學生專屬的 IP 與隔離規則。
- 套用環境版本中的所有 topology edges。
- 全部成功後班級進入
active。 - 部分失敗時進入
partial_failed,不會顯示為已完成。失敗的機器可以重試;一台都沒建成的班級可退回編輯。
10.3 學生使用
- 學生只看到自己班級與自己名下的機器。
- 學生從「課程」或「我的資源」進入,不經過模板清單。
- 學生不可更換環境版本、增加機器或修改固定規格。
- 是否可在課堂時段外啟動、停止或延長,由班級及平台政策決定。
10.4 班級結束
- 到了班級的結束日期與時間,系統會自動封存班級;教師也可以提早選擇「封存並回收」。
- 封存會停止之後的排程、取消未完成的建機、釋放預留容量,並把班級的每台機器排入刪除。沒有保留期;要讓機器留久一點,請延長班級。
- 請提醒學生在結束日期前匯出成果。
- 刪除失敗的機器每 15 分鐘重試一次;全部資源都清掉後,班級會記錄完成時間。
十一、Session 狀態與失敗處理
11.1 狀態機
creating → ready → stopping → reclaiming → reclaimed
│ ↑ ↑
└→ partial_failed ────────────┘| 狀態 | 意義 | 使用者看到的狀態 |
|---|---|---|
creating | 已預留 IP,機器建立中,拓撲尚未套用 | 建立中 |
ready | 所有機器已建好且拓撲已套用 | 執行中 |
partial_failed | 有機器建立失敗,或拓撲暫時套用不上 | 需要處理 |
stopping | 已到期;機器已關機,正在等 30 分鐘的回收緩衝 | 準備回收 |
reclaiming | 正在刪除整組資源 | 回收中 |
reclaimed | 機器、IP 與申請都已釋放 | 從清單移除 |
有機器建立失敗時,下一輪排程就會回收整組。拓撲失敗會重試,成功後回到 ready;機器就緒 15 分鐘後仍套用不上,就整組回收。按「結束練習」會讓 Session 直接進入 reclaiming。
11.2 全有或全無原則
- Session、所有機器申請與所有 IP 預留在同一筆 DB 交易建立。
- 建機以每筆機器申請去重,重試不會建立重複 VM。
- 啟動前先檢查配額與叢集容量並預留全部 IP;任一項不足就不建立任何機器。
- 快速練習不會逐台修復:任一台失敗就整組回收。班級則可以重試失敗的機器。
- 拓撲無法在 15 分鐘內套用時,整組回收並釋放所有預留。
- 不得讓學生自行處理殘缺的多機環境。
11.3 使用者訊息
錯誤訊息必須告訴學生下一步,但不得暴露 PVE 憑證、內部位址、堆疊或敏感錯誤。例如:
- 容量不足:「目前可用容量不足,尚未建立任何機器,請稍後再試。」
- 建立失敗:「環境無法完成,系統已回收資源;本次不計入使用上限。」
十二、到期、結束與資源回收
12.1 快速練習
標準流程:
expires_at 到達
→ 機器關機
→ 30 分鐘回收緩衝(stopping)
→ 經刪除佇列刪除全部 VM/LXC
→ 釋放 IP 與機器申請
→ Session = reclaimed- 到期時間顯示在「我的資源」的群組列上。
- 按「結束練習」時會先提示未儲存的內容將遺失,確認後立即回收整組。
- 回收一律以整組為單位,群組不提供單台刪除。
- 回收經冪等的刪除佇列執行。某台機器無法排入刪除時,錯誤會記在 Session 上,下一輪排程再試。
12.2 正式班級
- 機器依課表運作:每次上課前開機、下課後關機。
- 下課不等於刪除;學生的成果在兩次上課之間都留在機器上。
- 只有班級封存時才整組回收(見 10.4)。
十三、發布及版本治理規則
- 發布版本不可覆寫。
- 班級與 Session 維持建立當時的版本。
- 調整套用方式只影響之後的啟動與新班級;進行中的 Session 照常用到到期。管理員可以提早結束任何 Session(
POST /quick-practice/sessions/{id}/end)。 - 環境沒有緊急停用開關。發生安全事件時,由管理員調整套用方式、結束進行中的 Session,並在系統外記錄原因、操作者與影響範圍。
- 刪除母模板前會列出所有引用的環境與版本,有任何引用就拒絕刪除。
- 曾被任何班級或練習 Session(含已結束的)使用過的環境不可刪除。
- 教師只能管理自己建立的環境;管理員可治理全部環境。
十四、安全、隱私與稽核
14.1 必要權限限制
- 學生無法進入
/templates,會被導向申請表單。 POST /api/v1/templates/{template_id}/clone需要範本管理權限(教師與管理員)。/course-template-management及其編輯路由有教師端 route guard;後端仍會驗證InstructorUser。- 學生只能取得自己的 Session、Request、Resource 與連線憑證。
- 教師只能查看授課班級學生環境,且所有查看與控制操作都需稽核。
14.2 稽核事件
至少記錄:
- 母模板建立、狀態變更與刪除。
- 環境草稿建立、更新、發布、套用方式變更與刪除。
- 發布者、發布時間、版本及 configuration hash。
- 學生 Session 啟動、就緒、失敗、結束、到期及回收。
- 管理員強制停止、修復與刪除。
- 教師或管理員開啟學生終端機/控制台的行為。
上述多數目前尚未記錄(見第十七節)。
十五、UI 與 API 對應
15.1 教師端
| 工作 | UI 路由 | API |
|---|---|---|
| 教學環境清單 | /course-template-management | GET /api/v1/course-environments |
| 建立環境(第一次自動儲存) | /course-template-management/new | POST /api/v1/course-environments/drafts |
| 自動儲存草稿 | /course-template-management/{id} | PUT /api/v1/course-environments/{id}/draft |
| 發布並鎖定 | 同上 | POST /api/v1/course-environments/{id}/publish |
| 調整名稱、套用方式與說明 | 同上 | PATCH /api/v1/course-environments/{id}/basics |
| 上傳或移除文件 | 同上 | POST /api/v1/course-environments/{id}/files、DELETE /api/v1/course-environments/{id}/files/{file_id} |
| 刪除未被使用的環境 | /course-template-management | DELETE /api/v1/course-environments/{id} |
| 取得班級可用的環境 | /class-setup | GET /api/v1/course-environments/published |
15.2 學生端
| 工作 | UI 路由 | API |
|---|---|---|
| 瀏覽快速練習環境 | /quick-create、/dashboard | GET /api/v1/quick-practice/templates |
| 查看環境內容 | /quick-template/{id} | GET /api/v1/quick-practice/templates/{id} |
| 啟動整組環境 | 同上 | POST /api/v1/quick-practice/templates/{id}/launch |
| 查看自己的 Session | /my-resources | GET /api/v1/quick-practice/sessions/my |
| 提早結束練習 | /my-resources | POST /api/v1/quick-practice/sessions/{id}/end |
十六、驗收標準
16.1 權限驗收
- [ ] 學生 Sidebar 不顯示「機器範本」與「教學環境」。
- [ ] 學生直接輸入上述管理路由會被導回。
- [ ] 學生呼叫單機 clone API 回傳
403。 - [ ] 學生無法看到其他學生的環境及 Session。
- [ ] 教師無法編輯其他教師的環境。
16.2 教師建構與發布驗收
- [ ] 可建立一至三台機器的環境草稿。
- [ ] 無效母模板、節點、拓撲及 Port 會被後端拒絕。
- [ ] 發布後機器配置不可修改。
- [ ] 發布後調整套用方式不影響既有班級與 Session。
- [ ]
usage_scope能正確隔離正式班級與快速練習清單。 - [ ] 發布時會要求確認版本將被鎖定。
16.3 快速練習驗收
- [ ] 學生只提交環境 ID 即可啟動整組環境。
- [ ] 篡改前端不能更改規格、數量、來源模板與期限。
- [ ] 多台機器只計一次 Session。
- [ ] 重複點擊不會建立重複 Session 或機器。
- [ ] 配額或容量不足時不建立任何機器。
- [ ] 所有機器及拓撲完成後才顯示 ready。
- [ ] 任一機器失敗時自動整組回收。
- [ ] 到期後整組刪除並釋放全部資源。
16.4 正式班級驗收
- [ ] 只能選擇用途為
course/both的已發布版本。 - [ ] 每位學生取得獨立且相同規格的完整機器組。
- [ ] 每位學生的 topology edges 實際套用成功。
- [ ] 學生只能操作自己的班級環境。
- [ ] 部分失敗班級進入
partial_failed,失敗機器重試成功後才能進入active。 - [ ] 班級封存(手動或到期自動)會回收每台機器,刪除失敗的會重試。
十七、現況差異
本節記錄程式與本 SOP 的差距,不降低前述規範要求。
| 差異 | 現況 |
|---|---|
| 沒有應用層健康檢查 | ready 代表所有機器已建立且防火牆拓撲已套用,不執行連線測試或 guest 內健康檢查。正式 PVE 上線前仍須以實機 E2E 確認每一種 VM/LXC 組合在套用規則後,都能通過環境要求的服務連線 |
| 沒有發布審核 | 教師發布立即生效。高風險能力應經管理員審核,至少包含 GPU、特權 LXC、公開連接埠、高資源規格及高權限啟動腳本 |
| 無法私下試跑 | 發布為快速練習後,所有登入者立刻看得到 |
| 已發布的機器配置凍結 | 沒有建立新版本;要改機器只能另建環境 |
| 編輯器沒有同時上限 | max_concurrent_sessions 只有透過 API 設定時才生效。環境或叢集額滿時沒有排隊或預估等待時間 |
| 稽核紀錄不完整 | 14.2 的事件中,目前只記錄每台快速練習機器的建立(quick_practice_machine_create)與一般機器操作(開機、關機、刪除等) |
| 沒有失敗告警 | 管理員可在「資源管理」看到所有快速練習群組,但建立、拓撲與回收失敗都不會發出告警 |
| 沒有緊急停用 | 見第十三節第 4 條 |
十八、上線核准表
每一份準備提供學生使用的環境,發布者應完成以下核准表:
| 檢查項目 | 結果 | 備註 |
|---|---|---|
| 母模板安全與授權檢查 | 通過/不通過 | |
| 一至三台機器均可正常建立 | 通過/不通過 | |
| 整組資源與並行容量可接受 | 通過/不通過 | |
| IP 與網路拓撲驗證 | 通過/不通過 | |
| 機器間必要連線測試 | 通過/不通過 | |
| 學生無法修改固定規格 | 通過/不通過 | |
| 套用方式正確 | 通過/不通過 | |
| 到期及整組回收測試 | 通過/不通過 | |
| 啟動失敗後的回收測試 | 通過/不通過 | |
| 發布者/審核者 | 姓名及時間 |
十九、文件維護
- 產品角色、發布規則、Session 生命週期或權限模型變更時,必須同步更新本 SOP。
- API 或 UI 名稱調整但流程不變時,更新第十五節對應表。
- 每次正式上線前依第十六節執行回歸驗收。
- 現況差異完成後,從第十七節移除,不得默認為永久例外。