去哪儿网马文: ESAAS平台技术开发实战-阿里云开发者社区

开发者社区> 玄学酱> 正文

去哪儿网马文: 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不光是技术交流的峰会,更多的是一个平台,技术人共同成长的平台。在这个平台上,有很多技术牛人聚集在一起,在一起分享,不仅对于我个人,对于技术圈都有推动作用。对我个人的提高也有推动。他建议我们应该多增加一些线下的技术交流,以推动技术人的共同成长。





作者:ZC
来源:51CTO

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《大数据存储:MongoDB实战指南》一导读
多年来,我一直在和数据库存储技术打交道,深知数据存储技术在整个IT系统中起着至关重要的作用,尤其是随着云计算时代的到来,所有企业都面临着海量的数据信息,如何处理这些数据成为当前研究的热点。在过去二十几年中,数据的存储是关系数据库的天下,它以高效、稳定、支持事务的优势几乎统治了整个行业的存储业务;但是随着互联网的发展,许多新兴产业如社交网络、微博、数据挖掘等业务快速增长,数据规模变得越来越庞大,高效存储、检索、分析这些海量的数据,关系数据库变得不再适用。
1807 0
React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了
作者:Parry 出处:http://www.cnblogs.com/parry/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
882 0
菜鸟学Windows Phone 8开发(4)——设置应用程序样式
原文 菜鸟学Windows Phone 8开发(4)——设置应用程序样式 本系列文章来源MSDN的 面向完全新手的 Windows Phone 8 开发  本文地址:http://channel9.
898 0
测试开发是什么?为什么现在那么多公司都要招聘测试开发?
测试开发是什么?为什么现在那么多公司都要招聘测试开发?
201 0
Apache Mina开发手册之二
Apache Mina开发手册之二 四、NIO概述 NIO API是Java 1.4版引入的,NIO的意思是非阻塞的I/O通信。 要知道Mina的NIO是基于NIO-1开发的,而在JDK 7中引入了NIO-2的库,但Mina还没有从NIO-2中获得各方面的提升,因此Mina还是基于NIO-1的。
913 0
物联网平台开发浅析和实战(一)
物联网平台使用教程,包括设备接入,以及消息通信。
5113 0
Apache Mina开发手册
Apache Mina开发手册 一、介绍 Apache Mina是一个网络应用框架,简化用户开发高性能、高可扩展性的网络应用程序的难度。Mina提供了一个抽象的事件驱动的异步API,通过Java NIO实现各种传输协议如TCP/IP和UDP/IP。
1029 0
HaaS100开发调试系列 之 定位AliOS Things内存及Crash问题
本文主要说开发调试过程中经常遇到的内存问题。
87 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
20710
文章
438
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载