读书笔记(SRE:Google运维解密):第2章 Google 生产环境:SRE视角
-
物理服务器(machine)
代表具体的硬件(有时候也代表一个VM 虚拟机)。
-
软件服务器(server)
代表一个对外提供服务的软件系统。
-
典型的Google数据中心的拓扑结构:
(a)约10台物理服务器组成了一个机柜(Rack)
(b)数台机柜组成一个机柜排(Row)
(c)一排或多排机柜组成了一个集群(Cluster)
(d)一般来说,一个数据中心(Datacenter)包含多个集群
(e)多个相邻的数据中心组成了一个园区(Campus)
-
支持大规模部署的系统管理软件
(a)管理物理服务器
(b)存储
(c)网络
(d)分布式锁服务
(e)监控与警报系统
- grpc
- thrift
- 任务和数据的组织方式
(a)假设压力测试的结果显示,服务器可以每秒处理大概100个请求(100 QPS)。通过对用户进行的调查显示,预计峰值流量会达到3470 QPS,为了处理这些流量,至少需要 35个任务实例。但是,由于以下几点考量,最终决定至少采用37个实例,也就是 N+2模式:
- 在更新过程中,有一个任务实例将会短暂不可用,只有36个实例可提供服务。
- 如果另外一个物理服务器同时也出现问题,那么另外一个任务实例也受到影响,只剩35个实例可以对外服务,刚好可以满足峰值要求。
(b)假设,对用户流量的进一步观察显示峰值流量其实是来自全球的。北美洲1430 QPS,南美洲 290 QPS,欧洲和非洲 1400 QPS,亚洲及澳大利亚共350 QPS。为了更好地服务用户,需要将服务分别部署在美国、南美洲、欧洲和亚洲。在南美洲,选择使用只部署4个实例(而不是5个),将冗余度降低为N+1。这样做的原因是,选择在极端情况下牺牲一些用户体验以降低成本。因为当容量不足时,GSLB会将南美洲的用户流量导向其他可用的数据中心,可以节省大概20%的硬件资源。在有条件的地方,还会将任务实例分散在不同的集群中,以便更好地提升可靠性。