成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何為數(shù)百萬用戶構(gòu)建可擴(kuò)展性系統(tǒng)

譯文 精選
開發(fā)
本文將討論業(yè)界如何利用故障轉(zhuǎn)移、自動擴(kuò)展、微服務(wù)和可觀察性,來構(gòu)建日常處理數(shù)百萬級用戶請求的系統(tǒng),并實(shí)現(xiàn)高可用性。

譯者 | 陳峻

審校 | 重樓

你可能知曉,在大型科技公司計(jì)劃為數(shù)百萬用戶提供服務(wù)時,系統(tǒng)的可擴(kuò)展性能力通常需要從一開始就成為設(shè)計(jì)的一部分,而不應(yīng)在后期被追加。否則,隨著用戶期望的不斷攀升和全球流量模式的變化,該系統(tǒng)將根本無法應(yīng)對。下面,我將向你介紹大型科技公司通常會如何看待大規(guī)模的可擴(kuò)展性,他們在現(xiàn)實(shí)世界中的有效策略(不僅僅是理論),以及可用性、成本、可觀察性是如何在系統(tǒng)設(shè)計(jì)中被結(jié)合到一起的。

可擴(kuò)展性為何重要?

一個龐大的系統(tǒng),不可避免地會面臨硬件失效、網(wǎng)絡(luò)問題、甚至是數(shù)據(jù)中心癱瘓等潛在威脅。對此,人們通常的做法是:

  • 將系統(tǒng)分解為單獨(dú)的部分,以便某個故障不會拖累其他部分
  • 不僅需要備份服務(wù)器,也應(yīng)備份數(shù)據(jù)庫、存儲庫、甚至是整個地理區(qū)域的系統(tǒng)
  • 持續(xù)執(zhí)行運(yùn)行狀況檢查,并設(shè)置自動故障轉(zhuǎn)移,以實(shí)現(xiàn)無需人工干預(yù)的恢復(fù)
  • 根據(jù)實(shí)時需求擴(kuò)展或縮減系統(tǒng)資源
  • 密切監(jiān)視系統(tǒng)行為,以便在其出現(xiàn)重大中斷之前,捕獲早期警告信號

當(dāng)然,上述做法并非一勞永逸之事。運(yùn)維團(tuán)隊(duì)需要持續(xù)根據(jù)真實(shí)情況和經(jīng)驗(yàn)教訓(xùn),不斷改進(jìn)系統(tǒng)的可擴(kuò)展性。

跨區(qū)域擴(kuò)展系統(tǒng)

多區(qū)域部署策略

提高可擴(kuò)展性的一項(xiàng)明智舉措是將系統(tǒng)分布在不同區(qū)域。AWS 和 GCP 等平臺就是這樣構(gòu)建的。由于它們在不同區(qū)域被設(shè)計(jì)為相互隔離,因此每個區(qū)域都可以獨(dú)立的方式運(yùn)行,即使有整個區(qū)域系統(tǒng)出現(xiàn)離線的狀況,其他區(qū)域的系統(tǒng)也能夠繼續(xù)運(yùn)行。而且,該區(qū)域的用戶也會被自動路由到運(yùn)行狀況良好的區(qū)域,進(jìn)而讓用戶甚至不會注意到本區(qū)域的系統(tǒng)出現(xiàn)了故障。

目前,科技公司通常采取兩種方法來實(shí)現(xiàn)數(shù)據(jù)的跨區(qū)域復(fù)制:

  • 異步復(fù)制:雖然效率更高,但是一旦災(zāi)難在關(guān)鍵時間點(diǎn)發(fā)生,用戶可能會丟失一些最新尚未完成同步的數(shù)據(jù)。
  • 同步復(fù)制:對于關(guān)鍵數(shù)據(jù)來說更安全,但是勢必會引入一些因前一項(xiàng)同步未完成,而造成的延遲。

大多數(shù)實(shí)際架構(gòu)最終都會將兩種方法混合在一起。也就是說,具體該如何設(shè)置,往往取決于系統(tǒng)的哪些部分可以承受哪一類的風(fēng)險。

前文提到了區(qū)域隔離。其實(shí),并非每個系統(tǒng)都需要多區(qū)域的設(shè)置。業(yè)界也有公司將多個可用部分部署在單個區(qū)域內(nèi),以處理大量數(shù)據(jù)。對于那些關(guān)鍵性的服務(wù)和任務(wù)、以及面對非常嚴(yán)格的合規(guī)性要求時(如“兩地三中心”),多區(qū)域設(shè)計(jì)仍然是非常必要的。

設(shè)置正確的故障轉(zhuǎn)移計(jì)劃

設(shè)置正確的故障轉(zhuǎn)移計(jì)劃

每個可擴(kuò)展的系統(tǒng)都需要有可靠的故障轉(zhuǎn)移策略作為支撐。通常,我們有兩種轉(zhuǎn)移模型可供選擇:

  • 主+主設(shè)置:是讓多個節(jié)點(diǎn)或區(qū)域同時處理實(shí)時流量。如果一個節(jié)點(diǎn)出現(xiàn)故障,另一個節(jié)點(diǎn)會立即接手。該模型幾乎為系統(tǒng)提供了零停機(jī)時間,不過需要團(tuán)隊(duì)非常小心地維持同步和平衡。
  • 主+被設(shè)置:讓一個活躍節(jié)點(diǎn)執(zhí)行所有工作,而另一個備用節(jié)點(diǎn)則處于空閑狀態(tài),等待故障。該模型更簡單、更便宜,但在切換期間可能會出現(xiàn)短暫的中斷。

無論你選擇哪種模型,定期的故障轉(zhuǎn)移測試都是必須的,畢竟模擬失敗和恢復(fù)演練是大型系統(tǒng)運(yùn)維團(tuán)隊(duì)必須具備的基本能力。

使用自動擴(kuò)展為流量峰值做準(zhǔn)備

如果你的系統(tǒng)無法隨流量的變化進(jìn)行自動調(diào)節(jié),那么請求峰值一旦出現(xiàn),系統(tǒng)就可能出現(xiàn)大量延時甚至中斷。這也就是需要引入自動擴(kuò)展(Auto Scaling)工具的必要所在。此類工具允許你的系統(tǒng)能夠根據(jù)實(shí)時使用情況的特征數(shù)據(jù)(如 CPU 負(fù)載、內(nèi)存使用情況或請求數(shù)量),自動添加或刪除資源。在此基礎(chǔ)上,預(yù)測性的自動擴(kuò)展工具可以根據(jù)歷史模式,預(yù)測需求高峰的到來,例如,在黑色星期五大促開始之前提前擴(kuò)容。

當(dāng)然,擴(kuò)展需要在整個技術(shù)棧中進(jìn)行,并涉及:Web 服務(wù)器、數(shù)據(jù)庫、緩存、消息隊(duì)列等任何可能造成瓶頸的薄弱環(huán)節(jié)。

值得注意的是:自動擴(kuò)展策略需要經(jīng)過測試與驗(yàn)證,以調(diào)整好智能閾值、冷卻期和開銷監(jiān)控。否則,你最終可能會既浪費(fèi)資源,又推高成本,還未實(shí)現(xiàn)預(yù)期的效果。

微服務(wù):通過分解來處理故障

微服務(wù)架構(gòu)的優(yōu)勢

目前,微服務(wù)已成為構(gòu)建具有可擴(kuò)展能力的大規(guī)模系統(tǒng)的首選架構(gòu)。其基本思想是將一個大的系統(tǒng)拆分成許多較小的、集中的服務(wù)。而且這些服務(wù)能夠通過 API 來相互通信。因此,該方法帶來了如下好處:

  • 如果有一項(xiàng)服務(wù)失效,其損害會得到控制,而不會導(dǎo)致整個系統(tǒng)的癱瘓。
  • 每一項(xiàng)服務(wù)都可以根據(jù)自己的需求進(jìn)行獨(dú)立擴(kuò)展。
  • 運(yùn)維團(tuán)隊(duì)可以只更新部分服務(wù),而不會影響到系統(tǒng)中不相關(guān)的部分。
  • 各項(xiàng)服務(wù)可以分別使用適合其自身需求的最佳技術(shù)。

當(dāng)然,微服務(wù)也帶來了一定的復(fù)雜性。運(yùn)維團(tuán)隊(duì)需要管理諸如:服務(wù)發(fā)現(xiàn)、分布式跟蹤、集中式日志記錄、以及更復(fù)雜的部署管道等方面。

雖然微服務(wù)并非免費(fèi),但是如果你的目標(biāo)是在大型系統(tǒng)中實(shí)現(xiàn)可擴(kuò)展性、以及快速迭代的話,此類技術(shù)仍然值得大規(guī)模采用。

可觀察性:獲悉系統(tǒng)是否正常運(yùn)行

在復(fù)雜的系統(tǒng)中,可觀察性往往可以從如下三個方面,讓你領(lǐng)先于問題的惡化,了解其根本原因:

  • 通過各項(xiàng)指標(biāo)的展示,為你提供有關(guān)錯誤率、延遲、吞吐量和資源使用情況等方面的數(shù)據(jù)。
  • 通過日志記錄整個系統(tǒng)中的事件,以便你可以在出現(xiàn)問題時進(jìn)行調(diào)查。
  • 通過分布式跟蹤允許你跨多個服務(wù)跟蹤單個請求,以查找和定位瓶頸或故障點(diǎn)。

為了達(dá)到上述三個方面的可觀察性,運(yùn)維團(tuán)隊(duì)通常需要使用諸如: AWS CloudWatch、X-Ray 等平臺,以及 Prometheus 和 Jaeger 等開源工具,給系統(tǒng)和應(yīng)用構(gòu)建控制面板、綜合檢測、主動運(yùn)行狀況監(jiān)控、以及警報(bào)服務(wù)。

真正關(guān)鍵的不在于工具,而是確保系統(tǒng)從一開始就本著易于觀察和故障排除的初衷予以搭建。可見,良好的可觀察性不但可以為運(yùn)營團(tuán)隊(duì)縮短事件的發(fā)現(xiàn)時間,易于找到根本原因,而且能夠協(xié)助團(tuán)隊(duì)在故障真正影響到用戶之前,被及時修復(fù)。

管理三平衡:成本、速度和可擴(kuò)展性

成本、速度和可擴(kuò)展性

在實(shí)踐中,構(gòu)建可擴(kuò)展的系統(tǒng)往往需要從如下三個方面做出權(quán)衡與取舍:

  • 強(qiáng)一致性雖然可以為你提供更安全的數(shù)據(jù)保障,但是可能會降低系統(tǒng)的運(yùn)行效率。
  • 高可用性架構(gòu)的基礎(chǔ)設(shè)施往往成本更高,但是能夠?yàn)槟惚苊飧蟮耐C(jī)損失。
  • 復(fù)雜的設(shè)計(jì)雖然可以為你提供強(qiáng)大的可擴(kuò)展性,但是可能會讓后期維護(hù)遇到困難。

對于不同規(guī)模和重要程度的系統(tǒng)而言,有時候,大型科研公司必須投入大量的資金,以避免哪怕一分鐘的停機(jī)時間。不過,再有錢的公司也無法做到360度無死角的高可用性,因此他們需要根據(jù)系統(tǒng)中的數(shù)據(jù)價值,通過模擬故障,對停機(jī)可能對業(yè)務(wù)造成的影響進(jìn)行建模,并運(yùn)行混沌測試的方式,發(fā)現(xiàn)真正的弱點(diǎn),以最終做出深思熟慮的取舍。

小結(jié)

綜上所述,對于大型科技公司而言,在全球范圍內(nèi)構(gòu)建可靠的系統(tǒng)是一項(xiàng)艱巨的工作。它往往需要仔細(xì)的規(guī)劃、深思熟慮的權(quán)衡、時刻保持警惕,以及致力于從每一次故障中吸取教訓(xùn)。因此,系統(tǒng)構(gòu)建者應(yīng)該將可擴(kuò)展性視為一個持續(xù)改進(jìn)系統(tǒng)容錯能力、提供出色的用戶體驗(yàn)的過程,而不是一次性的項(xiàng)目。下面四點(diǎn)建議希望能給構(gòu)建者們起到提醒作用:

  • 可擴(kuò)展性應(yīng)在架構(gòu)設(shè)計(jì)期間考慮,而不是在后期被追加。
  • 每次事件發(fā)生后,各個團(tuán)隊(duì)?wèi)?yīng)開展無指責(zé)的復(fù)盤,并專注于改進(jìn)與提升。
  • 系統(tǒng)變更需謹(jǐn)慎,通常可以參照金絲雀(Canary)等部署策略一起推出。
  • 混沌工程可以被用于主動測試系統(tǒng)在大量請求壓力下的行為狀況。

就可擴(kuò)展性本身而言,我們并沒有放之四海而皆準(zhǔn)的答案。其構(gòu)建程度完全取決于你的用戶、你的業(yè)務(wù)、以及那些你絕對無法承受的中斷類型。

譯者介紹

陳峻(Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項(xiàng)目實(shí)施經(jīng)驗(yàn),善于對內(nèi)外部資源與風(fēng)險實(shí)施管控,專注傳播網(wǎng)絡(luò)與信息安全知識與經(jīng)驗(yàn)。

原文標(biāo)題:How Large Tech Companies Architect Resilient Systems for Millions of Users,作者:Ravi Teja Thutari

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2023-12-06 07:22:36

2013-10-03 16:55:31

2013-10-04 11:39:46

2014-12-12 09:43:13

阿里巴巴安全漏洞信息泄露

2021-09-02 09:42:11

測試軟件可擴(kuò)展性開發(fā)

2022-02-10 19:14:21

網(wǎng)絡(luò)攻擊服務(wù)癱瘓數(shù)據(jù)服務(wù)

2023-06-30 13:58:28

互聯(lián)網(wǎng)數(shù)據(jù)

2022-02-10 19:26:26

網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2022-09-05 15:17:34

區(qū)塊鏈比特幣可擴(kuò)展性

2021-07-22 06:27:31

打印機(jī)漏洞網(wǎng)絡(luò)攻擊

2024-10-10 14:01:34

2021-12-03 14:41:00

云存儲可擴(kuò)展性存儲

2021-05-17 07:28:23

Spring可擴(kuò)展性項(xiàng)目

2009-03-25 09:07:25

微軟Windows 7操作系統(tǒng)

2022-08-12 16:14:49

網(wǎng)絡(luò)安全數(shù)據(jù)泄露泄露

2020-04-17 09:20:19

數(shù)據(jù)泄露漏洞信息安全

2024-06-17 16:46:41

2022-02-10 19:29:49

惡意廣告Zicheng網(wǎng)絡(luò)攻擊

2023-12-29 16:00:22

2022-09-04 15:47:39

機(jī)器學(xué)習(xí)臨床試驗(yàn)自動化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲精品在线免费 | 日本高清aⅴ毛片免费 | 久久精品亚洲一区二区三区浴池 | 亚洲精品一区二区三区四区高清 | 国产精品久久国产精品久久 | 国产精品一区二区三区99 | 一级aaaaaa毛片免费同男同女 | 久久精品一 | 亚洲精品免费视频 | 亚洲成人av在线 | 国产成人99久久亚洲综合精品 | 日韩午夜场 | 欧美激情99| 欧美一级黄色片在线观看 | 天天综合日日夜夜 | 国产日韩一区二区 | 日韩毛片 | 欧美成年人视频在线观看 | 九九九视频在线观看 | 久草热在线 | 97视频成人 | 7777在线视频免费播放 | 91精品国产91久久久久久最新 | 国产www成人 | 一区二区三区视频在线免费观看 | 精品亚洲永久免费精品 | 国产日韩欧美中文字幕 | 羞羞免费网站 | 一色一黄视频 | 超碰在线人人 | 午夜黄色 | 亚洲欧美一区二区三区视频 | 啪啪精品 | 求个av网址 | 天天拍天天操 | 亚洲一区综合 | 国产精品综合色区在线观看 | 午夜久久久 | 亚洲欧美精品在线 | 国产在线一区二 | 人人干视频在线 |