关于我 – 刘思贤的简历

个人信息

工作经历

爱油科技(大连)有限公司 (2015年9月 – 至今)

基于Spring Cloud微服务业务平台架构

作为一家成品油行业的B2B平台,爱油科技旗下产品油小二的主要使命是改善成品油流通环节,提高交易效率。我负责产品研发中心的业务系统架构设计工作,选择微服务架构风格来改造升级我们的交易系统。在技术选型中,我们选择了Spring Cloud作为微服务框架,以此为依托规划了支撑业务运转的Restful微服务体系,并主导完成了核心业务流转系统的开发工作。整个系统运行良好,经受了业务的考验。

主要技术
  • Spring Cloud作为微服务框架
  • Consul作为服务注册发现、分布式配置中心
  • Hystrix作为断路器、Ribbon提供客户端负载均衡
  • Docker镜像作为标准交付件
  • Rancher作为容器服务管理平台
  • ELK作为日志监控平台
主要成果
  • 目前已运行超过20个微服务实例
  • 系统承载完成业务交易额达上亿元
  • 系统与宜信、广发银行等平台完成对接
  • Dockone.io社区分享:爱油科技基于SpringCloud的微服务实践
  • 向Spring Cloud、Hystrix等项目贡献了代码

基于ReactNative的App架构设计

爱油科技是一家互联网+成品油行业的初创公司,依赖于业务系统改善传统的成品油流通。除了客户需要通过App使用我们的服务外,交易流程中人员参与众多,很多岗位长期出差也依赖手机办公,App需求巨大。为了尽可能地提高开发效率,我主导选用ReactNative技术栈作为我们App的开发框架,完成了一些重要的跨Android、iOS端组件的移植,并培训和指导Android、iOS工程师使用相同架构进行开发。

主要技术
  • ReactNative作为App框架,两端一套代码
  • Redux作为事件管理器
  • CodePush实现ReactNative热修复
  • 整合阿里云OSS实现客户端直传文件、阿里云推送、阿里云数据分析等
  • 使用阿里云移动数据分析、BugHD作为异常跟踪
  • NodeJS作为应用接入层服务器
  • 使用HTTP/2作为客户端-服务器通讯协议
主要成果
  • 上线油小二客户端iOS、Android版本,服务近万行业用户
  • 上线爱油口袋员工客户端iOS、Android版本
  • 上线小二加油客户端、小二加油司机端iOS、Android版本
  • 使用CI和Docker实现了Android版本的持续集成

基于Docker的服务化

为了支撑爱油科技的微服务架构,产品研发中心由我主导选用Docker作为微服务架构的统一交付和运行环境。由于Kubernetes复杂,团队短期内难以消化,Mesos和Rancher在当时经验有限,所以最初我们的Docker集群是通过Swarm + Shipyard进行管理的,服务通过Docker Compose进行管理,后期对Rancher进行充分的实验后,将Docker平台迁移至Rancher上。Docker集群节点一部分是自建主机、一部分是阿里云ECS。

主要技术
  • Docker作为标准运行时环境
  • Rancher作为容器调度管理平台
  • 阿里云服务(ECS、RDS、MNS、OSS等)解决基础设施问题
  • 使用Gitlab CI自动构建发布镜像
  • Docker + Rsyslog + ELK统一收集集群日志
  • 通过IPSec站到站服务实现了阿里云VPC、自建主机、开发网络互联互通
主要成果
  • 以较低的成本实现了服务的容器化
  • 大大缩减了发布周期,交付了更多价值

DevOps实施:开发、测试、发布一体化实践

作为微服务架构风格中最重要的一环,实施DevOps不可或缺,否则难以满足每天数十次交付。我主导了使用自建Gitlab作为代码管理和协作平台、Gitlab CI完成自动构建和发布。每次提交后均能自动构建和测试,特定分支可以自动发布到QA环境等。使用Rancher可以快速搭建若干彼此独立的环境,便于开发和测试使用。

主要技术
  • Git、Gitlab,上游版本库使用Gitflow
  • Gitlab CI + Docker进行持续集成,环境可控,扩容方便,多任务运行互不干扰
  • 自建Docker Registry,构建交付件为镜像,自动推送到Registry中
主要成果
  • 提高了代码质量,缩减了发布周期
  • 运维自动化,提高了可靠性,节约了成本

微梦创科(中国)有限公司(2015年5月 – 2015年9月)

微博运动

参与了微博运动相关服务器功能的研发,主要包括计步活动、排行榜、勋章系统等。勋章系统服务器端是由我主要设计的,利用过滤器和策略模式为勋章提供更大的灵活性;把数据访问从原有逻辑代码中剥离,使逻辑更加容易维护。除此之外还为微博运动开发了定时推送等功能。

主要技术
  • PHP + Yaf框架
  • Redis作为数据存储
  • Yar提供RPC调用服务
主要成果
  • 微博运动服务了数千万用户
  • 勋章系统扩展性好,上线新的勋章规则仅需新增配表

微博移动应用服务升级改造

微博移动应用服务是微博App接入层服务,负责处理客户端请求,承载了微博70%的访问流量,核心接口每日数十亿调量。我参与下一代接入层服务的前期预研工作,主要目标是削减冗余代码,提高可维护性,引入单元测试,并进一步提高吞吐量。

主要技术
  • PHP + Yaf框架
  • 使用Composer作为PHP包管理
  • 引入PSR系列规范
  • 使用PHPUnit、Mockery进行单元测试
  • 使用XHProf进行性能分析
主要成果
  • 抽象原来高耦合的Curl请求模块,准从PSR-7规范实现
  • 实践了TDD,先设计接口,再创建测试用例,最后编码实现

Yar RPC框架的Java客户端

某业务合作方使用Java服务器,需要调用微博移动应用服务。配合联调期间从C语言移植了一个Java的Yar RPC Client,并在Github上开源。

主要技术
  • 基于Apache HttpClient作为通讯框架
  • Jackson、MessagePack等作为报文编解码
主要成果

大连元著信息技术有限公司(2014年3月 – 2015年4月)

房淘网——房产特卖平台

房淘网是一个房地产特卖平台,以优惠抢购和特卖拍卖等形式进行房产销售。我作为技术经理从零开始完成了团队组建、技术选型、早期原型开发以及后期迭代升级。产品主要包括H5、PC网站和相关业务系统等部分,使用PHP的Symfony框架进行开发。

主要技术
  • 采用Symfony框架,包含了依赖注入、ORM、事件驱动的支持,类似Spring MVC + Hibernate
  • 使用Redis作为缓存、分布式锁和队列等
  • 使用FSM管理订单状态
主要成果
  • 实现了优惠抢购、经纪人派单系统、拍卖系统、二手房信息系统等
  • 全站支持分城市子站,分城市分级的权限管理
  • 实现了购房订单业务业务处理工作流,使用FSM管理订单状态,逻辑清晰扩展性好
  • 使用Redis实现了分布式的计划任务延迟队列,支持一定时、周期定时和CRON,支持自动重试
  • PC端、H5端引入前端工作流,使用Ant自动打包优化,后迁移至Grunt
  • 尝试使用Docker发布项目
  • 产品研发团队形成了良好的工程师文化,绩效佳成长快,项目解散后均入职一线互联网公司

大连金山互动娱乐科技有限公司(2012年2月 – 2014年3月)

游戏运营平台项目

大连金山(现为西山居大连研发中心)是一家游戏公司,运营多款端游手游,我担任运营部研发工程师。游戏需要与其他平台联合进行活动、进行游戏内物品发放、调整参数和响应玩家投诉等,我主导了游戏运营平台的研发任务。游戏服务器是C++系统,系统之间使用专有协议通讯,难以和Web系统、第三方平台对接,因此选择Java实现了游戏运营服务,通过专有二进制协议与游戏服务器通讯,暴露WebService接口给Web系统和第三方平台使用。为了进行运营操作,设计了一个支持工作流的游戏运营管理系统,来支持运营操作的计划、审批和执行。系统的难点在于既要保证足够安全,又要有足够的吞吐量。

主要技术
  • Spring MVC、MyBatis等做基础框架
  • MINA实现通过专有二进制协议与游戏服务器通讯
  • 使用Activiti实现工作流管理和审批
  • WebService接口采用双向证书认证保证通讯安全
主要成果
  • 将原来错综复杂的接口调用统一收口到游戏WebService服务中,可靠性大大提高
  • 运营活动从邮件审批运维执行升级为工作流审批自动执行,降低了人工出错的可能性
  • 游戏运营平台接入了多款在营游戏,业务方反馈良好

游戏大数据分析平台项目

担任运营开发工程师期间还承担了一些游戏数据分析数据挖掘的工作。在与数据分析师沟通时发现,数据分析工作是通过MySQL只读备库直接查询得出结果,由于每月产生数十亿条数据,通常查询需要运行数十小时才能返回结果,我提出了使用Hadoop集群处理游戏行为日志进行分析报表的方案,并主导了大数据分析平台的建设。

主要技术
  • 使用Hadoop、Hive等构建了大数据分析平台
  • 使用ActiveMQ作消息队列收集行为信息
  • 使用Spring MVC、MyBatis、Highcharts开发了数据展示系统
主要成果
  • 大数据分析平台有效支撑了运营数据分析的工作,查询分析耗时从数十小时缩减至数十分钟
  • 从零开始积累了一整套行为日志收集、投递、存储和分析的实践
  • 这些积累后来成为了后来成立的大数据平台部的基石

开源作品

发起的开源项目

贡献的开源项目

技术文章

翻译文章

技术分享

教育及培训经历

大连东软信息学院(2009年9月 – 2012年6月)

全日制统招专科 / 计算机科学与技术 / 软件技术

在校荣誉

  • “国信蓝点杯”第二届全国软件专业人才设计与开发大赛一等奖(2011年)
  • 第二届中国大学生服务外包创新应用大赛二等奖 (2011年)
  • 国家奖学金、辽宁省政府奖学金、ALPS奖学金(2010年、2011年)
  • 辽宁省优秀毕业生(2012年)

光环国际(2013年9月-2014年3月)

项目管理培训 / 项目管理专业人士资格认证(PMP)

专业证书

  • 项目管理专业人士资格认证(PMP)
  • 辽宁省系统架构师
  • 辽宁省系统分析师
  • 软件设计师
  • 大学英语六级

技能关键字

  • Java, Spring, MyBatis, Hibernate, RxJava, Vert.x
  • PHP, Composer, Symfony
  • Javascript, NodeJS, Express, Gulp, Webpack, React, Redux
  • MySQL, PostgreSQL, Redis, Memcache, MongoDB, Hadoop, Hive
  • C#, .NET MVC, Entity Framework
  • Android, Objective-C
  • Golang
  • DevOps, Git, Gitflow, CI, Docker, ELK
  • UML, 设计模式, 微服务, DDD, CQRS, 项目管理, 敏捷
  • 阿里云, VPC, OSS, CDN, RDS, MNS, MaxCompute

关于我 – 刘思贤的简历》上有18条评论

  1. 阿杜

    你好 大哥 有兴看到 您在google github上面发布的a-simple-php-mvc-framework框架 clone下来看了下 非常喜欢就是运行了下跑不起来我本地是php5.4的版本,不知道是否可以给我一份文档或者一个稳定版本跑跑试试,对您的框架很感兴趣谢谢!可以加我qq:39412433 讨论,平时不太上微博 不好意思!

  2. 阿杜

    恩一直在关注您的框架,自已也测了下,感觉 代码很舒服,写的也很简洁,继续关注,期待您发布第一个稳定版本。最近也一直想用一个非常简单的框架,大哥的框架,让我感觉很舒服 呵呵。我也一直从事webgame开发,目前在使用nodejs,php的libevent模块。以前框架用多了突然想用一个简单明了的代码框架,这次真的很有缘。希望一直保持交流!

  3. 阿杜

    可以的不过主要是最近没时间,很多游戏的事情要处理,而且主要怕自己的设计思路有点和大哥的不同,所以暂时以跟踪您的项目为主 呵呵,到时候我会参与进来 一起 操作的!

  4. 阿杜

    昨天看了下,发现model这块还没完善,其实这块也比较核心,建议可以参考下tablegetway的方式,可能之前使用国内的fleaphp时间长了,感觉操作起来还是很方便的呵呵,还有 view的 vender 也可以使用php自身作为模板语言。以前直接在在controller里面使用
    $this->var = ‘xxx’ 这种 在view里面 直接获取 $this->var,这部分 我看了下 现在是使用view的类似assign作为一个堆栈存储,使用的时候感觉并非很方便,当然是我个人意见,从实现的角度来说都差不多,无伤大雅。都是个人意见,希望不要影响到您的开发。

  5. starlight36 文章作者

    Model这部分设计的的确是有些简单了,只是还没想好怎样才能更方便的开发。有一个思路是增加一个可配的表单层,可以直接将表单传入到后端的数据库访问对象中。默认的模板引擎phtml就是PHP自身语法的,感觉比Smarty效率高,并且写起来其实没有那么可怕 😆 。view中没法直接取得controller的值,是因为controller层和view层之间解耦合导致的,所以用了一个类似值栈的东西存储控制器发给视图的数据。个人感觉,$this->var = ‘xxx’ 这种方式总觉的传值方式太隐晦了,不利于代码走查,这个框架的思路也算是把PHP的灵活度降低一些,让团队开发的时候能更规范。开源项目嘛,大家参与才能有发展~ 😉

  6. 啊杜

    今天down了下你的oa system 可以提供一个db库吗 我想配置好看下 多谢了 呵呵!

  7. 小鱼儿

    框架为什么不更新了呢,我想用用,搜了几个框架,觉得你的比较与时俱进

评论已关闭。