【编者的话】Mesos往往以其在大规模生产环境下的成熟案例为大家所熟知。但其实Mesos对于互联网初创企业也是非常有用的。最显著的一点:如果从一开始就使用基于Mesos的云操作系统,就可以让一套IT架构来支撑业务在不同阶段的飞速发展。并让技术人员更关注业务,而不是把精力花在服务器配置上。借用Rahman的一句话,"只要大家拥有一台以上的服务器,都有理由来尝试云操作系统。"
初创公司Mattermark采用Mesos技术
Mattermark是一家专门面向私营企业交付数据的高人气初创企业。作为初创公司,其IT基础设施规模还是相对较小的。不过正是凭借着这种初创特质,其也得以顺利摆脱了众多规模更大且更为成熟的企业所难以解决的运营效率低下难题。与众多大型企业一样,Mattermark公司同样使用Apache Mesos以及Marathon框架来解决自身面对的独特问题。
这家诞生刚刚两年的年轻公司,仅仅运行着一些Amazon Web Services实例,存储着GB级别大小的数据,却认为他们的IT架构已经变得不可为继,会在不远的将来影响业务的发展。在这方面,最突出的实际难题就是数据处理任务,特别是Mattermark在日常运营当中不可避免的大量数据挖掘、机器学习以及索引工作——过去,这些工作一直在以缺乏充分理论指导的随意方式进行。
“我们拥有大量运行着重要工作内容的EC2实例,但没人了解其具体运行机制,”Mattermark公司机器学习工程师Samiur Rahman解释称。“这确实非常麻烦。”
该公司的管理层意识到,要想真正为各私营企业客户提供可靠的数据源,必须要对现有运营机制进行整顿。“我们很清楚,未来的一到两年内公司规模会出现持续扩张,”Rahman表示。“所以我们要么继续安于现有环境并不断加以构建,要么就像其它企业那样全盘淘汰现有设施并直接向现代基础设施转移。”
利用Mesos进行基础设施调度
Mattermark公司在几个月之前决定利用Mesos对自身基础设施进行重新设计,而且同时针对新系统提供了几项必须能够实现的特殊要求:
需要在开发人员与公司AWS实例之间建立一套抽象层。能够将任务分发至不同的AWS实例当中。能够根据特定任务的实际需要为其分配对应资源。面向任务调度实现高度细化的控制机制。对资源进行隔离以避免相邻实例争夺资源的问题。
该公司目前在Mesos之上运行有Chronos与Marathon,而此举已经带来了理想的回报。Mattermark公司如今能够以受控方式对批量任务进行调度,同时以智能化方式将不同类型的任务运行在同一资源池中,从而提高AWS的资源利用率。举例来讲,其能够将多个低资源型网页获取任务与其它内存与CPU使用率较高的机器学习任务运行在同一个实例当中。
“能够切实完成此类资源分配(即允许这些工作负载在同一资源之上共存)的解决方案非常重要,”Rahman指出。如此一来,Mattermark公司不仅能够通过一套可靠的方式实现任务流程自动化,同时也能够在工作效果不变的前提下减少AWS实例使用量并由此降低使用成本。
相较于以往的服务器监控最佳实践,即企业需要从起始阶段就要考虑到资源占用率趋近100%时的应对措施,“我们的监控机制有所不同,因为如今80%到90%才是理想的资源利用率,”他解释道。“这意味着我们能够更加充分地利用已有资源。”
尽管Mattermark公司目前仍有一部分工作负载运行在由Elastic Load Balancer支持的AWS裸机实例当中(即非Mesos工作节点),但Rahman强调称那些需要高可用性保障的任务已经运行在Mesos-Marathon环境之内。随着Mattermark公司不断推出新的工作负载与任务类型,其也将全部由新系统负责承载。
“我们致力于让各类工作负载与任务运行在Mesos当中,”他指出。而且由于Mattermark公司已经开始广泛利用预配置Docker容器作为应用程序运行环境,其目前能够以相对简单的方式完成各类进程由纯AWS实例迁移至运行在AWS实例之上的Mesos集群中的工作。
以“积极态度”迎接大数据挑战
不过就Mattermark公司的情况而言,Mesos的真正价值在于允许其保持基础设施规模与业务发展同步扩张——反之亦然。换言之,让IT资源随着业务的发展而平滑增加,这样既不会让IT架构成为业务发展的瓶颈,也不会因需要预留大量IT资源而造成浪费。
尽管目前规模仅为150 GB的MySQL数据库很难被定义为“大数据”,但Rahman表示Mattermark公司计划在未来几年当中对其规模进行显著拓展。而其中最突出的理由就是,Mattermark公司的从业时间越长,其需要在数据库内为每家企业客户保存的数据量也就越大。
但从更具战略意义的角度出发,Mattermark公司希望能够将其数据库涵盖能力由100万家企业扩展到全球范围内的数亿家企业。随着企业客户数量的增长,其当然也希望为每位客户提供更加丰富的数据类型——包括员工数量、网站流量、融资信息、相关新闻以及社交媒体关注度等等。
“我们的业务规模取决于我们实现数据更新的速度以及将更多企业客户纳入数据库的能力,”Rahman指出。
在他看来,Mesos能够从多个角度带来助益,使得Mattermark公司更为轻松地引入各类必要的新型数据处理技术,包括Kafka以及Spark等,并在运行大规模处理任务时快速添加对应容量。总而言之,该公司在基础设施与任务之间的契合度方面投入的精力越少,那么其专注于在正确时间对正确数据进行访问、分析以及交付的能力也就越强。
“我们希望运营体系能够时刻为规模伸缩做好准备,从而帮助我们获取更多数据并从其中发掘出更多有价值信息,”Rahman表示。“另外,我们也希望能够继续保持向客户交付数据的速度。”
初创公司也要勇于尝试Mesos或数据中心操作系统
着眼于未来,Rahman表示他希望看到Mattermark公司将运营体系由开源Mesos迁移至Mesosphere数据中心操作系统(国内的朋友可以选择数人云哦),这在很大程度上意味着摆脱软件组件更新以及漏洞修复等工作带来的困扰。尽管目前尚在对DCOS的Early Access版本进行早期实验,但他已经可以在30分钟之内设置起一套以往通常需要数个星期才能搭建完成的系统。
“初创企业应该了解DCOS,因为它能够让运营工作变得更为轻松,”他解释称。另外,初创企业不必因为的自己运营规模并不像Yelp、苹果或者是Twitter那么庞大,而害怕尝试DCOS或者是开源Mesos组件。
“Mesos天然具备的开发者自由空间与良好运营效率让我们从系统重新设计当中获得了切实回报,”Rahman总结称。“只要大家拥有一台以上的服务器,都有理由在这方面做出尝试。”
原文链接:http://blog.dataman-inc.com/20151112-startup-use-mesos/