去哪儿网马文: ESAAS平台技术开发实战

马文,去哪儿网平台事业部数据平台研发工程师, 于2015年7月份加入去哪儿网, 在平台事业部从事运维开发工作。其工作范围主要有Mesos / Marathon / Docker等资源管理调度和容器方面的研究,ELK日志收集方面的研究,Elasticsearch数据搜索技术的研究以及Elasticsearch SAAS平台的建设和运维工作。

马文先生所在的去哪儿网ops部门属于运维和开发部门,主要负责公司基础设施的开发和保障,为公司提供基础平台的建设与基础公共设施的建设。采访过程中,马文先生告诉笔者,作为公司的后勤保障部门,我们的工作就是为公司的其他业务部门提供优质的服务,例如某个业务需要搜索服务,我们就为他们提供搜索平台;某个部门要使用日志收集功能,就会为他们提供这一服务。因此,如何建设一个强大的系统平台,至关重要。为此,我们利用Mesos/Docker技术开发了Elasticsearch SAAS(ESAAS)平台。

Elasticsearch SAAS(ESAAS)平台在开发过程中遇到的***困难是什么?是如何解决的?随后,笔者就这一话题与马文先生进行了沟通。在谈到相关的技术话题后,马文先生在回答笔者提问时充分体现出了一名研发工程师的严谨,讲话思维敏捷,逻辑清晰,除了技术上的相关内容沟通外,没有过多的话语。

马文先生表示,利用Mesos/Docker技术开发的Elasticsearch SAAS(ESAAS)平台是2016年3/4月份刚刚上线的系统,是一个比较年轻的系统。在这个系统的建设过程中,主要遇到了三个方面的问题。

***,在系统建设初期遇到了服务编排的问题,这也是大部分私有云服务最核心的问题,主要是解决怎么才能把系统中的各个组件合理的编排在一个流程之内。在遇到这个问题后,团队积极去寻找一些业内比较好的开源的成果,一是参考了ES官方提供的Elasticsearch Cloud这项服务,它是一个基于ES的基础的云服务平台。二是参考了亚马逊提供的基础云服务。除此之外,我们还结合公司内部的实际使用情况,比如在没有进行这项业务之前,公司各个业务部门是怎么样使用ES服务的,进行了系统的设计。

因此,在Elasticsearch SAAS(ESAAS)平台开发过程中,主要参考了业界比较好的开源系统,结合公司内部的实际情况,进行了设计和开发。

第二,在服务上线后,后期的开发和维护过程中遇到的***的问题是私有云平台内部资源过热。所谓资源过热,是因为Elasticsearch SAAS(ESAAS)平台是一个资源池化的系统,把所有的资源都放到一个池子当中,就会出现这个问题。原因是由于我们提供的ES服务是以集群为单位的,每个业务线向我们申请ES服务时有时会造成资源扎堆的情况,例如某几台服务器由于Mesos调度的结果就会有比较集中的ES节点,就会造成几种情况发生。***种是某些服务器的磁盘已经用满,而其他服务器的磁盘利用率则不高。第二种是计算I/O比较大的几个集群扎堆在一起,导致这些服务器的I/O会非常高,其他服务器利用率就会较低。

在解决资源过热的问题上,分成了三个步骤。***步是统计整体平台中资源的情况,统计磁盘扎堆的情况、I/O扎堆的情况,并将统计的结果做聚合分析,进行直观展示,这样就能看到集群里面哪一块局部过热。第二步是人工调整,根据***步的展示结果,通过人工迁移的方法去调整过热的点,进行平衡使用。通过逐步调整,就会总结出一套规律和算法模式。第三步是根据人工调整的规则,变成自动化的处理,将重复的人工劳动,变成自动化。

马文先生表示,Elasticsearch SAAS(ESAAS)平台开发已经进入到第二步的调整,并且总结了一些经验,接下来将会进入第三步,将重复的人工劳动变成自动化。逐步的系统就会自动解决资源过热的情况,不再需要人工参与。他表示,目前系统已经覆盖了30+的业务,在系统上已经有50个集群,已经承载了公司大部分的ES服务。存储规模已经能够达到200TB+的数据存储量。此外,私有云的构建模式已经在公司推广开来,其他的部门也在按照我们这种私有云的模式在后续构建一些其他相关的服务平台。

在采访结束前,笔者询问了马文先生对WOT峰会的一些建议,马文先生表示,WOT不光是技术交流的峰会,更多的是一个平台,技术人共同成长的平台。在这个平台上,有很多技术牛人聚集在一起,在一起分享,不仅对于我个人,对于技术圈都有推动作用。对我个人的提高也有推动。他建议我们应该多增加一些线下的技术交流,以推动技术人的共同成长。