# ipdata 如何以每月 150 美元的價格為來自 10 個無限擴展的全球端點的 2500 萬個 API 調用提供服務
> 原文: [http://highscalability.com/blog/2018/4/2/how-ipdata-serves-25m-api-calls-from-10-infinitely-scalable.html](http://highscalability.com/blog/2018/4/2/how-ipdata-serves-25m-api-calls-from-10-infinitely-scalable.html)

*這是 IP 地理位置 API [ipdata](https://ipdata.co/) 的創建者 [Jonathan Kosgei](https://twitter.com/jonathan_trev) 的來賓帖子。*
我在去年的黑色星期五醒來,收到了來自用戶的大量電子郵件,報告來自 [ipdata](https://ipdata.co/) API 的 503 錯誤。
我們的用戶通常會在其網站上的每個頁面請求上調用我們的 API,以對用戶進行地理位置定位和本地化其內容。 因此,這一特殊故障在一年中最大的銷售日直接影響了我們用戶的網站。
那天我只失去了一個用戶,但差點失去了更多。
事件的順序及其無法解釋的性質-cpu,mem 和 i / o 遠沒有達到容量。 考慮到停機,我們擔心擴展規模(如果有的話),這是一個重新考慮現有基礎架構的重大呼吁。
## 當時的技術堆棧

* Japronto Python 框架
* 雷迪斯
* AWS EC2 節點
* AWS 彈性負載平衡器
* 基于 Route53 延遲的路由
我已經在幾個新的,有希望的 Python 微框架上進行了測試。
在使用 [https://github.com/samuelcolvin/aiohttp-vs-sanic-vs-japronto 對基準 3 進行基準測試后,我在[aiohttp],[sanic]和[japronto]之間進行選擇,選擇了](https://github.com/samuelcolvin/aiohttp-vs-sanic-vs-japronto) [Japronto](https://medium.freecodecamp.org/million-requests-per-second-with-python-95c137af319) 。 并發現它具有最高的吞吐量。
該 API 在 ELB 負載平衡器后面 3 個區域中的 3 個 EC2 節點上運行,并具有基于 Route53 延遲的路由,可將請求路由到距離用戶最近的區域,以確保低延遲。
## 選擇一個新的技術堆棧

An Example Weather API using our current stack
大約在這個時候,我開始認真研究將 API 網關與 AWS Lambda 結合使用的原因:
1. 優惠的價格:API 網關每百萬美元約 3.50 美元,AWS Lambda 每百萬美元約 0.20 美元。
2. 無限規模和高吞吐量-API API 網關的帳戶限制為每秒 10、000 個請求或每天約 864M 調用。 通過打開支持請求可以解除的限制。
這也使在眾多 AWS 區域中擁有端點在經濟上可行,從而為全球所有用戶提供低延遲。
## 設計多區域 API 網關 API
為了使之可行,已經解決了許多架構難題。
1. 每個區域中的每個 lambda 函數都需要能夠在同一區域中的數據庫中查找使用情況數據,以最大程度地減少延遲
2. 我需要找出一種方法來確定每個 IP 地址,引薦來源網址和 API 密鑰進行的 API 調用次數。
3. 一種同步所有區域中的使用情況數據的方法。 例如,如果 Route53 向我們的悉尼端點發送了 10000 個請求,然后決定向其首爾端點發送下一個 50000 個請求(具體取決于那個時間點的網絡延遲最小)。 每個 lambda 函數都需要知道用戶總共發出了 60 000 個請求才能正確處理速率限制。
4. 授權-API 網關提供使用計劃和 API 密鑰生成,并允許您將 API 密鑰鏈接到使用計劃。 此外,您無需為用戶超出配額的請求付費,而無需支付額外費用。 但是,我無法使用此功能,因為對我來說,提供不注冊,不使用信用卡的免費套餐非常重要。
通過大量的工作,我能夠以創造性的方式解決這些問題。
## 在本地訪問使用情況數據(針對每個 lambda 函數)
顯而易見的解決方案是使用 Dynamodb,它在規模和速度上都具有成本效益! 每月前 200M 個請求免費。
Dynamodb 還提供 1-2 ms 的始終較低的讀取延遲。

可以使用 [Dynamodb Accelarator](https://aws.amazon.com/dynamodb/dax/) (DAX)將其加速到微秒范圍。
> DAX 通過每秒數百萬個請求處理大量讀取工作負載的響應時間(以微秒為單位),將性能提升到一個新的水平。
## 收集所有標識符的使用情況數據
下一個挑戰是如何實時計算每個 IP 地址,引薦來源網址或 API 密鑰發出的請求數。
最簡單,最直接的方法是在每次調用時更新動態表中的計數。
但是,這會在每次調用我們的 API 時引入數據庫寫操作,從而可能導致顯著的延遲。
我能夠找到一個簡單而優雅的解決方案:
1. 首先,在每個請求上打印包含所有請求標識符的日志(JSON 對象)。 這是 IP 地址,引薦來源網址和 API 密鑰(如果存在)。 真是 print(事件)
2. 將 [Cloudwatch 訂閱過濾器](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Subscriptions.html)添加到每個區域中每個 Lambda 函數的 Cloudwatch 日志流中,并將所有日志推送到 Kinesis 流中。 這將使我能夠處理中心位置中每個區域的日志事件。 由于可以回放事件,因此我選擇了 Kinesis 而不是 SQS(亞馬遜的簡單隊列服務)。 SQS 會在使用者讀取事件后立即刪除事件。 我希望能夠從節點故障和數據丟失中恢復。
3. 從 Kinesis 流中讀取并使用使用情況數據更新 [Local Dynamodb](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html) 實例
4. 使用 [Dynamodb 跨區域復制庫](https://github.com/awslabs/dynamodb-cross-region-library)實時將對我的本地 dynamodb 實例的所有更改實時流式傳輸到所有區域中的所有表。
## 驗證請求
我通過在注冊時將密鑰復制到每個區域來處理此問題,因此無論用戶點擊哪個端點,他們點擊的 lambda 函數都可以通過在毫秒內檢入本地 Dynamodb 表來驗證其密鑰。 它還可以存儲用戶的計劃配額,并且可以在一次讀取中驗證密鑰,如果密鑰存在,則可以獲取計劃配額以與使用情況進行比較并確定是否接受或拒絕請求。
## 情況如何
今天,我們每月提供 2500 萬個 API 調用,每天大約提供 100 萬個調用。
它們中的大多數都在 30 毫秒之內,提供了業界最快的基于 SSL 的 IP 地理位置查找。
#### [Hyperping.io](https://hyperping.io/)

### [我們的狀態頁面](https://updown.io/ndkd)

延遲幾乎是開發人員不愿意使用第三方 API 進行 GeoIP 查找的最大原因。
但是,我們的低延遲和冗余的全球基礎架構正逐漸將大型企業吸引到我們的服務中。
## 費用

## 經驗教訓
1. Cloudwatch 的成本可能出乎意料的高-而不是日志存儲-我們只能將 Cloudwatch 日志存儲 24 小時。 警報,指標和 cloudwatch 請求確實可以加起來。
2. 在 API 網關上,由于冷啟動次數減少,您獲得的請求越少,延遲就越低,因此我發現在我們最繁忙的地區(法蘭克福)的延遲低至 17 毫秒,而在悉尼等不那么繁忙的區域則只有 40 毫秒。
3. Dynamodb 的速度快,花費比您想象的要少(或者不,請參閱 [https://segment.com/blog/the-million-dollar-eng-problem/](https://segment.com/blog/the-million-dollar-eng-problem/) )。 最初,我認為應該按我提供的 RCU 和 WCU 的數量收費。 但是,計費似乎只是標準用法,因此,如果您提供 1000 個 RCU 和 1000 個 WCU,但僅使用 5 個 RCU 和 WCU,則只需要為使用付費。 Dynamodb 定價的這一方面在剛開始時很難確定。
4. 增加 lambda RAM 可以使執行時間減半,并使的響應時間更加一致(同時使您的成本增加一倍!)
5. Kinesis 已被證明在高吞吐量下非常可靠。 中繼我們的所有日志事件以進行近實時處理。
6. 本地 Dynamodb 僅受系統資源的限制,這使其非常適合運行表掃描或查詢(例如,在生成報告時),否則這些掃描或查詢在 AWS 的 Dynamodb 上進行將非常昂貴。 請記住,Local Dynamodb 實際上只是 SQLite 周圍的 Dynamo 包裝:)。 對于我們的用例來說,它既有用又方便,但對您而言可能并非如此。
## 筆記
* AWS 去年在 Re:invent 上宣布了 Dynamodb Global 表,該表將所有表(“跨區域”)中的所有寫入彼此同步。 我們目前不打算使用此功能,因為它僅在 5 個地區提供。
* 亞馬遜還推出了`REQUEST`類型的自定義授權者。 這可能使您可以通過 IP 地址以及任何標頭,查詢或路徑參數對速率進行限制。
[關于 HackerNews](https://news.ycombinator.com/item?id=16745376)
您的 DynamoDB 成本令人驚訝是因為默認情況下啟用了“自動縮放”以讀取/寫入卷。 只要您的峰值不大,就永遠不會看到配置錯誤...
我對此聲明感到困惑:
-----
我最初以為我要提供的 RCU 和 WCU 數量付費。 但是,計費似乎只是標準用法,因此,如果您提供 1000 個 RCU 和 1000 個 WCU,但僅使用 5 個 RCU 和 WCU,則只需要為使用付費。 Dynamodb 定價的這一方面在剛開始時很難確定。
-----
定價頁面(https://aws.amazon.com/dynamodb/pricing/)指出,您需要為您提供的吞吐量付費
也許因為仍在免費套餐中而未向您收費?
嘿 Cads,
我完全理解混亂,我也和您一樣。
但是我很確定我們不在免費領域,因為我們要為 Dynamodb 付費。
而且,我們只收取使用費用,并不超出表中的規定。
這似乎與亞馬遜的定價頁面上所說的相反,但這是我在 AWS 賬單上看到的。
感謝您的有趣文章。 關于本地 DynamoDB,我有一個問題:您在哪里運行此程序? 作為 EC2 實例?
嗨 Tobi,
謝謝! 我實際上在 Azure 節點上運行它。 但是,它可以作為實例在 DO 或 EC2 上運行。
該圖顯然是不真誠的。 從來沒有太大的區別。 在這種情況下,可能是因為作者只是在測試管道而不是沒有管道。 此外,他將 go pro 限制為 1 cpu。 同樣,倉庫也不再存在。 我把廢話統稱為“基準”。
順便說一句,Japronto 主要是 C,請檢查代碼。
(我偏向于 Go,但是這不像 node,其他人無法應付自己)
我記得在中篇文章上有很多類似的評論,請參閱 https://medium.freecodecamp.org/million-requests-per-second-with-python-95c137af319
我還能夠找到另一個基準,使 japronto 緊隨 Rust
https://github.com/tbrand/which_is_the_fastest
每月 2500 萬個請求是每秒 10 個請求...
每秒高峰請求呢?
寫得很好的文章。 感謝您分享您的體驗。 我對以下部分有疑問:
“首先,在每個請求上打印一個帶有所有請求標識符的日志(JSON 對象)。這是 IP 地址,引薦來源網址和 API 密鑰(如果存在的話)。確實是;```print(event)```“
只是想知道為什么不將這些消息直接發送給運動機能? 為什么要先登錄?
Esko,API 網關可以處理 10k req / s 的峰值
Kaivalya,這會為用戶帶來延遲,打印日志是最便宜的(就延遲而言)和最簡單的解決方案。
> > SQS 會在使用者讀取事件后立即將其刪除。
這是不正確的,一旦您從 SQS 讀取了一條消息,直到可見性超時,任何人都看不到它。 您需要確認對 SQS 的讀取,以便它可以刪除消息。 我們通常要做的是處理消息,然后僅在處理實例發生故障的情況下進行確認,這樣我們的消息仍然完好無損。 只需調整可見性超時以確保提供足夠的時間即可。
很棒的文章。 感謝您與社區分享。
嗨,您如何處理每秒 1,000 個 Lambda 呼叫限制? AWS 的架構師建議我們不要在具有高使用率和高并發性的大多數項目中使用 Lambda-他們說,這僅對中小型項目更好,并且沒有您所說的無限規模-我們被告知的一個大問題 當以最大速度運行時,AWS 團隊將耗盡 VPC 中所有可用的 IP 地址。 超出 1,000 個限制的呼叫也會被拒絕,您的客戶也會出錯。
為了計算并發執行的次數,我們使用公式:
每秒事件(或請求)數*功能持續時間
如 https://docs.aws.amazon.com/lambda/latest/dg/scaling.html 所記錄。
自這篇文章上線以來,我們平均每天平均有 2M API 調用,大約每秒 12 次。我們的最大 lambda 使用上面公式中的值,調用時間為 20ms;
12 * 0.020
我們得到的并發級別為 0.24。
這意味著我們可以在目前的 1000 lambda 調用限制下,每秒處理 50,000 個請求,每天約 43.2 億個請求。
嗨,
單個訂戶的運動流事件有多個訂戶嗎?
只是想知道為什么如果所有數據都存儲在一個中央(本地)dynamo 數據庫實例中,則跨區域 dynamo 數據庫進行復制。
因此,您為 9 req / s 支付 150 美元?
對于許可證密鑰檢查,您是否考慮過使用 Bloom 或 Cuckoo 過濾器? 您可以將過濾器保存在內存中,并避免數據庫調用。
首次使用 ipdata.co 的用戶,我們最近切換到了另一個 IP 地理位置提供商。 延遲在過去幾個月中增加了很多,并且在全球范圍內不一致(請參閱 https://status.ipdata.co/)。 此外,該服務缺少監視儀表板。
如果您處于類似情況,我建議嘗試 Ipregistry(https://ipregistry.co),其全局端點延遲實在令人難以置信(https://status.ipregistry.co/)! 我聯系了他們的支持,建議在此博客上寫一篇文章,因為他們的體系結構可能很有趣。
- LiveJournal 體系結構
- mixi.jp 體系結構
- 友誼建筑
- FeedBurner 體系結構
- GoogleTalk 架構
- ThemBid 架構
- 使用 Amazon 服務以 100 美元的價格構建無限可擴展的基礎架構
- TypePad 建筑
- 維基媒體架構
- Joost 網絡架構
- 亞馬遜建筑
- Fotolog 擴展成功的秘訣
- 普恩斯的教訓-早期
- 論文:Wikipedia 的站點內部,配置,代碼示例和管理問題
- 擴大早期創業規模
- Feedblendr 架構-使用 EC2 進行擴展
- Slashdot Architecture-互聯網的老人如何學會擴展
- Flickr 架構
- Tailrank 架構-了解如何在整個徽標范圍內跟蹤模因
- Ruby on Rails 如何在 550k 網頁瀏覽中幸存
- Mailinator 架構
- Rackspace 現在如何使用 MapReduce 和 Hadoop 查詢 TB 的數據
- Yandex 架構
- YouTube 架構
- Skype 計劃 PostgreSQL 擴展到 10 億用戶
- 易趣建筑
- FaceStat 的禍根與智慧贏得了勝利
- Flickr 的聯合會:每天進行數十億次查詢
- EVE 在線架構
- Notify.me 體系結構-同步性
- Google 架構
- 第二人生架構-網格
- MySpace 體系結構
- 擴展 Digg 和其他 Web 應用程序
- Digg 建筑
- 在 Amazon EC2 中部署大規模基礎架構的六個經驗教訓
- Wolfram | Alpha 建筑
- 為什么 Facebook,Digg 和 Twitter 很難擴展?
- 全球范圍擴展的 10 個 eBay 秘密
- BuddyPoke 如何使用 Google App Engine 在 Facebook 上擴展
- 《 FarmVille》如何擴展以每月收獲 7500 萬玩家
- Twitter 計劃分析 1000 億條推文
- MySpace 如何與 100 萬個并發用戶一起測試其實時站點
- FarmVille 如何擴展-后續
- Justin.tv 的實時視頻廣播架構
- 策略:緩存 404 在服務器時間上節省了洋蔥 66%
- Poppen.de 建筑
- MocoSpace Architecture-一個月有 30 億個移動頁面瀏覽量
- Sify.com 體系結構-每秒 3900 個請求的門戶
- 每月將 Reddit 打造為 2.7 億頁面瀏覽量時汲取的 7 個教訓
- Playfish 的社交游戲架構-每月有 5000 萬用戶并且不斷增長
- 擴展 BBC iPlayer 的 6 種策略
- Facebook 的新實時消息系統:HBase 每月可存儲 135 億條消息
- Pinboard.in Architecture-付費玩以保持系統小巧
- BankSimple 迷你架構-使用下一代工具鏈
- Riak 的 Bitcask-用于快速鍵/值數據的日志結構哈希表
- Mollom 體系結構-每秒以 100 個請求殺死超過 3.73 億個垃圾郵件
- Wordnik-MongoDB 和 Scala 上每天有 1000 萬個 API 請求
- Node.js 成為堆棧的一部分了嗎? SimpleGeo 說是的。
- 堆棧溢出體系結構更新-現在每月有 9500 萬頁面瀏覽量
- Medialets 體系結構-擊敗艱巨的移動設備數據
- Facebook 的新實時分析系統:HBase 每天處理 200 億個事件
- Microsoft Stack 是否殺死了 MySpace?
- Viddler Architecture-每天嵌入 700 萬個和 1500 Req / Sec 高峰
- Facebook:用于擴展數十億條消息的示例規范架構
- Evernote Architecture-每天有 900 萬用戶和 1.5 億個請求
- TripAdvisor 的短
- TripAdvisor 架構-4,000 萬訪客,200M 動態頁面瀏覽,30TB 數據
- ATMCash 利用虛擬化實現安全性-不變性和還原
- Google+是使用您也可以使用的工具構建的:閉包,Java Servlet,JavaScript,BigTable,Colossus,快速周轉
- 新的文物建筑-每天收集 20 億多個指標
- Peecho Architecture-鞋帶上的可擴展性
- 標記式架構-擴展到 1 億用戶,1000 臺服務器和 50 億個頁面視圖
- 論文:Akamai 網絡-70 個國家/地區的 61,000 臺服務器,1,000 個網絡
- 策略:在 S3 或 GitHub 上運行可擴展,可用且廉價的靜態站點
- Pud 是反堆棧-Windows,CFML,Dropbox,Xeround,JungleDisk,ELB
- 用于擴展 Turntable.fm 和 Labmeeting 的數百萬用戶的 17 種技術
- StackExchange 體系結構更新-平穩運行,Amazon 4x 更昂貴
- DataSift 體系結構:每秒進行 120,000 條推文的實時數據挖掘
- Instagram 架構:1400 萬用戶,1 TB 的照片,數百個實例,數十種技術
- PlentyOfFish 更新-每月 60 億次瀏覽量和 320 億張圖片
- Etsy Saga:從筒倉到開心到一個月的瀏覽量達到數十億
- 數據范圍項目-6PB 存儲,500GBytes / sec 順序 IO,20M IOPS,130TFlops
- 99designs 的設計-數以千萬計的綜合瀏覽量
- Tumblr Architecture-150 億頁面瀏覽量一個月,比 Twitter 更難擴展
- Berkeley DB 體系結構-NoSQL 很酷之前的 NoSQL
- Pixable Architecture-每天對 2000 萬張照片進行爬網,分析和排名
- LinkedIn:使用 Databus 創建低延遲更改數據捕獲系統
- 在 30 分鐘內進行 7 年的 YouTube 可擴展性課程
- YouPorn-每天定位 2 億次觀看
- Instagram 架構更新:Instagram 有何新功能?
- 搜索技術剖析:blekko 的 NoSQL 數據庫
- Pinterest 體系結構更新-1800 萬訪問者,增長 10 倍,擁有 12 名員工,410 TB 數據
- 搜索技術剖析:使用組合器爬行
- iDoneThis-從頭開始擴展基于電子郵件的應用程序
- StubHub 體系結構:全球最大的票務市場背后的驚人復雜性
- FictionPress:在網絡上發布 600 萬本小說
- Cinchcast 體系結構-每天產生 1,500 小時的音頻
- 棱柱架構-使用社交網絡上的機器學習來弄清您應該在網絡上閱讀的內容
- 棱鏡更新:基于文檔和用戶的機器學習
- Zoosk-實時通信背后的工程
- WordPress.com 使用 NGINX 服務 70,000 req / sec 和超過 15 Gbit / sec 的流量
- 史詩般的 TripAdvisor 更新:為什么不在云上運行? 盛大的實驗
- UltraDNS 如何處理數十萬個區域和數千萬條記錄
- 更簡單,更便宜,更快:Playtomic 從.NET 遷移到 Node 和 Heroku
- Spanner-關于程序員使用 NoSQL 規模的 SQL 語義構建應用程序
- BigData 使用 Erlang,C 和 Lisp 對抗移動數據海嘯
- 分析數十億筆信用卡交易并在云中提供低延遲的見解
- MongoDB 和 GridFS 用于內部和內部數據中心數據復制
- 每天處理 1 億個像素-少量競爭會導致大規模問題
- DuckDuckGo 體系結構-每天進行 100 萬次深度搜索并不斷增長
- SongPop 在 GAE 上可擴展至 100 萬活躍用戶,表明 PaaS 未通過
- Iron.io 從 Ruby 遷移到 Go:減少了 28 臺服務器并避免了巨大的 Clusterf ** ks
- 可汗學院支票簿每月在 GAE 上擴展至 600 萬用戶
- 在破壞之前先檢查自己-鱷梨的建筑演進的 5 個早期階段
- 縮放 Pinterest-兩年內每月從 0 到十億的頁面瀏覽量
- Facebook 的網絡秘密
- 神話:埃里克·布魯爾(Eric Brewer)談銀行為什么不是堿-可用性就是收入
- 一千萬個并發連接的秘密-內核是問題,而不是解決方案
- GOV.UK-不是你父親的書庫
- 縮放郵箱-在 6 周內從 0 到 100 萬用戶,每天 1 億條消息
- 在 Yelp 上利用云計算-每月訪問量為 1.02 億,評論量為 3900 萬
- 每臺服務器將 PHP 擴展到 30,000 個并發用戶的 5 條 Rockin'Tips
- Twitter 的架構用于在 5 秒內處理 1.5 億活躍用戶,300K QPS,22 MB / S Firehose 以及發送推文
- Salesforce Architecture-他們每天如何處理 13 億筆交易
- 擴大流量的設計決策
- ESPN 的架構規模-每秒以 100,000 Duh Nuh Nuhs 運行
- 如何制作無限可擴展的關系數據庫管理系統(RDBMS)
- Bazaarvoice 的架構每月發展到 500M 唯一用戶
- HipChat 如何使用 ElasticSearch 和 Redis 存儲和索引數十億條消息
- NYTimes 架構:無頭,無主控,無單點故障
- 接下來的大型聲音如何使用 Hadoop 數據版本控制系統跟蹤萬億首歌曲的播放,喜歡和更多內容
- Google 如何備份 Internet 和數十億字節的其他數據
- 從 HackerEarth 用 Apache 擴展 Python 和 Django 的 13 個簡單技巧
- AOL.com 體系結構如何發展到 99.999%的可用性,每天 800 萬的訪問者和每秒 200,000 個請求
- Facebook 以 190 億美元的價格收購了 WhatsApp 體系結構
- 使用 AWS,Scala,Akka,Play,MongoDB 和 Elasticsearch 構建社交音樂服務
- 大,小,熱還是冷-條帶,Tapad,Etsy 和 Square 的健壯數據管道示例
- WhatsApp 如何每秒吸引近 5 億用戶,11,000 內核和 7,000 萬條消息
- Disqus 如何以每秒 165K 的消息和小于 0.2 秒的延遲進行實時處理
- 關于 Disqus 的更新:它仍然是實時的,但是 Go 摧毀了 Python
- 關于 Wayback 機器如何在銀河系中存儲比明星更多的頁面的簡短說明
- 在 PagerDuty 遷移到 EC2 中的 XtraDB 群集
- 擴展世界杯-Gambify 如何與 2 人組成的團隊一起運行大型移動投注應用程序
- 一點點:建立一個可處理每月 60 億次點擊的分布式系統的經驗教訓
- StackOverflow 更新:一個月有 5.6 億次網頁瀏覽,25 臺服務器,而這一切都與性能有關
- Tumblr:哈希處理每秒 23,000 個博客請求的方式
- 使用 HAProxy,PHP,Redis 和 MySQL 處理 10 億個請求的簡便方法來構建成長型啟動架構
- MixRadio 體系結構-兼顧各種服務
- Twitter 如何使用 Redis 進行擴展-105TB RAM,39MM QPS,10,000 多個實例
- 正確處理事情:通過即時重放查看集中式系統與分散式系統
- Instagram 提高了其應用程序的性能。 這是如何做。
- Clay.io 如何使用 AWS,Docker,HAProxy 和 Lots 建立其 10 倍架構
- 英雄聯盟如何將聊天擴大到 7000 萬玩家-需要很多小兵。
- Wix 的 Nifty Architecture 技巧-大規模構建發布平臺
- Aeron:我們真的需要另一個消息傳遞系統嗎?
- 機器:惠普基于憶阻器的新型數據中心規模計算機-一切仍在變化
- AWS 的驚人規模及其對云的未來意味著什么
- Vinted 體系結構:每天部署數百次,以保持繁忙的門戶穩定
- 將 Kim Kardashian 擴展到 1 億個頁面
- HappyPancake:建立簡單可擴展基金會的回顧
- 阿爾及利亞分布式搜索網絡的體系結構
- AppLovin:通過每天處理 300 億個請求向全球移動消費者進行營銷
- Swiftype 如何以及為何從 EC2 遷移到真實硬件
- 我們如何擴展 VividCortex 的后端系統
- Appknox 架構-從 AWS 切換到 Google Cloud
- 阿爾及利亞通往全球 API 的憤怒之路
- 阿爾及利亞通往全球 API 步驟的憤怒之路第 2 部分
- 為社交產品設計后端
- 阿爾及利亞通往全球 API 第 3 部分的憤怒之路
- Google 如何創造只有他們才能創造的驚人的數據中心網絡
- Autodesk 如何在 Mesos 上實施可擴展事件
- 構建全球分布式,關鍵任務應用程序:Trenches 部分的經驗教訓 1
- 構建全球分布式,關鍵任務應用程序:Trenches 第 2 部分的經驗教訓
- 需要物聯網嗎? 這是美國一家主要公用事業公司從 550 萬米以上收集電力數據的方式
- Uber 如何擴展其實時市場平臺
- 優步變得非常規:使用司機電話作為備份數據中心
- 在不到五分鐘的時間里,Facebook 如何告訴您的朋友您在災難中很安全
- Zappos 的網站與 Amazon 集成后凍結了兩年
- 為在現代時代構建可擴展的有狀態服務提供依據
- 細分:使用 Docker,ECS 和 Terraform 重建基礎架構
- 十年 IT 失敗的五個教訓
- Shopify 如何擴展以處理來自 Kanye West 和 Superbowl 的 Flash 銷售
- 整個 Netflix 堆棧的 360 度視圖
- Wistia 如何每小時處理數百萬個請求并處理豐富的視頻分析
- Google 和 eBay 關于構建微服務生態系統的深刻教訓
- 無服務器啟動-服務器崩潰!
- 在 Amazon AWS 上擴展至 1100 萬以上用戶的入門指南
- 為 David Guetta 建立無限可擴展的在線錄制活動
- Tinder:最大的推薦引擎之一如何決定您接下來會看到誰?
- 如何使用微服務建立財產管理系統集成
- Egnyte 體系結構:構建和擴展多 PB 分布式系統的經驗教訓
- Zapier 如何自動化數十億個工作流自動化任務的旅程
- Jeff Dean 在 Google 進行大規模深度學習
- 如今 Etsy 的架構是什么樣的?
- 我們如何在 Mail.Ru Cloud 中實現視頻播放器
- Twitter 如何每秒處理 3,000 張圖像
- 每天可處理數百萬個請求的圖像優化技術
- Facebook 如何向 80 萬同時觀看者直播
- Google 如何針對行星級基礎設施進行行星級工程設計?
- 為 Mail.Ru Group 的電子郵件服務實施反垃圾郵件的貓捉老鼠的故事,以及 Tarantool 與此相關的內容
- The Dollar Shave Club Architecture Unilever 以 10 億美元的價格被收購
- Uber 如何使用 Mesos 和 Cassandra 跨多個數據中心每秒管理一百萬個寫入
- 從將 Uber 擴展到 2000 名工程師,1000 個服務和 8000 個 Git 存儲庫獲得的經驗教訓
- QuickBooks 平臺
- 美國大選期間城市飛艇如何擴展到 25 億個通知
- Probot 的體系結構-我的 Slack 和 Messenger Bot 用于回答問題
- AdStage 從 Heroku 遷移到 AWS
- 為何將 Morningstar 遷移到云端:降低 97%的成本
- ButterCMS 體系結構:關鍵任務 API 每月可處理數百萬個請求
- Netflix:按下 Play 會發生什么?
- ipdata 如何以每月 150 美元的價格為來自 10 個無限擴展的全球端點的 2500 萬個 API 調用提供服務
- 每天為 1000 億個事件賦予意義-Teads 的 Analytics(分析)管道
- Auth0 體系結構:在多個云提供商和地區中運行
- 從裸機到 Kubernetes
- Egnyte Architecture:構建和擴展多 PB 內容平臺的經驗教訓
- 縮放原理
- TripleLift 如何建立 Adtech 數據管道每天處理數十億個事件
- Tinder:最大的推薦引擎之一如何決定您接下來會看到誰?
- 如何使用微服務建立財產管理系統集成
- Egnyte 體系結構:構建和擴展多 PB 分布式系統的經驗教訓
- Zapier 如何自動化數十億個工作流自動化任務的旅程
- Jeff Dean 在 Google 進行大規模深度學習
- 如今 Etsy 的架構是什么樣的?
- 我們如何在 Mail.Ru Cloud 中實現視頻播放器
- Twitter 如何每秒處理 3,000 張圖像
- 每天可處理數百萬個請求的圖像優化技術
- Facebook 如何向 80 萬同時觀看者直播
- Google 如何針對行星級基礎設施進行行星級工程設計?
- 為 Mail.Ru Group 的電子郵件服務實施反垃圾郵件的貓捉老鼠的故事,以及 Tarantool 與此相關的內容
- The Dollar Shave Club Architecture Unilever 以 10 億美元的價格被收購
- Uber 如何使用 Mesos 和 Cassandra 跨多個數據中心每秒管理一百萬個寫入
- 從將 Uber 擴展到 2000 名工程師,1000 個服務和 8000 個 Git 存儲庫獲得的經驗教訓
- QuickBooks 平臺
- 美國大選期間城市飛艇如何擴展到 25 億條通知
- Probot 的體系結構-我的 Slack 和 Messenger Bot 用于回答問題
- AdStage 從 Heroku 遷移到 AWS
- 為何將 Morningstar 遷移到云端:降低 97%的成本
- ButterCMS 體系結構:關鍵任務 API 每月可處理數百萬個請求
- Netflix:按下 Play 會發生什么?
- ipdata 如何以每月 150 美元的價格為來自 10 個無限擴展的全球端點的 2500 萬個 API 調用提供服務
- 每天為 1000 億個事件賦予意義-Teads 的 Analytics(分析)管道
- Auth0 體系結構:在多個云提供商和地區中運行
- 從裸機到 Kubernetes
- Egnyte Architecture:構建和擴展多 PB 內容平臺的經驗教訓