马文,去哪儿平台事业部数据平台研发工程师,2015年7月加入去哪儿,在平台事业部从事运维开发工作。其工作范围主要包括Mesos/Marathon/Docker等资源管理调度和容器研究,ELK日志收集研究,Elasticsearch数据搜索技术研究,ElasticsearchSAAS平台建设与运维。 马文先生所在的去哪儿网ops部属于运维开发部,主要负责公司基础设施的开发和保障,为公司提供基础平台建设和基本的公共设施。采访中,马文总告诉笔者,作为公司的后勤保障部门,我们的工作就是为公司其他业务部门提供优质的服务。例如,如果某个业务需要搜索服务,我们会为他们提供一个搜索平台;希望使用日志收集功能的部门将提供此项服务。因此,如何搭建一个强大的系统平台显得尤为重要。为此,我们使用Mesos/Docker技术开发了ElasticsearchSAAS(ESAAS)平台。 ElasticsearchSAAS(ESAAS)平台在开发过程中遇到的最大难点以及如何解决?随后,笔者就此话题与马文老师进行了交流。在聊完相关技术话题后,马文老师在回答笔者提问时充分展现了研发工程师的严谨。他说话思维敏捷,逻辑清晰。除了技术交流,他并没有多说话。 马文先生表示,采用Mesos/Docker技术开发的ElasticsearchSAAS(ESAAS)平台是一个比较年轻的系统,2016年3月/4月刚刚上线,在构建这个系统的过程中,主要遇到三个问题. ***,在系统搭建初期,遇到了服务编排的问题,这也是大部分私有云服务的核心问题。主要问题是如何合理安排系统中的各个组成部分。遇到这个问题后,团队积极搜索了一些业界不错的开源结果。首先是指ES官方提供的服务ElasticsearchCloud,是基于ES的基础云服务平台。二是指亚马逊提供的基础云服务。另外,我们还根据公司的实际使用情况设计了系统,比如在开展这项业务之前,公司各个业务部门是如何使用ES服务的。 因此,在ElasticsearchSAAS(ESAAS)平台的开发过程中,我们主要参考了业界比较好的开源系统,结合公司内部的实际情况,进行了设计开发。 其次,服务上线后,后期开发维护过程中遇到的最大问题是私有云平台内部资源过热。所谓资源过热,是因为ElasticsearchSAAS(ESAAS)平台是一个资源池系统,所有资源都放到一个池子里就会出现这个问题。原因是我们提供的ES服务是基于集群的。各业务线向我们申请ES服务时,有时会出现资源堆积的情况。比如有些服务器由于Mesos调度,ES会比较集中。节点,它会导致几种情况发生。首先是一些服务器的磁盘已满,而另一些服务器的磁盘利用率不高。二是几个计算I/O比较大的集群集群在一起,导致这些服务器的I/O很高,其他服务器的利用率很低。 分三步解决资源过热问题。第一步是对整个平台的资源进行统计,统计磁盘的集群和I/O的集群,将统计结果进行汇总分析,进行可视化展示,这样就可以看出集群的哪一部分局部过热了。第二步是手动调整。根据第一步的显示结果,通过手动偏移调整过热点,平衡使用。通过逐步调整,会总结出一套规则和算法模型。第三步,根据人工调整的规律,将重复性的体力劳动转化为自动化。 马文先生表示,ElasticsearchSAAS(ESAAS)平台的开发已经进入第二步调整,总结了一些经验,接下来将进入第三步,将重复的体力劳动自动化。逐渐地,系统自动解决资源过热的情况,无需人工干预。他表示,目前系统已经覆盖了30+业务,系统上已经有50个集群,承载了公司大部分的ES服务。存储规模已达到200TB+数据存储容量。另外,私有云的建设模式已经在公司推广,其他部门也在效仿我们的私有云模式,建设其他一些相关的服务平台。 采访结束前,笔者向马文老师请教了WOT峰会的一些建议。马文先生表示,WOT不仅是技术交流的峰会,更是技术人共同成长的平台。在这个平台上,很多技术人才聚集在一起,一起分享,这不仅是我个人的,也是技术圈的。也促进了我个人的提升。他建议,我们应该增加一些线下的技术交流,促进技术人的共同成长。
