AD 伺服器消失時,會發生很多有趣的事情。
首先介紹登場人物。
使用 VMware 產品的 DaaS(虛擬桌面服務)環境。
雖然有許多細節構成,但即使在典型的 DaaS 架構中,也會發生類似的情況,請粗略地想成以下的結構。

管理伺服器為 Windows Server,因此每個月需要進行 Windows 更新。
因為需要重新啟動,所以在白天進行作業的風險很高。因此,我們在 維護時間內(深夜) 進行作業。
這次的維護對象是 AD1 和 AD2。每次進行作業的步驟如下所示。
在 步驟 6 中發生了錯誤。
借用 VMware 工程師博客的圖片來解釋情況,畫面結構如下(※圖示)。

原本應該要做的是:
但實際上做的是:
舊版 vCenter 當虛擬機器關閉時會出現「從清單中刪除」的選項,但因為太困了,只看到了「Delete」這個字。
時刻是 凌晨3點。 前一天我 玩了 18 小時的怪物獵人。
A先生:「我點擊 Delete。」
我:「好的。」(← 極度困倦,眼睛快要閉起來,幾乎在睡著)
A先生:「我覺得好像不太對,這樣正確嗎?」
我:「一個項目減少了,所以我認為這是正確的。」(← 睡眠不足)
在這裡,原本應該要檢查 藍框的快照清單,而我卻看著 紅框的虛擬機器清單,判斷「項目減少了所以是正確的」。
之後進入了步驟 8 的後續步驟,當進入步驟 12 要刪除 AD1 的快照時,再次感到違和。
A先生:「我刪除了快照,但紅框的項目沒有減少呢。」← 步驟上是正確的
我:「是的。」
A先生:「啊,對不起,我錯誤地在藍框那裡作業。對不起,我刪除它。」← 錯誤的
我:「好的。」
結果,AD1 也成功從清單中刪除了。
在接下來的步驟 13 中試圖啟動 AD1 時。
A先生:「按照步驟啟動,但 AD1 不見了。」
我:「什麼?」(← 這時才真正清醒過來)
眼前出現的是:
全身冒出奇怪的冷汗。 「啊,這完全是作業錯誤。」 我的腦袋理解到這一點花了幾秒鐘。
「嗯?等一下,為什麼在 AD1 的時候才第一次發現?」冷靜下來想一想, 如果在 AD2 時有進行正常性確認(步驟 7),應該在那時就能發現。
是的,A先生 跳過了步驟 7。
作業者常見的「跳讀」。
而我也沒有意識到這一點。
好吧,如果 AD 伺服器只有一台不在,那麼簡單的還是可以恢復。
但這次是 兩台都不在。
兩台都不在的情況下,能否順利恢復?這本來就可以恢復嗎?我心裡想著,
「啊,因為只是從清單中刪除,所以資料依然在儲存空間裡!」
「從那裡恢復應該可以的吧!!」
維護結束的時刻剩下 1小時。
「還有時間進行恢復」我告訴自己,默默開始恢復作業。
本來在這裡就應該向上司升級報告,但
這種情緒壓倒了我,我開始成為作業者,從 ESXi 的資料儲存空間進行恢復作業。
最終結果是:
維護結束 10分鐘前 完成了恢復。
「剛好趕上!原來能做到!」心中湧現出一種奇妙的成就感。
A先生也露出了笑容,我也笑了。
……
最後一步驟 14:解除監控系統的抑制模式。
5分鐘後,約有8000封警報郵件 飛了過來。
這些警報郵件,當然也會發送到 上司那裡。
這時我終於想到了,「剛才的恢復,真的正確嗎?」這個問題。
在這個環境中,因為 AD 伺服器雙方都已經回滾到快照時點,
導致其他伺服器(vCS, CS, ES 等)之間的 電腦帳號不一致。

也就是說,
致命的是,這些管理伺服器是 建立時已假設「參加域的狀態」。
無法進行名稱解析 = 什麼都無法做
結果造成:

重新構建管理伺服器群就意味著,該伺服器群所控制的 vPC 也必須全數重新設置。

如果問這個架構是否充分考慮了運作面,那麼老實說就是微妙……
不過,先不談架構的反思,讓我們專注於「為什麼會發生這種情況」。
D事業部長對 C部長和 B科長進行了約三小時的會議。
之後,我被 B科長狠狠地斥責。A先生也哭了。
接下來,開始進行為什麼分析。
「要找出真正的原因,至少要重複五次「為什麼」」這句話很常被說到,但由於這次的影響太大,D事業部長下達了
「找出更深入的真正原因並對策」
的命令,因此進行了 七次為什麼 的分析。
針對 A先生的分析。
入職一年,心理上受到很大壓力,變得全然將一切歸咎於自己的能力問題的狀態。
在此暫時停止針對 A先生的追究,轉向我自己的為什麼分析。
「深邃的真因」慢慢浮現了。
我們也實施了減少人為錯誤的對策。
在向 B科長報告這些之後,也與 C部長 / D事業部長進行了評審。
(最終,我們將 UiPath + PowerShell 自動化了這次的定期維護作業,針對所有管理伺服器群進行了自動化。)
D事業部長也對 B科長和 C部長進行了為什麼分析,結果發現:
也就是說,整個組織都處於「他們應該是沒問題的吧」的現場狀態(某種意義上,這是一個很好的工作環境)。
在事業部內建立了 「原則上不信任任何人的行為方針」。
在網路安全的世界裡,有這樣的想法:
「永遠不可信任,必須不斷驗證。」
這是基於 Zero Trust 安全模型的理念。
我們設計了人類版的這個模型,以後會多次提到,因此使用 HZT(Human Zero Trust model)來表示。
HZT 的根本思想非常簡單。
「所有作業都必須記錄下來。」
為此,我們構建了以下體系。
在這樣的情況下,如果發生作業錯誤,部長將承擔所有責任,並進行客戶對策,作業者 / 確認者 / 部門成員一名 / 科長全員都會受到評價處分。
但如果在檢查時發現作業錯誤並報告給部長,則可避免處罰的規則。因此,設計為 「發現問題的人會成為贏家」。
讀到這裡,或許你會覺得,「這簡直是完全黑暗嗎?」。
但是,由於 HZT 的推廣需要 物理上分離人與人,因此附帶增加了這條規則。
作業時 必須採用遠端工作(原則上居家)
這段故事發生在 疫情前。
當時遠端工作並不是主流,但因為 HZT 的緣故,參與維護作業的成員開始以居家工作為主。
結果是:
這些優點相當明顯,反而積極參與維護作業的人數增加。
(對工程師來說「可以遠端工作的價值」是何等重要,立即理解了這一點的時刻)。
從 HZT 實施後的六個月結果。
在「不過度依賴信任,而是依靠記錄與驗證來保證品質」的意義上,我覺得 HZT 作為 通用的對策也並不差。
在此稍微回顧一下2025年的視角。
首先,通過此次事件,明白了:
同時,也感受到:
這些 人與人之間的溫度感,似乎逐漸被削減。
之後,我辭職了。
然而,數據導向的世界,對 AI 來說是友好的。
負面的方面容易理解,所以接下來稍微從正面來思考。
在2025年當前,社會上被稱為 「AI代理元年」。
所有企業都在呼號「數據與 AI」,
這些已經成為前提。想想 HZT 的做法,
這樣的業務改革對 AI 而言無疑是 最佳的土壤,因為 「這裡有數據」。
或許當時的現場現在正在被 AI 高效化。
所以最後加上一點詩意。
原文出處:https://qiita.com/katohiro_fi/items/fd4277347f5b0aa767a2