你不能不瞭解硬件

作者:卡邁爾·威克拉瑪納亞克(KamalWickramamayake)

對於許多軟件架構師,硬件容量規劃問題是一個超出其舒適區的主題,但它的確是架構師工作的重要組成部分。軟件架構師常常無法正確考慮硬件因素,有多種原因,但大多和缺乏對硬件的瞭解及需求不清楚脫不了干係。

之所以忽視對硬件的考慮,其首要原因是,架構師把全部精力都花在軟件上,所以往往就忽略了硬件上的要求了。除此之外,由於使用高級語言和軟件框架,軟件架構師和硬件就離得更遠了。

需求不清晰也是一個因素,因爲需求可能會發生變化,也可能沒有被充分透徹地理解。隨着架構的演進,對硬件的考慮因素也將隨之改變。此外,客戶可能也不瞭解或無法預測用戶羣規模的使用動態。而且,硬件本身也在不斷髮展,以前掌握的硬件知識並不適用於今天。

如果沒有硬件方面的專業知識。預估待開發系統的硬件配置是非常容易出錯的。爲了彌補這方面的不足,有些軟件架構師會使用較大的安全係數。這種安全係數一般不是基於客觀評估,也無法從什麼方法學中找到理論依據。在大多數情況下,這將造成基礎設施的容量規劃過度,即使在請求高峯期都無法充分利用基礎設施的能力。最終,客戶的鈔票被浪費在超出系統實際所需的硬件上了。

對缺乏硬件規劃能力最好的防禦措施,是和基礎設施架構師(infrastructure architect)緊密合作。不同於軟件架構師,基礎設施架構師是硬件容量規劃方面的專家,而且他們也應該是團隊的一部分。然而,並不是每一個軟件架構師都可以奢侈地配備一名基礎設施架構師和他一起工作。這種情況下要進行硬件規劃時,軟件架構師可以採取一些措施來減少錯誤的發生。

可以藉助自己過去的經驗。你己經實現過一些系統,所以肯定己經擁有一些硬件容量規劃的知識,哪怕當時是事後才考慮的也沒有關係。還可以和客戶就這個主題進行討論,說服他們爲硬件容量規劃預留資金。比起採購超出實際所需的硬件,爲容量規劃留出預算是更爲經濟的。此種情況下,水平伸縮能力(horizontal scalability)是關鍵,你可以在需要時才添加硬件,而無需一開始就過量採購。爲使水平伸縮策略起效,軟件架構師需要不斷評測系統容量,隔離軟件組件,使它們在性能可預知的(performance-predictable)環境下運行。

硬件容量規劃是和軟件架構同等重要的事情,不管身邊是否有基礎設施架構師,都在將之安排在第一優先級。架構師既要負責連接業務需求和軟件解決方案,也要負責連接硬件和軟件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章