什麼是應用程式可用性?

應用程式可用性是指應用程式啟動並執行的時間。

學習目標

閱讀本文後,您將能夠:

  • 描述應用程式可用性,並將其與可靠性進行比較
  • 瞭解正常運作時間、停機時間和可用性等級
  • 說明高可用性架構的元件

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是應用程式可用性?

應用程式可用性衡量應用程式運作的時間量。當應用程式按預期工作並滿足使用者請求時,則稱為可用;如果應用程式無法運作或終端使用者無法存取,則稱為該應用程式不可用。

對於 Web 應用程式而言,最大化可用性是開發的重要部分。透過結合後端基礎架構最佳化、前端最佳化和攻擊緩解,可以提高應用程式的可用性。

使用者對 Web 應用程式可用性抱有很高的期望。停機時間會對營收和聲譽產生重大影響。想想商店的「營業」時間:如果商店在意想不到的時間關門,顧客就會去其他地方。同樣,無法從軟體應用程式取得所需服務的使用者將停止使用該應用程序,從而導致客戶減少和收入損失。

對於企業對企業 (B2B) 應用程序,可用性通常包含在服務等級協定 (SLA) 中,以應用程式預計啟動和執行的時間百分比表示。在這種情況下,應用程式開發人員有合約義務為其客戶提供一定的可用性等級。

應用程式可靠性與可用性

「可用性」概念適用於各種系統和服務,包括伺服器、應用程式、API 等等。它以百分比來衡量:每小時停機 36 秒的應用程式可用性為 99%。

可靠性是指系統或應用程式在一段時間內按預期提供服務且無錯誤的能力。如果應用程式執行緩慢或產生意外、不正確的結果,那麼它雖然可用,但卻是不可靠的。回到前面關於商店的類比,「不可用」是指商店關門了;「不可靠」則是商店雖然開門營業,但貨架上的商品可能擺放在了錯誤的位置。

計算應用程式可用性等級

應用程式可用性的衡量通常是按照一個日曆年內的時間來計算的。下表顯示了具有不同可用性等級的應用程式在 365 天內的停機時間。(停機時間是累積的,可能在幾個不同的時段發生,也可能同時發生。)

可用性 每年總停機時間
95% 18 天 6 小時
在 100 毫秒以內聯繫 99% 的 3 天 15 小時 36 分鐘
99.9% 8 小時 45 分 36 秒
99.99% 52 分 34 秒
99.999% (「五個 9」) 5 分 15 秒

什麼是正常運作時間?什麼是停機時間?

正常運作時間是指應用程式按預期執行的時間。停機時間是指裝置或服務無法運作的時間。在許多情況下,正常運作時間和可用性是同義詞。

影響 Web 應用程式可用性的因素有哪些?

網際網路非常複雜,許多不同的因素都會影響 Web 應用程式的可用性和效能。有些因素是應用程式開發人員可以控制的,有些則不是。但開發人員可以採取幾個步驟,預先評估潛在風險並緩解影響可用性的因素。

  • 攻擊:分散式阻斷服務 (DDoS) 攻擊或機器人攻擊可能會透過佔用所有可用頻寬和運算能力使應用程式不堪重負,或使應用程式完全崩潰,導致其他使用者無法使用其服務。從內部入侵應用程式的攻擊(例如勒索軟體攻擊SQL 資料隱碼攻擊)也可能導致應用程式停止運作。
  • 基礎架構故障:主機伺服器速度減慢或崩潰可能會導致應用程式變得不可用。伺服器可能因各種原因而效能下降,例如硬體故障、軟體錯誤、請求突然激增等等。如果請求繼續傳送到效能緩慢或無法運作的伺服器,則請求可能會得不到應答。
  • 高流量或使用率:如果太多使用者同時使用某個應用程式,該應用程式可能會不堪重負。例如,電子商務平台在產品發佈、銷售或購物季會出現使用量尖峰。機器人流量可能會加劇這個問題。
  • 錯誤:應用程式軟體中的錯誤可能會導致崩潰,從而使應用程式無法使用。
  • 用戶端問題:前端的低效程式碼可能會導致使用者的裝置或瀏覽器崩潰,或導致相容性問題。

什麼是高可用性?

高可用性是透過備份和避免單一失敗點實現的頂級一致可用性。在高可用性架構中,不會因為一台伺服器、一個網關或一項服務發生故障而導致不可用。高可用性架構也必須防止網路攻擊。

高可用性應用程式架構有哪些元件?

負載平衡

負載平衡在伺服器群組之間均衡分配運算負載和網路流量。這可確保沒有一台伺服器或一個伺服器群組因流量超出其有效處理能力而不堪重負。

有多種負載平衡演算法:有些負載平衡器無論如何都會均衡分配工作負載,而另一些負載平衡器則使用動態演算法來回應即時網路狀況和伺服器狀態。

健康情況檢查

Web 伺服器不可避免地會不時出現故障。健康情況檢查是一種監視來源伺服器是否在線的服務。進行健康情況檢查,可讓負載平衡器回應伺服器狀態,以便不將請求導向到已離線的伺服器。

備援和備份

高可用性應用程式在其架構中建置了備援。如果發生勒索軟體攻擊或資料庫因其他原因而無法使用,此類應用程式可以還原為應用程式資料的備份副本。備援服務和伺服器集區確保伺服器或 API 的崩潰不會影響應用程式的功能。

快取

即使底層基礎架構崩潰,內容傳遞網路 (CDN) 也可以為 Web 應用程式的靜態元素提供服務。Web 應用程式的快取版本可能不具備全部功能,但從技術上講,其在恢復完整服務之前都可以使用。(瞭解有關 Cloudflare Always Online 服務的更多資訊。)

可靠的 DNS

網域名稱系統 (DNS) 允許使用者透過網路存取應用程式伺服器。如果 DNS 發生故障或無法找到正確的 IP 位址,使用者將無法載入該應用程式。使用覆蓋全球且能夠阻止以 DNS 為中心的 DDoS 攻擊的可靠 DNS 提供者,可以確保 DNS 不會影響可用性。

應用程式可用性監控

使用外部應用程式可用性監控工具可以幫助服務提供者追蹤可用性,助力其在應用程式出現故障時盡快做出回應。

什麼是持續可用性?

持續可用性是一種運算基礎架構設計方法,可確保應用程式或系統持續運作。持續可用性的目標是 100% 可用性,但這實際上幾乎無法實現。網際網路設計為足以抵禦核戰,但網際網路服務有時仍會出現故障。儘管如此,持續可用性仍是一個值得追逐的目標,有助於為使用者提供最好的服務。

Web 應用程式需要什麼等級的可用性?

應用程式的可用性越高,為其提供支援所需耗費的資源就越大。換句話說,99.999% 的可用性可能非常昂貴。開發人員必須決定他們或他們的客戶能夠容忍多長的停機時間,並據此進行建置。

幸運的是,Cloudflare 讓應用程式開發人員更有可能實現高可用性架構。Cloudflare 在其服務中原生內建了負載平衡、快取、Stream Delivery、DDoS 攻擊緩解和機器人管理。Cloudflare 甚至提供了一個開發人員平台,允許開發人員構建新功能或全新的應用程式,並在覆蓋全球 330 座城市的全球網路中執行。

瞭解 Cloudflare 如何保持應用程式可用