基本设计目标
Google使用最多的服务就是它的搜索引擎,以此为例,有资料表明,用户的平均每—次前台搜索会导致Google的后台发生1011次的处理。用户将一个关键字通过Google的输入框传到Google的后台,系统再将具体的查询任务分配到很多子系统中,这些子系!统有些是用来处理涉及关键字的广告,有些是用来处理图像、视频等搜索的,最后所有这 些子系统的搜索结果被汇总在一起返回给用户。在我们看来很简单的一次搜索实际上涉及了众多Google后台子系统,这些子系统的运行状态都需要进行监控,而且随着时间的推 移Google的服务越来越多,新的子系统也在不断被加入,因此在设计时需要考虑到的第一个问题就是设计出的监控系统应当能够对尽可能多的Google服务进行监控,即广泛可部署性(Ubiquitous Deployment)。另一方面,Google的服务是全天候的,如果不能对Google的后台同样进行全天候的监控很可能会错过某些无法再现的关键性故障,因此需要进行不间断的监控。这两个基本要求导致了如下三个基本设计目标。
(1)低开销:这个是广泛可部署性的必然要求。监控系统的开销越低,对于原系统的影响就越小,系统的开发人员也就越愿意接受这个监控系统。
(2)对应用层透明:监控系统对程序员应当是不可见的。如果监控系统的使用需要程序开发人员对其底层的一些细节进行调整才能正常工作的话,这个监控系统肯定不是一个完善的监控系统。
(3)可扩展性:Google的服务增长速度是惊人的,设计出的系统至少在未来几年里要能够满足Google服务和集群的需求。