每日归档: 2018年4月20日

再见锦江

大约2006年11月的时候,我加入了锦江德尔互动这家公司,这家公司还有个名字就是HUBS1,当时是锦江和美国德尔的合资公司,做的事情是为锦江搭建酒店中央预订系统(CRS)。我之所以加入这家公司,是我以前公司的上级Tiger在这里做技术总监,而我当时刚从掌上灵通出来,想创业但没太明确的方向,Tiger说反正你也没事,这个公司刚成立时间不长,而且技术相对薄弱,你过来做架构师,把技术好好整一下,当时我29岁,做互联网也已经有7年了,经历过1999-2000的第一波互联网浪潮,也经过了网易和掌上灵通的历练,技术正是纯熟的时候,虽然在掌上灵通我已经是研发经理,而到这边一个人也不管,但我觉得做技术还是比较纯粹,所以没太犹豫就加入了这家公司。

我之前的经历都是纯互联网公司,和传统行业离的比较远,而这家公司却是一个以传统酒店业务为核心的技术公司,进入这公司后我就开始学习业务,同时开始了解技术体系,说实话这家公司的技术也确实薄弱,很多事情都是从头开始。我刚进公司就发生一件事,当时负责IT运维的经理对在Linux下装Qmail头疼不已,可能是之前都是用Windows系统的缘故,而对我从2000年开始玩Linux的人来说没什么难度,1天时间就把Qmail搞定了,运维经理瞬间喜笑颜开。

HUBS1最早的系统是买的Genares(目前已被Sabre收购),基于这套系统开始运营,Genares系统给我们最大的作用就是标准,是国际上通行的酒店分销业务标准,当时Genares就跑在一台Linux服务器上,MySQL的数据库。我们的目标就是要参考这套标准,研发自己的CRS系统,我们选择J2EE技术体系和Oracle数据库,内部系统代号叫FOG,也就是Future Of GDS。2006年到2007年Java技术体系比现在简单,但Spring、Struts、Hibernate或iBATIS已经在被使用,而对于我,除了Spring、Struts、Hibernate/iBATIS,我要搭建的是一套SOA架构的系统,SOA在当时技术领域也是刚开始流行,而我也并非为用而用,是要做到真正意义的系统分层和前后分离,我们采用了SOAP协议的Web Service,逐渐将应用服务化。到2009年的时候,Restful的服务开始出现,我们将一些服务开始进行Restful化,用简单的HTTP协议和Json数据格式,服务慢慢轻量化。

酒店数据具有三维性,即除了价格库存之外,还有一个时间纬度,由此引发数据量的大量增长,为了应对数据挑战,我进行了数据库表分区,在应用层面引入MQ、Memcached等提高性能。底层应用方面,公司的所有Linux服务器基本都是我安装配置的,包括内核优化、防火墙、应用服务器、负载均衡、Oracle等等,有时候对着SecureCRT就是一整天,我基本上可以顶一个SA和半个DBA。服务器装好后,和运维的同事一起搬到机房,亲手放上机柜插上网线。

随着研发的深入,我对酒店业务也不断的学习与理解,从酒店、房型、计划,到AIR,再到RateCode规则、衍生价,潜移默化中业务思想逐步融入架构中。

从2007年到2009年,FOG经过了3个大版本的升级,终于完成了SOA的体系化建设,一张完整的架构图成型。FOG拥有完全的自主知识产权,成为锦江的CRS系统,命名为JREZ。我对这个系统太熟悉了,几乎没有解决不了的问题,有时针对故障,几分钟内就能判断出问题出在哪里。我在这3年多里几乎没有休过年假,半夜被电话叫醒,起来解决问题也时有发生,节假日出去也是带着笔记本电脑和上网卡,可以随时解决问题。


(2007年在HUBS1)

2008年汶川地震,Tiger以极强的社会责任感奔赴震区,抗震救灾,但回来后没多久就辞职了,团队还是要正常运转,很多时候大家遇到事情就来和我商量,等到2009年的时候,公司决定让我来做技术总监,我开始带着这个40多人的团队继续前行。

2009年下半年,FOG已经成型,接下来只要继续演进就行了,这时候我曾经在掌上灵通时的领导来找我,想让我和他一起创业,创业是我一直的愿望,所以在2010年初,我选择去创业。

2010-2013年,我经历了艰难的3年创业,这3年中,技术也发生了很多变化,一个是云计算,一个是移动化。在HUBS1时我还未对操作系统做虚拟化,但到了2012年已经基本上开始使用云服务了,不要再自己买服务器,也不要自己安装操作系统了。移动方面,我开始用Objective-C写iOS程序,并把应用上架到App Store。移动互联网时代已经势不可挡的到来了。

2010年的下半年,HUBS1的副总裁包总找我,说准备筹办锦江电商,他将出任CEO,问我愿不愿来负责技术团队,我当时创业刚刚开始,确实无法加入,但我对包总说,锦江成立电商,整合资源,面向在线,是个好事,有任何技术上的问题需要我的,我一定会帮忙。后来我参加了电商的选型评审会,电商将采用毕博+Oracle做咨询顾问,构建业务和技术体系。

2013年5月份的时候,我从创业公司离开,一方面反思创业,一方面在寻找新的方向,包总知道我创业结束,就和我说,还是希望大家能一起共事,我对锦江了解,而且电商当时的CIO超群要去创业,我可以来接手技术团队。出于对包总的信任,以及对锦江酒店这套体系的了解,我决定加入锦江电商,负责信息技术。

锦江电商的技术基础非常好,软件方面,采用了Oracle的整套应用体系,硬件方面,采用了刀片服务器、硬件负载均衡、独立存储等高性能设备,并基于虚拟化技术构建了私有云,在研发方面,由ThoughtWorks培训并搭建了整套Scrum敏捷研发体系,系统应用也都是面向服务的Restful架构,总的来说,整个技术的起点很高。

我2013年7月入职,整个下半年,我都在熟悉这个体系,了解每个开发人员,与超群做好衔接。电商的技术团队分四块,即网站平台、会员、移动和IT基础运维。网站平台团队一方面负责锦江官网开发,另一方面也是提供各业务的基础服务,会员团队负责Oracle Siebel CRM的开发运行和BI,移动团队负责“锦江旅行家”APP研发,IT基础运维团队负责服务器、网络、数据库的运维。网站平台、移动、IT运维对我都没太多难度,Scrum敏捷开发我在创业的时候也已经实践过,对我稍有挑战的是Siebel,Siebel是强大的CRM工具,我们也只用到了Siebel的部分模块,Siebel管理着上千万的会员数据,并基于各业务线的交易数据,为会员计算积分,Siebel的积分引擎非常强大,几乎可以满足各维度的积分规则。经过半年时间的熟悉,我已经对整套体系有了深入的了解和掌握。

2014年,除了进行各业务条线的开发,我着手建立大数据团队,其实在2013年底的时候,我和超群就开始调研大数据,14年春节过后超群离职,组建大数据团队的事情,只有我来执行了。会员团队本身就有BI的职能,他们也是大数据的积极推进者,所以我们的大数据团队就是基于会员团队来组建,技术上采用Hadoop+Spark的组合,在业务方面,我给大数据团队提出了三个方向,1、促进营销;2、提升用户体验;3、为管理提供工具,具体来说,促进营销是通过大数据让营销更精准,提升用户体验是通过大数据为用户画像,并把信息反馈回前端系统,为不同的用户提供不同的服务,为管理提供工具是通过大数据的分析,形成数据面板、预测和收益管理等类型的工具。到2014年底,大数据团队完成了第一版的智能推荐,做到了在锦江旅游网站上向用户智能推荐旅游产品,并为会员打上了100多个标签,后续还完成了EDM的智能推荐,即发给每个用户的EDM内容是不同的。


(2014年8月,上海市长杨雄考察调研锦江,电商会员团队准备大数据成果演示)

移动团队负责锦江旅行家APP的整体开发和运营,这个模式激发出了移动团队的活力,同时在移动互联网的大潮下,在2013年APP发展迅速,但锦江旅行家APP一直面临一个问题,就是锦江之星有独立的APP,并通过其自有渠道推广,锦江之星APP的体量要比锦江旅行家APP大很多,两个APP在市场上会有一种莫名的“竞争”关系,对用户也会有困扰,所以在2014年,锦江旅行家APP就改版为锦江礼享APP了(锦江礼享是锦江会员俱乐部的名称),突出会员的性质,在市场上与锦江之星APP有所差异化。改版之后的APP,产量仍然没有特别明显的提高,我深知移动的重要性,但移动之路还是很艰难。

2015年是最考验的一年,也是最辛苦的一年。电商虽然管理着锦江会员,但是由于历史的原因,锦江之星也有一套会员数据,为了保证会员数据的一致性,我们和锦江之星一直采用会员数据双向同步的方式,但数据同步会出现很多问题,大量的运维工作因此而生,在双方的推动下,决定将锦江之星的会员数据全部合并到电商的Siebel系统,以后由Siebel统一提供会员系统及服务,同时将锦江之星官网也合并进入锦江官网,并开发锦江都城品牌的APP,这三个项目都由我来牵头,并计划在年中时上线。这三个项目同时进行,并且互相关联,特别对于会员,要满足锦江之星原有所有业务的需求,而且就在这个时候,负责会员的研发经理怀孕休产假,我只能承担所有的事情。会员整合的难度要远远大于我们的想象,我只能面对一个个出现的问题去解决,不断的和锦江之星的各个相关部门沟通协调,整个团队也是不停的加班,我极度紧张,出现血压高,无法入睡,半夜去医院的情况。项目上线后,有部分系统仍然不稳定,出现故障后恢复时间长,影响锦江之星正常业务操作,我们的压力极大,但也只能坚持,排查问题,寻找原因。到下半年,整个系统逐步稳定起来,各种问题都在减少,锦江的会员数据终于统一,并在业务上实现了锦江统一的大会员体系,锦江官网也包含了高星级和经济型各酒店品牌的预订,以及锦江旅游、租车、会员等业务,锦江都城APP可以覆盖锦江之星APP的所有功能,为以后APP整和做好了准备。2015年整个团队得到了极大的锻炼,留下来的人都成为了团队的骨干,并且他们都会怀念这段时光,虽然辛苦,但每个人都感觉到了自身快速的提高。

(2015年整合项目时周末加班)


(庆祝项目上线的蛋糕–“同志们辛苦啦!”)

2016年的发生了太多变化,先是公司内部调整,把产品部门从业务部门划出来,形成一个比较独立的部门,这个改变起到了不错的效果,但为了平衡,大数据团队转到了业务部门。移动团队一直是我最重点培养的团队,上半年我和移动团队策划了一个活动,就是从PC端向移动端倒流,整个活动持续2个月,效果非常明显,移动端的产量逐渐超过PC端,但整个互联网的环境是PC逐渐萎缩的,移动虽然有潜力,但电商能发挥的太有限。

在2015年整合项目的时候,我逐渐感觉到Oracle的这套技术体系过“重”,非常不灵活,所以就开始寻找能让技术体系变“轻”而且能自动化的解决方案,非常巧遇到了一支从Google出来的创业团队,做基于Kubernetes的Docker集群,我们就选择了这个技术方向,并将超过95%的应用,都迁移到了Kubernetes的Docker集群上,整个开发及运维管理的效率得到了极大的提高,应用发布时间从之前的小时级提高到了分钟级,而且发布都是自动化的。就在最近的2018年3月,Kubernetes 1.10的官方发布稿里,我们锦江电商的Kubernetes应用实践与华为的内部IT应用一起被写为案例。


(Kubernetes 1.10版本2018年3月官方发布稿)

接下来,集团决定成立WeHotel,即先合并电商和HUBS1两个公司,之后是逐步和铂涛互联网合并,公司领导以及组织结构都发生了巨变。我们也接到一个任务,就是将原来锦江之星APP、锦江礼享APP、锦江都城APP整合成为一个锦江旅行APP,APP的开发就由我们的移动团队来完成,其实我们整个团队一直有这样的愿望,希望能做一款代表锦江品牌的APP,为此,我们已经积累了多年。在APP开发的同时,我安排基础架构组和酒店开发组,重写了酒店搜索引擎,着重性能优化,Kubernetes的使用,可以使后端服务伸缩部署,灵活对应流量的变化,我给IT运维的要求是APP服务端接口要达到500QPS以上的处理能力。经过4个月的不懈努力,一款覆盖锦江23个品牌,约5000家酒店,百余个旅游产品的全新APP–锦江旅行,在2016年12月10日正式上线,并在接下来的1年多时间里,稳定运行。这款APP汇集了我们整个团队所有人的心血、努力和这么多年来的梦想。


(集团报介绍锦江旅行APP上线的专版)

在2016年下半年,随着整合的深入,公司决定将锦江的会员和铂涛的会员合并,为此我带着会员团队,深入调研两个会员系统,基于2015年会员整合的经验,制定了完整的会员整合方案和实施步骤,但公司的决定是将锦江的会员合并入铂涛,这也就意味着电商的会员团队即将解散,Siebel系统将被停用,虽然大家都不情愿,但还是配合顺利将会员数据迁移到了铂涛,一个亿级数量的会员俱乐部形成。

2017年,公司安排我不再管理酒店、会员、移动的技术团队,让我负责旅游业务,我带着一个20人左右的团队,重新开始,构建全新的旅游自由行产品Saas平台,4月立项,6月上线,7月试运行,8月正式投入生产,到2017年底,已经可以使锦江旅游国内自由行部的日常事务与业务拓展的工作比例从7:3转变为3:7,系统的使用使他们极大的提高了工作效率,可以有更多的精力去拓展业务,锦江旅游还计划在2018年基于我们的系统促进他们更大的业务转型。

时间到了2018年,我突然感觉到心力的疲惫,几个公司整合带来的文化冲突,以及我们曾经推崇的价值观,在一点点的消失殆尽,我想我需要离开了。

回望在锦江系工作的前前后后8年时间,我在技术上主导或参与了CRS、网站、会员、移动、大数据、旅游的一些列系统建设,也看到了这个中国最大的酒店旅游集团的变化。但对于我,比系统建设更重要的,是对于人的培养,一批优秀的技术人员在磨练中成长,逐渐的成为了可以独当一面的栋梁之才。


(长乐路400号5楼的走廊)

很怀念和大家一起奋斗的日子,很怀念通宵加班后看到的上海的早晨,很怀念一直支持我的同事、兄弟、姐妹,大家后会有期。