这是读You Are Not Google 笔记,对作者指出的问题深有体会,技术迷会很容易会被那些高大上的技术吸引,从而忽略了真正面对的问题。
观点
错误案例
小公司的场景 | 选错的大公司技术 | 大公司 | 大公司要场景(解决的问题) | 小公司情况分析 | 小公司真正的方案 |
---|---|---|---|---|---|
PostgreSQL查询需要耗费几分钟的时间 | Cassandra | Amazon | 保证购物车的高可用性 | 数据表里有5000万条数据,每条数据最多80个字节。如果从SSD上整块地读取所有数据大概需要5秒钟 | 耐心的调优,或其它技术 |
每天最多几百个的事务 | kafka | 几年前就已达到每天数万亿,高峰时段1000万/秒消息 | 10个数量级的差距 | ||
50个人的公司? | SOA | Amazon | 2001年,意识到他们的前端需要横向伸缩,当时有7800个员工和30亿美元的销售规模 | ||
Hadoop, Spark | 解决吞吐量,而不是容量 | 你真有那么多数据吗?你业务增长超过了SSD降价的速度了吗? |
好案例:
截止2016年,Stack Exchange每天要处理2亿个请求,但是他们只用了4个SQL Server,一个用于Stack Overflow,一个用于其他用途,另外两个作为备份复本。
技术名词:
- Cassandra - 高可用的键值存储系统
- kafka - 消息中间件,为处理实时数据提供一个统一、高吞吐、低延迟的消息中间件平台
- SOA - 面向服务架构,有助于实现前端/横向伸缩
方法论:UNPHAT
- Understand: 别急着找方案,先了解你的问题
- eNumerate:列出多种方案
- Paper:阅读相关论文
- Historical context:了解候选方案的产生背景
- Advantages:比较优缺点
- Think: 候选方案适合你的问题吗。例如:数据量没达到多少,咱就不用hadoop。
反思:
这些技术在相比大公司采用它们时已更成熟,更多人熟悉,所以采用它们成本真有那么高吗?
当时采用SOA跟现在采用成本差别大的很,相关技术有人员储备都已不同。