初次見面。我是在 PRUM 股份有限公司擔任工程師的 Hitomi。
我會將日常在程式學習與實務中容易卡關的重點與思考方式整理後分享出來。

如果你對 PRUM 感興趣,也歡迎看看我們的企業網站。
企業網站

「因為是雲端所以沒問題」很危險 —— 新人工程師常犯的「可靠性誤解」

image.png

前言

剛入行時,你有沒有想過這些事?

  • 因為是雲端,所以自動就做了備援
  • 基礎架構有人會幫忙處理得很好
  • 先能跑再說,應該就沒問題

但這其實是相當危險的想法。

在真實的現場中,因為沒有做設計而導致系統當機,是很常見的事。


「為什麼只有正式環境會掛掉?」的真相

image.png

這是很常見的情況。

  • 在本機可以正常運作
  • 測試也沒問題
  • 但正式環境卻當掉

這時,多數新人會這樣想:

是不是程式碼有問題?

當然,程式碼有時確實是原因之一。
但不只如此。

其中一個原因是,沒有理解執行環境的前提條件(例如硬體或資源限制)


常見錯誤①:沒有意識到記憶體

例如這種情況:

  • 本機 → 記憶體充足
  • 正式環境 → 記憶體不足

光是這樣,就可能讓系統當掉。

應用程式基本上是在記憶體中執行的,
因此一旦記憶體不足,處理就可能停止,或程序直接結束。

也就是說,資料放在哪裡,會大幅影響效能與穩定性。


常見錯誤②:沒有把儲存裝置視為可能損壞的東西

以資料庫儲存為例。

大家很容易會想:「只要有存起來就安心了」,但這其實很危險。

現實中會發生這些事:

  • 硬碟會故障
  • 什麼時候會壞,無法預測

在雲端環境中,託管服務通常會提供備援機制,
但更重要的是要理解哪些是服務本身的保證,哪些是你在設計上必須負責的部分

基於這個前提,必須事先決定發生故障時要怎麼運作。


常見錯誤③:只把 CPU 當成「速度」來看

CPU 常被認為是「時脈越高=越快」,但其實不只如此。

  • 核心數:可同時處理的數量
  • GPU:專門針對特定運算的計算資源

例如,當同時存取變多時,核心數的影響就會變大。

也就是說,要做什麼樣的處理,會決定最適合的架構。


正確認識雲端的本質

雲端看起來像魔法,但實際上並不是。

它是把硬體抽象化,並透過虛擬化與分散式架構,讓使用與管理更容易的機制。

透過虛擬化,可以把一台伺服器當成多個環境來使用。

另外,透過分散到多台伺服器與多個資料中心,也能提升可用性與耐障礙性。

不過,CPU、記憶體、網路等物理限制一定都存在。

可靠性不是靠「拼氣勢」,而是靠「設計」

系統一定會壞。

因此,重要的不是讓它永遠不壞,
而是要設計它在壞掉時會如何運作

結語

硬體與基礎架構相關的話題,或許會讓人覺得很不起眼。

但只要理解這些內容,

  • 為什麼會當掉
  • 為什麼會變慢
  • 為什麼要這樣設計

就都能看得更清楚。

而最重要的是,

要打造的不是「能跑」的系統,而是「能讓人安心運作」的系統。

這就是工程師之間差距會出現的地方。


PRUM 的工程師有 95% 以上是從無經驗者開始錄用的。
如果有興趣,也歡迎來我們的企業網站逛逛。
企業網站

我們也有經營整理給工程師參考的實用文章網站。如果你有興趣,也歡迎看看。
對工程師有幫助的文章網站


原文出處:https://qiita.com/prum_hitomi/items/864876245891c0cbb127


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝11   💬10   ❤️1
245
🥈
我愛JS
💬2  
8
🥉
Gigi
2
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登