當數據中心結點出現故障,應用程序需要盡可能快的重新啟動。
IT組織需要一套系統實現故障轉移,將一個結點轉移到另一個結點,使服務重新恢復。手動干預會減慢這一流程的速度——特別當結點在半夜或假期出現問題時。
最關鍵的應用程序通常都會以守護進程或服務方式實現——他們會在計算機啟動時自運行動。這種情況下,故障轉移應該啟動那些安裝了應用程序的虛擬機。虛擬化能夠讓運行虛擬機的任何應用程序使用這樣的故障轉移技術。
有時候應用程序不僅僅需要重啟操作系統。不是服務的應用程序,需要用戶登錄到虛擬機系統上,并獲取應用程序備份。這樣的問題通常都只會發生在Windows服務器上。設置自動登錄與啟動應用程序也是比較容易的,但某些特定的應用程序,還需要用戶在應用程序可以再次運行前點擊按鈕或打開菜單。
自動化應用程序故障轉移同樣可能在這種情況下使用。我使用AutoIT腳本來自動化故障轉移后的應用程序啟動。腳本是好東西,但這種類型的自動化是脆弱的:應用程序的每個版本升級都可能導致腳本失效。
最大的問題在于那些無法非正常關閉的應用程序。這類應用程序需要完整的關閉流程,非計劃的關機可能導致異常關閉,無法實現故障轉移。
一般情況下,這些應用程序需要進一步人工干預,例如列出并移除每個數據庫鎖。自動化這些應用程序修復的告警通知,會比自動化修復這些問題來的容易。