亚马逊为何要构建分布式系统,如此困难,他们还是坚持,因为它的目标是做平台。把自己的基础能力开放出去,让大家共同来构建生态。
我们在构建自己系统的时候,是否有远大的目标。远大的目标不是精益,是你心心念念所想的东西。
分布式系统中要注意的问题。
1. 标准不统一。左耳给了些建议,分布式系统需要规范,而不是任其复杂。我们公司就遇到服务返回错,但http的状态码是200,导致CDN缓存不失效用户登陆失败一次之后再也登陆不了。
左耳还提了好的配置管理要分层,底层和操作系统相关的应该选配置而不是人配置,最上层和业务相关的,让人配置。而不是将所有配置都一股脑key-value放入配置系统。
2. 服务依赖。业务复杂的公司都会有自己的服务治理系统。我们不只是上一套系统,而是需要规范。比如说要定服务的关键程度,描述出关键业务或服务调用的主要路径。没有这些,服务依赖就会导致严重问题。
3. 故障概率更大。故障是常态,要避免的是不能恢复过长,不能影响面太大。添加一堆监控指标没有用,而是要定义出关键的SLA指标。
4. 运维复杂。分工不是问题,如何协作才是问题。