返回 登录
3

【SDCC讲师专访】专访架构师薛珂:弹性调度平台Saturn的架构设计

编者按:每个人的成长曲线不同,有的人在研究生之时就已有相当知名的产品和框架,从而在接下来的工作中一路顺风顺水,有的人却需要经历一个又一个的坑才能成长,不管是前者的聪明高效,还是后者的笨鸟先飞,他们都是在迈着脚步不断地向前。不妨,我们停下脚步看下一些同行,以激励自己更好地前行。CSDN与你相约SDCC 2017·深圳站讲师。

2017年6月10-11日,SDCC 2017将在创新之都深圳火热开启。据悉,唯品会基础架构部高级架构师薛珂将在SDCC 2017·深圳站之互联网应用架构实战峰会带来题为《日调度3000万次,任务调度系统Saturn的架构设计和演进历程》》的分享,更多峰会嘉宾和议题请点击这里

以下为专访正文:

图片描述

薛珂,互联网技术创业老兵,曾参与主导多个大型互联网产品的整体架构;2016加入唯品会,现为基础架构团队核心成员;兴趣集中在架构设计、分布式设计、任务调度、搜索引擎、优雅设计等领域;目前主导唯品会开源弹性调度平台Saturn的研发,推广以及开源社区的维护。

CSDN:请先和大家介绍下您和目前所从事的工作,以及关注哪些技术领域?

薛珂:我是个不安分的技术人,算是互联网技术老兵了,来唯品会之前有过几段创业经历,几乎折腾过各种主流的互联网产品,从网站门户到网游页游,再到社交,云和SAAS。目前专心服务于唯品会基础架构部,主导任务调度平台Saturn的架构演进和落地。近几年关注在分布式、高可用设计、优雅设计,兴趣点集中在任务调度、搜索引擎和微服务。

CSDN:你是如何走上技术这条路的?谈谈毕业工作这些年来在工作中的收获和体验。

薛珂:读书期间为了赚点生活费,跟同学合伙接外包项目,最初是接些小型网站,后来越做越大,读研期间还做过规模不小的棋牌类的游戏平台,收获不少流量。随着项目越做越多,规模越来越大,自己也越来越离不开技术领域,所以参加工作开始就一直在技术路上折腾。工作之后最大的体会是技术这条路要想走得好一定要实战、多练多想,光抱着书去啃通常是没有多大作用的,技术的提升都在一线实战过程中,要抱着怀疑一切的眼光去大胆猜测,小心求证。

CSDN:您曾在创业公司Gleasy担任CTO(《成立3年,企业用户2万+,移动办公蕴藏较大发展机遇》)而现在又回到了名企中担任架构师,您认为CTO和架构师角色的不同之处,及您对架构的理解,以及您对于架构师是如何定义的?他的能力,以及职责。

薛珂:担任CTO的那段经历对我来说非常重要,因为那段经历给了我极大的锻炼和成长,我从青涩的程序员成长为需要全面思考架构和技术路线的技术决策者。CTO和架构师角色很多地方是相通的,都要对技术负责,都要把握技术方向和整体规划。但CTO还承担着许多非技术类的职能,比如管理职能,而架构师更关注于纯技术问题的解决。在唯品会或者在大型的互联网公司,架构师在职能上也会稍作区分,根据关注的领域不同有业务架构、基础架构、系统架构等。

而作为一名合格的架构师,无论是何职能,首先有一点是共通的,那就是必须有全面和深入的技术底蕴,有大量一线实战的经验和开发经历,踩过不少坑,解决相当多的实际问题,而且通常是某一领域的技术专家。架构师承担着技术选型、方向决策、技术方案规划、实施策略制定等关键职能,是企业技术能力的体现者和发言人。

CSDN:知道您的技术从业经历很丰富,而现在很多技术人员在工作几年后往往会迷茫,是继续深耕技术还是走上管理的道路,对此您有什么建议?或者说技术人的出路在哪里?

薛珂:技术这条路其实并不是很好走,因为技术更新迭代太快。新的语言,新的开发框架每天都在被发明出来,新的组件和中间件也每天都在发布。连技术方向都在快速变化,前几年我们还在热烈讨论大数据落地,今年我们已经不得不去了解深度学习和人工智能。当你脱离技术两年后再回来,你会发现似乎整个世界己离你而去。处在这个形势下是很容易迷茫,也容易有危机感。但正是因为这种互联网速度,这种危机感,我们才可以非常有底气地畅想互联网行业的火爆前景。

我们技术人首先是要摆正态度、沉得下去、切忌浮躁,无论是什么样的新技术,最终必须是回归到落地这一关键步骤,能生存下去的技术一定是实用的、接地气的。因此我们只要选对行业,选好方向,踏踏实实地解决实际的问题,多想多做,适当地创新,将新技术适度地吸收,技术是可以稳步走下去的。但如果发现在工作岗位长时间原地踏步,无法提升,首先做的是换一份工作试试,而不是急着转型。

CSDN:弹性调度平台Saturn的架构是怎样的?解决了哪些问题及基于的场景是?

薛珂: Saturn使用使用Java语言开发、分布式的架构,使用ZooKeeper进行分布式协调的工作。它主要是为了解决大规模任务调度的相关的高可用、分片、配置和监控的问题。基于的场景是这样的:业务开发团队希望我们为业务开发者提供这样一个公共的任务调度接入平台,业务团队将业务逻辑封装成任务,发布到这个公共的平台,然后在这个平台进行任务的配置、资源的配置、任务的控制和管理、任务执行状态监控、异常任务展现和告警。业务团队不用关注资源的调度,任务的触发,分片的划分,以及高可用、负载均衡、超时控制等功能的实现。这个平台还要支持多种作业类型(Java、PHP、Shell、HTTP服务),以及支持多种触发规则(定时触发,消息触发)。另外业务团队还要求接入非常方便,开发任务非常简捷,版本升级简单,不会额外引入其它第三方依赖包。

CSDN:Saturn就是基于开源的Elastic Job,可否分享下其中的缘由和相关技术应用细节?

薛珂: Saturn研发之初始对比了业界各种可选的方案,比如Tbscheduler、SpringBatch、ElasticJob等。最后选择在Elastic Job的基础上进行二次开发,主要原因是基于几点考虑,一是ElasticJob比较新,无论从架构还是代码上面都比较主流;二是它是分布式的,支持分片;三是有个可配置的界面,符合我们对任务调度平台的基本要求。

Saturn从2016年1月开始研发,从1.0.0发展到现在的2.0.7,一共经历了13个版本;1.0.0到1.0.8主要是以使用ElasticJob为主,增加了内部系统的集成,比如认证、授权、告警等;从1.0.9开始基本上是进行了重构,主要原因是唯品会许多特定场景的要求ElasticJob无法满足,而我们如果要提供这些能力,涉及架构上的调整,因此从1.0.9开始,我们开始以ElasticJob为骨架,开始真正的自研,包括引入了独立的调度器,引进了动态平衡算法,引进了消息驱动型任务,以及dashboard,统一监控告警等一系列功能特性,到2.0.0版本以后,我们又引入了mesos和k8s的对接,真正支持通过saturn管理物理资源。

CSDN:对您目前所主要负责的事情来说,Saturn近期面对的最大挑战是什么?

薛珂: Saturn发展到现在已经基本上成熟,可以满足较大规模任务调度的接入使用。但是也面对着不少挑战,最主要的挑战在于海量任务的支持,当前Saturn在唯品会己接入2000多个任务,预计今年接入数量过万。随着任务规模的扩大,ZooKeeper会存在瓶颈,虽然可以通过多集群的方式来缓解单集群的接入压力,但带来的运维成本会大幅上升。

CSDN:您平时也活跃在开源社区,都参与了哪些开源工作?

薛珂:除Saturn之外,唯品会目前正在逐步开源更多的产品,包括基础架构部也在积极筹备开源我们自主研发的Jdbc连接池,以及Elastic Search的管理控制台。

CSDN:您现在是如何安排自己的新技术学习、研发团队管理、编程、生活等时间的?

薛珂:新技术学习是每天的必修课,抽半个小时时间来看看新东西,了解一下业界动向是必不可少的; 得益于唯品会良好的技术开发氛围和优秀的人才团队,研发团队管理占用时间大概20%左右;剩下大部分在公司的时间还是用在开发设计,写代码和线上问题分析上面。我一向崇尚劳逸结合,所以一定会保留一部分时间陪陪家人,散散步,看看书。

CSDN:您最期待在SDCC 2017·深圳站大会上看到哪些内容?

薛珂:最期待看到的是各个顶尖公司大牛的干货分享,无论是哪个领域的,只要干货满满,我都非常期待。


SDCC讲师专访系列:


SDCC 2017·深圳站之架构&大数据技术实战峰会将于2017年6月10-11日于深圳南山区中南海滨大酒店举行,集阿里、腾讯、百度、滴滴出行、Intel、微博、唯品会的资深架构师和一线实践者,纳知名研发案例,遇见苏宁云商大数据中心总监陈敏敏、Apache RocketMQ联合创始人冯嘉、饿了么大数据平台部总监毕洪宇等大牛。
票务火热,预购从速,团购立减1000元,更多嘉宾详细议题敬请关注大会官网和票务点击注册参会

评论