技术迷们,你不是Google

这是读You Are Not Google 笔记,对作者指出的问题深有体会,技术迷会很容易会被那些高大上的技术吸引,从而忽略了真正面对的问题。

观点

  • 在尝试解决问题之前先对它们有充分的了解。
  • 那些高大上的技术不一定适合你。
  • 用SSD解决你的问题:D
  • 直接放入内存

错误案例

小公司的场景 选错的大公司技术 大公司 大公司要场景(解决的问题) 小公司情况分析 小公司真正的方案
PostgreSQL查询需要耗费几分钟的时间 Cassandra Amazon 保证购物车的高可用性 数据表里有5000万条数据,每条数据最多80个字节。如果从SSD上整块地读取所有数据大概需要5秒钟 耐心的调优,或其它技术
每天最多几百个的事务 kafka LinkedIn 几年前就已达到每天数万亿,高峰时段1000万/秒消息 10个数量级的差距
50个人的公司? SOA Amazon 2001年,意识到他们的前端需要横向伸缩,当时有7800个员工和30亿美元的销售规模
Hadoop, Spark Google 解决吞吐量,而不是容量 你真有那么多数据吗?你业务增长超过了SSD降价的速度了吗?

好案例:

截止2016年,Stack Exchange每天要处理2亿个请求,但是他们只用了4个SQL Server,一个用于Stack Overflow,一个用于其他用途,另外两个作为备份复本。

技术名词:

  • Cassandra - 高可用的键值存储系统
  • kafka - 消息中间件,为处理实时数据提供一个统一、高吞吐、低延迟的消息中间件平台
  • SOA - 面向服务架构,有助于实现前端/横向伸缩

方法论:UNPHAT

  1. Understand: 别急着找方案,先了解你的问题
  2. eNumerate:列出多种方案
  3. Paper:阅读相关论文
  4. Historical context:了解候选方案的产生背景
  5. Advantages:比较优缺点
  6. Think: 候选方案适合你的问题吗。例如:数据量没达到多少,咱就不用hadoop。

反思:

这些技术在相比大公司采用它们时已更成熟,更多人熟悉,所以采用它们成本真有那么高吗?
当时采用SOA跟现在采用成本差别大的很,相关技术有人员储备都已不同。