2010-06-28 71 views
3

我在一家從事雲計算的公司進行面試時詢問以下問題,並沒有很好回答。如何分析這個問題的任何建議將不勝感激。一個系統設計問題

我們公司擁有數以億計的用戶,我們期望在生產中減少停機時間,解釋有助於改進前端,中間層和後端服務(包括數據庫)的冗餘和故障轉移功能的技術和編程實踐服務。

+3

我投票不結束,這裏可能有一些有趣的答案。 – BobbyShaftoe 2010-06-28 20:12:43

+0

這是一個有效的面試問題。我們爲什麼要關門? – 2010-06-28 20:39:30

回答

0

這是一個相當廣泛的問題。如果他們期望零宕機時間,告訴他們忘掉它或者把他們的所有利潤轉化爲建立冗餘。現在,如果他們只想要「五個九,或99.999%的正常運行時間」,那麼我們可以談。 :)

通常你可以用通常的關於構建可持續的自動化構建環境的罐頭話來回答這些問題,包括大量的單元測試。使用像MVC或類似的設計模式可以提高可測性。定期進行安全審計。這不僅僅是一個發展問題,這是一個關於網絡和服務器體系結構,維護二級和三級數據中心等問題。這些問題的確給你一個讓面試官感到重要的機會。

2

這個問題是非常沿"Impossible Question" from Joel.線這個問題沒有正確的答案。

我將開始打破下來到所有可能的故障點的列表:

  • 數據庫服務器
  • 數據庫
  • 中間層
  • 中間層服務器
  • 應用
  • 網站服務器

然後,對於其中的每一個人,我會找出破損的原因,以及如何從中恢復而不會造成停機。那些我不知道答案的人,我會承認這一點。

例如,我們來構建數據庫服務器出現故障的原因列表。由於我們正在尋找100%的正常運行時間,我們忽略了什麼 - 無論多麼牽強

  • 硬件變壞
  • 功率下降
  • 網卡變壞
  • 操作系統意外崩潰
  • OS升級剎車系統
  • 阿呆系統管理員或DBA
  • 阿呆門衛

一些可能的解決方案(在Windows上考慮SQL Server後端)上的門

  • 鎖定
  • 數據庫鏡像(定期進行故障轉移測試)
  • 多個NICS
  • 聚類(與普通的故障切換測試)
  • 獲取更好的人

可以基本保持在回答這個問題,直到面試官在毛巾拋出,因爲實在是沒有一右鍵這個問題的答案。