# 阿爾及利亞通往全球 API 第 3 部分的憤怒之路
> 原文: [http://highscalability.com/blog/2015/7/27/algolias-fury-road-to-a-worldwide-api-part-3.html](http://highscalability.com/blog/2015/7/27/algolias-fury-road-to-a-worldwide-api-part-3.html)

我們為開發人員和開發人員回答的最常見問題是關于 [我們的架構](http://highscalability.com/blog/2015/3/9/the-architecture-of-algolias-distributed-search-network.html) 以及我們如何實現如此高的可用性。 他們中的一些人對裸機服務器的高可用性持懷疑態度,而另一些人則對我們如何在全球范圍內分發數據持懷疑態度。 但是,我更喜歡的問題是“初創企業如何建立這樣的基礎架構”。 的確,對于一個年輕的公司,我們當前的架構令人印象深刻:
* 我們的高端專用計算機在全球 13 個地區托管,擁有 25 個數據中心
* 我們的主從設置會在至少 3 臺不同的計算機上復制我們的搜索引擎
* 我們每個月處理超過 60 億個查詢
* 我們每個月接收和處理超過 200 億次寫操作
就像羅馬不是一天建成的,我們的基礎架構也不是很好。 本系列文章將探討我們在構建基礎架構時采取的 15 個工具步驟。 我什至將討論我們的中斷和錯誤,以便您了解我們如何使用它們來改進我們的體系結構。
此系列的 [第一篇博客文章](http://highscalability.com/blog/2015/7/13/algolias-fury-road-to-a-worldwide-api.html) 專注于我們早期的 Beta 版, [第二篇文章](http://highscalability.com/blog/2015/7/20/algolias-fury-road-to-a-worldwide-api-steps-part-2.html) 在服務的前 18 個月,包括我們的首次停機。 在上一篇文章中,我將描述我們如何將“啟動”架構轉換為能夠滿足大型上市公司期望的新事物。
## 步驟 11:2015 年 2 月
### 啟動我們的全球同步基礎架構
在這個月中,我們實現了自 2014 年 4 月以來一直致力于的愿景,即“向全球擴展以更好地為我們的用戶服務”。
該網絡由 12 個不同的位置組成:美國東部(弗吉尼亞州),美國西部(加利福尼亞州),澳大利亞,巴西,加拿大,法國,德國,香港,印度,日本,俄羅斯和新加坡。 最重要的是,我們還啟動了“分布式搜索”功能。 使用此功能,只需單擊幾下,您就可以設置網絡中應該自動復制數據的位置。 您將使用與以前相同的 API,查詢將自動從最終用戶的瀏覽器或移動應用程序路由到最近的位置。
這是減少最終用戶延遲并通過全球搜索分布提高我們的高可用性的重要一步。 由于互聯網鏈接的距離和飽和度,從一個位置為國際用戶提供服務會導致非常不同的服務質量。 現在,我們為用戶提供了解決該問題的方法! 除了減少延遲之外,這還提高了我們搜索基礎架構的高可用性,因為它不再依賴于單個位置。 遍布全球!
有些人將我們的 DSN(分布式搜索網絡)與 CDN(內容交付網絡)進行了比較,但這是非常不同的。 我們不會在每個邊緣存儲您經常查詢的緩存。 我們存儲您所有數據的完整副本。 我們可以從邊緣位置本身響應任何查詢,而不僅僅是最流行的查詢。 這意味著,當您選擇三個 POP(美國東部,德國,新加坡)時,歐洲的用戶將前往德國,亞洲的用戶將前往新加坡,美國的用戶將前往美國東部。 所有 POP 都將響應查詢,而不必與其他邊緣進行通信。 這在用戶體驗和高可用性方面產生了巨大的差異。
為了支持此更改,我們更新了 API 客戶端中的重試邏輯,以首先定位 [APPID-dsn.algolia.net](http://appid-dsn.algolia.net) 主機名, 使用基于 geoip 的 DNS 將其路由到最近的位置。 如果最接近的主機關閉,則更新 DNS 記錄以在不到一分鐘的時間內刪除該主機,以便返回下一個最接近的主機。 這就是為什么我們在每條記錄上使用 1 分鐘的低 TTL 的原因。 如果發生故障,如果主機關閉并且 DNS 尚未更新,我們將通過 [APPID-1.algolia.net](http://appid-1.algolia.net) 上的重試將流量重定向到主區域。 , [APPID-2.algolia.net](http://appid-2.algolia.net) 和 [APPID-3.algolia.net [ 我們的官方 API 客戶端中的](http://appid-3.algolia.net) 。 這種方法是我們在高性能和高可用性之間找到的最佳平衡,萬一發生故障,我們只會在一分鐘內降低性能,但 API 仍可以運行&!
## 步驟 12:201 年 3 月
### 每個位置的更高可用性
分布式搜索網絡選項可改變游戲規則,以實現高可用性,但僅適用于搜索用戶和國際用戶。 為了提高主要區域的高可用性,我們在兩個完全獨立的提供商中分布了我們的美國集群:
* 兩個不同位置的數據中心(例如:Manassas 中的 COPT-6 & Ashburn 中的 Equinix DC-5:彼此之間 24 英里,延遲為 1ms)
* 三臺不同的計算機-就像以前一樣(兩臺在不同可用性區域中的第一個數據中心,另一臺在第二個數據中心中的)
* 兩個不同的自治系統(所以兩個完全不同的網絡提供商)
這些更改提高了我們對遇到的某些問題(例如提供商和 AWS 之間的對等鏈接的飽和)做出反應的能力。 擁有不同的提供商可以使我們選擇將流量重新路由到其他提供商。 就提高一個位置的高可用性而言,這是一大進步。
## 步驟 13:2015 年 4 月
### 隨機文件損壞頭痛
對于我們的制作團隊來說,2015 年 4 月是一個黑色的月份。 由于某些 SSD 的 TRIM 實現中存在錯誤,我們開始觀察生產機器上的隨機文件損壞。 您可以在 [此博客文章](https://blog.algolia.com/when-solid-state-drives-are-not-that-solid/) 中詳細閱讀該問題。 我們花了大約一個月的時間來跟蹤問題并正確識別。 在這段時間里,我們懷疑一切,從我們自己的軟件開始! 這也是對我們的體系結構的重大考驗。 在磁盤上隨機破壞文件不是一件容易的事。 通知我們的用戶由于磁盤已損壞而需要重新索引其數據也不容易。 幸運的是,我們從未丟失任何客戶數據。
我們的架構中有兩個重要因素使我們能夠面對這種情況而不會丟失任何數據:
* 我們存儲了三個數據副本。 在三臺計算機上隨機破壞相同數據的可能性幾乎為零(并且沒有發生)。
* 更重要的是,我們沒有復制索引結果。 相反,我們復制了從用戶那里收到的操作,并將其應用于每臺計算機。 由于一臺受影響的機器無法“污染”另一臺機器,因此這種設計使幾臺機器具有相同損壞的可能性非常低。
設計架構時,我們從未考慮過這種情況! 即使我們試圖考慮所有類型的網絡和硬件故障,我們也從未想象過內核錯誤甚至固件錯誤的后果。 我們的設計要有獨立的機器,這是我們能夠最小化問題影響的原因。 對于任何需要高可用性的系統,我強烈建議這種獨立性。
## 步驟 14:2015 年 5 月
### 引入了多個 DNS 提供商
由于 NSONE 出色的 DNS API,我們決定將其用作 DNS 提供程序。 我們能夠配置我們希望如何通過他們的 API 路由每個用戶的查詢。 我們也非常喜歡他們如何支持 edns-client-subnet,因為這對于提高地理路由的準確性至關重要。 這些功能使 NSONE 成為了出色的提供商,但是我們在架構中僅擁有一個提供商就不會給自己帶來風險。
面臨的挑戰是在不損失 NSONE 的所有強大功能的情況下引入第二個 DNS 提供商。 這意味著不能在同一域上擁有兩個 DNS 提供程序。
我們決定在 API 客戶端中使用重試策略來引入第二個 DNS 提供程序。 所有 API 客戶端首先嘗試與 [APPID-dsn.algolia.net](http://appid-dsn.algolia.net) 聯系,如果有任何問題,他們將在其他域,TLD 和 提供者。 我們決定使用 AWS Route 53 作為我們的第二個提供商。 如果有任何問題,API 客戶端將在 [APPID-1.algolianet.com](http://appid-1.algolianet.com) , [APPID- 2.algolianet.com](http://appid-2.algolianet.com) 和 [APPID-3.algolianet.com](http://appid-3.algolianet.com) 定位于主群集的 3 臺計算機。 這種方法使我們能夠將 NSONE 的所有有趣的地理路由功能保留在 algolia.net 域上,同時引入第二個提供商以在 algolianet.com 域上提供更高的高可用性。
## 步驟 15:2015 年 7 月
### 每個群集三個完全獨立的提供程序
您現在可以考慮使用我們開發的基礎架構,我們現在完全可以應對任何問題……但是實際情況有所不同。 即使使用由具有多個可用區的 Cloud Provider 托管的服務,您也可能會停機。 我們看到兩個主要原因:
* 鏈接/路由器開始產生數據包丟失。 我們已經在美國東部和美國西部之間多次看到這種情況,包括大型云提供商的邊界 ISP 路由器,盡管他們甚至沒有意識到這一點。
* 路由泄漏。 這尤其影響了很大一部分 Internet 依賴的大型參與者。
現在,我們在美國改進的設置使我們能夠構建跨多個數據中心,多個自治系統和多個上游提供商的集群。 就是說,為了接受索引操作,我們需要配置大多數計算機,這意味著三臺計算機中的兩臺。 當使用兩個提供程序時,如果我們的一個提供程序出現故障,盡管搜索仍然可用,但我們可能會失去索引服務。 這就是為什么我們決定進一步在三個完全獨立的提供商(在相互靠近的位置上依賴于不同上游提供商和自治系統的位置的不同數據中心)中托管群集的原因。 這種設置使我們能夠通過超冗余基礎架構提供高可用性的搜索和索引。 我們提供所有這些以及相同的易于使用的 API!
## 建立高度可用的架構需要時間
我希望我們的旅程細節能夠啟發人心,并提供有關我們的開始方式和今天的狀況的有用信息。 如果您是一家初創企業,請不要擔心一開始就沒有完善的基礎架構。 這是意料之中的! 但是您應該考慮您的體系結構以及如何盡早擴展它。 我什至建議您在 Beta 版之前進行操作!
盡早設計**架構是我們的秘密武器**。 一旦市場適應,我們就可以專注于執行。 即使在今天,我們在可伸縮性/可用性方面仍具有一些功能,這些功能在很早之前就已設計并尚未實現。 但是他們肯定會在不久的將來到來的:)
*以下是該系列的所有三個部分:[第 1 部分](http://highscalability.com/blog/2015/7/13/algolias-fury-road-to-a-worldwide-api.html),[第 2 部分](http://highscalability.com/blog/2015/7/20/algolias-fury-road-to-a-worldwide-api-steps-part-2.html),[第 3 部分](http://highscalability.com/blog/2015/7/27/algolias-fury-road-to-a-worldwide-api-part-3.html)*
*[關于 HackerNews](https://news.ycombinator.com/item?id=9956097)*
- 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 內容平臺的經驗教訓