Azure

TCP Socket 伺服器的 Azure 解決方案

  • June 25, 2018

我們有一個 TCP 套接字伺服器,它從各種 IoT 設備中檢索數據,對其進行處理並將其輸出到一個 Azure 數據庫。現在它託管在 Azure Linux VM 上。但是,將其放在功能應用程序或容器服務中會更具成本效益嗎?

轉移到容器的選項和創建無伺服器功能架構的選項都應該比 vm 更具成本效益。

功能

我想說的是,在絕大多數情況下,功能架構會便宜得多。但對於您的具體情況,這取決於您的 IoT 消息的頻率。

使用功能,您無需為全天候執行伺服器支付固定價格。您的程式碼只會在每次呼叫函式時執行,並且您只需為每次函式執行時使用的資源付費。這可以在應用程序處於不活動狀態的情況下顯著節省,因為在不使用期間不收取任何費用。

但是在物聯網的情況下,如果您不間斷地接收消息,您可能不會發現成本效益那麼顯著(但這仍然取決於數量)。

話雖如此,除了成本之外,還有其他利弊需要考慮:

  • 優點
    • 可擴展性- 借助功能,您將能夠自動、無縫地擴展您的應用程序計算組件,而無需擔心虛擬機或容器實例或管理
    • 彈性——有了函式,您不必擔心虛擬機或容器失敗,您不需要編排解決方案,您的程式碼執行的雲將在其後端處理所有這些。您所看到的只是作為服務的可靠功能。
  • 缺點
    • 開發- 切換到功能架構並不像從 VM 轉移到容器那麼簡單,您不能只是轉移現有解決方案,需要投入一些開發時間來創建您需要的適當功能。

容器

容器是從執行虛擬機向前邁出的一步。它們通過在 docker 引擎和主機作業系統上執行容器來提高效率,而不是像 VM 那樣為每個實例創建一個新的客戶作業系統。連結到容器/VM 差異的視覺化

容器會更便宜,但是當您處理大量虛擬機的過渡時,成本節約確實會發揮作用。對於單個 VM,我不知道它會產生巨大的成本差異。

話雖如此,在這種情況下,成本之外的有用好處是啟動時間。容器,由於不像虛擬機那樣啟動新的客戶作業系統,啟動速度要快得多,這在擴展或恢復場景中特別有用。

TL;博士

函式有可能更便宜,但這可以通過非常高頻的呼叫來減少。它們仍然提供成本之外的好處,但需要付出不小的努力才能轉向。

容器會更便宜(尤其是對於高 VM 數量),但如果成本是您唯一的驅動因素,並且您只執行 1 個 VM,那麼降價可能不足以讓您花時間。

引用自:https://serverfault.com/questions/918028