# 神话:埃里克·布鲁尔(Eric Brewer)谈银行为什么不是碱-可用性就是收入
> 原文: [http://highscalability.com/blog/2013/5/1/myth-eric-brewer-on-why-banks-are-base-not-acid-availability.html](http://highscalability.com/blog/2013/5/1/myth-eric-brewer-on-why-banks-are-base-not-acid-availability.html)
![](https://img.kancloud.cn/45/83/4583228bc480ff608042c03f46149663_240x216.png)
在 [NoSQL:过去,现在,未来](http://www.infoq.com/presentations/NoSQL-History) [Eric Brewer](https://twitter.com/eric_brewer) 中,关于解释 [BASE 的观念通常很难理解的部分特别细腻](http://queue.acm.org/detail.cfm?id=1394128) (基本可用,软状态,最终一致), [酸](http://en.wikipedia.org/wiki/ACID) (原子性,一致性,隔离性,耐久性), [CAP [](http://en.wikipedia.org/wiki/CAP_theorem) (一致性可用性,分区容限),这是关于银行业一致性的神圣性的长期存在的神话。
**神话** :金钱很重要,因此银行 必须 使用交易来保持金钱安全和一致,对吗?
**现实** :银行交易不一致,尤其是对于 ATM 而言。 ATM 被设计为具有正常情况下的行为和分区模式的行为。 在分区模式下,可用性是通过一致性来选择的。
**为什么?** **1)**可用性与收入相关,而一致性通常不相关。 **2)**历史上从来没有完美交流的想法,所以一切都被分割了。
您的 ATM 交易必须经过,因此可用性比一致性更重要。 如果自动柜员机(ATM)处于关闭状态,那么您就无法赚钱。 如果您可以保持一致性,坚持不懈,并弥补其他错误(这种情况很少发生),那么您将获得更多的收入。 这是大多数企业发现的空间,因此 BASE 比以前更受欢迎。
对于金融业来说,这不是一个新问题。 他们从来没有保持过一致,因为历史上他们从来没有过完美的沟通。 相反,金融业依赖审计。 导致银行数据一致性的原因不是其数据库的一致性,而是所有事实都被 [写下两次,然后稍后使用](https://en.wikipedia.org/wiki/Double-entry_bookkeeping_system) 进行整理。 不可更改的记录,以后再进行核对。 对错误进行财务补偿的想法是深深植根于金融系统的想法。
在文艺复兴时期,当[现代银行系统](http://en.wikipedia.org/wiki/Luca_Pacioli)初具规模时,一切都被分割了。 如果信件(您的数据)是通过马或轮船运输的,那么您的数据可能会保持非常低的一致性,但是它们仍然拥有令人惊讶的丰富而成功的银行系统。 交易是不必要的。
例如, ATM 选择了 [交换操作](http://en.wikipedia.org/wiki/Serializability) 之类的递增和递减操作,因此操作顺序无关紧要。 它们是可重新排序的,以后可以使其保持一致。 如果 ATM 与网络断开连接,并且当分区最终恢复正常时,ATM 发送将操作列表发送到银行,并且期末余额仍然正确。 问题很明显,您可能会提取比您更多的钱,因此最终结果可能是一致的,但为负数,无法通过要求退款来弥补,因此,银行将向您奖励透支罚款。
隐藏的哲学是您试图 **约束并管理风险,** 仍然可以进行所有操作。 在 ATM 机中,这将限制您一次可以提取的最大金额。 风险不大。 自动取款机是有利可图的,因此偶尔的损失仅仅是开展业务的风险。
事实证明,这不是圣杯。 胜过一致性的是:
* 审核
* 风险管理
* 可用性
在以写可用性为关键的后互联网世界中,现实世界看起来更像*弱一致性+延迟异常+补偿*,而不是完美的沟通和交易的无错误世界。 就像过去一样,但现在您在 ACID <-> CAP 频谱上有更多选择。
## 相关文章
* [关于 HackerNews 2](https://t.co/VMC2IA1K0I)
* [讨论黑客新闻](https://news.ycombinator.com/item?id=5642010)
* [](http://highscalability.com/blog/2012/9/24/google-spanners-most-surprising-revelation-nosql-is-out-and.html)[Google Spanner 最令人惊讶的启示:NoSQL 出炉了,而 NewSQL 出现了](http://highscalability.com/blog/2012/9/24/google-spanners-most-surprising-revelation-nosql-is-out-and.html)
真的很有趣。 当然,课程必须实施广泛的审核功能,以弥补潜在的不一致问题,并在发现问题时尝试和纠正流程
这带来了银行认为可以接受的复杂程度,因为收益非常可观。 但是并不是每个组织或其应用程序都可以忍受这一点-因此仍然有很多地方需要保持一致性
嗨,托德,
我不确定您的所在地,但该示例在英国似乎并不成立。 我不知道实际的实现方式,但是在免费的 ATM 交易环境中,可用性似乎并不是主要问题。 自动柜员机停运并不罕见,而且,超出您的限额将导致机器拒绝为您提供所要求的现金。
尽管如此,有关换向运算的有趣观点。
干杯,
蒂姆
我不知道这是否可行,因为钱是可替代的-银行从我那里获得的 1 美元报酬与自动柜员机应支付的 1 美元没有明显的不同。
如果我使用了错误的约会资料并承诺“以后再补”,则效果不一样。 :)
蒂姆
我也在英国,并且同意 ATM 系统乍看之下在英国似乎并不那么清楚,但我相信它仍然是正确的。
我相信,使 ATM 脱机的原因是 ATM 与它用于验证卡号并快速检查卡是否被举报为欺诈性的服务之间的断开连接。 每个 ATM 提供商(实际上是银行组)似乎确实要分别运行其系统,然后再将它们一起应用。
我当然已经看过自动取款机说不能显示我的余额,但是可以提款。
如果这样的分区是为什么在周末/银行假日不进行任何交易,而您仍然可以使用您的卡,我不会感到惊讶。
另一个蒂姆
A 罐(应该)仍代表原子。 谁想要一半的交易伪装成整个交易?
我在 atm 网络上工作了多年,是的,它们都像这样工作。 今天,大多数网络都以在线模式工作。 但是协议支持脱机交易。 请记住,这些网络也支持信用卡交易(可以在授权交易后应用提示)。 脱机模式可用于支持断开连接的情况或启用可伸缩性,验证是联机的,但金融交易是分批的。 完全断开连接的可能性较小,因为必须在线检查引脚(至少直到芯片和引脚为止)。
从 atm 到后台,事务不是原子的,如果发生通信错误,则可以撤消事务。 一些自动取款机交易被标记为强制过帐,以表明已经发放了款项,即使它们违反了办公室规定(如不透支)也已得到处理。
这些细节中的一些是西方过去的遗迹,但是在非洲,南美和印度,长距离通信可能非常繁琐,因此中断的操作仍然非常重要。
尽管 Atm 交易是免费的,但信用卡交易涉及银行收费和商人收入。 当服务不可用时,也会损害声誉。 在金融危机爆发的第一年左右,有很多关于不同机构的传言。 这些机构非常担心服务中断会触发其银行挤兑。
干得好,保持下去
好的文章,内容翔实,有趣,重点突出。
Tim,
>可用性似乎并不是主要问题。 自动柜员机停运并不罕见
高不可用性率并不能证明可用性不是 OP 中规定的最高优先级。 它只是表明所讨论的网络在实现该优先级方面很差。
>超出您的限制将导致机器拒绝为您提供所要求的现金。
同样,这并不是可用性优先于一致性的禁忌。 本文的风险管理部分对此进行了介绍。
本文缺少的是认识到,在银行发布的实际财务更新包含的内容远不止简单的余额更新。 可能会有几十个表被更新,甚至更多。 所有这些工作必须是原子的。 ATM 网络具有备用功能,可以在多个级别上进行不可靠的通信或主机丢失,但是当消息到达银行时,它最终是一个很好的老式 ACID 更新。 ATM 和在线信用卡交易系统及其支持的登录,强制发布,预授权,部分和增量授权等功能,使网络变得非常可用,这仅仅是因为各机构已选择达成一项协议 彼此都很好。 银行系统不太愿意让提款部分过帐。
谢谢,不错的帖子
有趣的文章,感谢您提供信息。
真正不幸的是,信息开发人员必须受到来自 Web 开发社区的此类论点的轰炸。
经典的 ATM 示例不应该从字面上理解,而是重要交易的象征。 最容易理解的一种。
现代银行机构已经实施了风险管理以促进可用性的事实,并没有改变任何与 ACID 兼容的交易的重要性!
在我的银行存款,我每 24 小时只能提取 500 美元(风险)(保持一致的时间)。 让我们想象一下一项新法律,银行将不再采取此类措施? 哪里有人可以拿出大笔现金? 银行将很快从 BASE 变为 ACID!
今天的最终一致性如何?
这是关于分发帐单,以及在有人关心的情况下移动零碎的东西。
考虑到关于 ACID 的评论中的论点,我真的很想读这本书的续集。
- 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 内容平台的经验教训