读书笔记(SRE:Google运维解密):第2章 Google 生产环境:SRE视角

  • 物理服务器(machine)
    代表具体的硬件(有时候也代表一个VM 虚拟机)。
     

  • 软件服务器(server)
    代表一个对外提供服务的软件系统。
     

  • 典型的Google数据中心的拓扑结构:
    (a)约10台物理服务器组成了一个机柜(Rack)
    (b)数台机柜组成一个机柜排(Row)
    (c)一排或多排机柜组成了一个集群(Cluster)
    (d)一般来说,一个数据中心(Datacenter)包含多个集群
    (e)多个相邻的数据中心组成了一个园区(Campus)
    读书笔记(SRE:Google运维解密):第2章 Google 生产环境:SRE视角
     

  • 支持大规模部署的系统管理软件
    (a)管理物理服务器
    (b)存储
    (c)网络
    (d)分布式锁服务
    (e)监控与警报系统

 

  • grpc
  • thrift

 

  • 任务和数据的组织方式

(a)假设压力测试的结果显示,服务器可以每秒处理大概100个请求(100 QPS)。通过对用户进行的调查显示,预计峰值流量会达到3470 QPS,为了处理这些流量,至少需要 35个任务实例。但是,由于以下几点考量,最终决定至少采用37个实例,也就是 N+2模式:

  1. 在更新过程中,有一个任务实例将会短暂不可用,只有36个实例可提供服务。
  2. 如果另外一个物理服务器同时也出现问题,那么另外一个任务实例也受到影响,只剩35个实例可以对外服务,刚好可以满足峰值要求。

(b)假设,对用户流量的进一步观察显示峰值流量其实是来自全球的。北美洲1430 QPS,南美洲 290 QPS,欧洲和非洲 1400 QPS,亚洲及澳大利亚共350 QPS。为了更好地服务用户,需要将服务分别部署在美国、南美洲、欧洲和亚洲。在南美洲,选择使用只部署4个实例(而不是5个),将冗余度降低为N+1。这样做的原因是,选择在极端情况下牺牲一些用户体验以降低成本。因为当容量不足时,GSLB会将南美洲的用户流量导向其他可用的数据中心,可以节省大概20%的硬件资源。在有条件的地方,还会将任务实例分散在不同的集群中,以便更好地提升可靠性。