InfoQ

InfoQ

文章

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

凡客诚品架构总监栾义来的年度展望

作者 栾义来 发布于 2010年4月1日

领域
企业架构,
运维 & 基础架构,
架构 & 设计,
语言 & 开发
主题
SOA平台 ,
SOA ,
数据访问 ,
架构 ,
企业架构 ,
服务设计 ,
数据库 ,
领域建模

尝试渐进式的SOA

2009年是VANCL业务激增的一年,也是技术平台向SOA转型的一年。在推进SOA的过程中,首先需要理解的就是SOA不是一个技术问题,是个业务系统规划问题,必须由业务专家而不是技术专家完成。SOA治理是梳理和解决公司整体业务层面和IT系统的对齐问题,目前在国内还很少有公司能够充分认识和做到。更务实的还是由IT部门牵头与各业务部门产品专家在业务流程视图的指导下,按照业务自治原则进行子系统划分,以确定各子系统的自治域范围以及服务和数据契约。比如确定订单生命周期中的各种对订单操作的Service,是都归入订单系统下还是允许某些可以归入其他系统?

在由传统模型向SOA演进的初期,技术团队会面临很多问题。首先就是分布式事务问题,由于还没有像支付宝公司那样研发一套自有的分布式事务方案,目前我们允许Service可以按照DLL部署到其他系统中,这也是一种无奈的平衡。初期对于SOA模式的不适应导致我们的开发周期过长,并且还需要在传统系统上完成大量的业务需求,所以我们的原则是仅对有业务改进需求的系统进行渐进式的SOA化,完成一个部署一个,而不是单独组建SOA团队进行新旧系统并行开发。

升级分布式数据访问层

去年我们构建了基于NHibernate的数据访问层,今年将进行对分布式数据访问层的升级,主要改进包括:透明地支持对数据库的读写分离和按功能拆分数据库的访问、对Memcached和NoSQL数据库的访问的封装等。一般一个电子商务平台有几个核心系统,前端是数据搜索和购物推荐,产品分类列表、单品页、搜索功能都是构建在数据搜索技术之上,但还需要整合Memcached和支持页面静态化处理,同时向其他系统和合作伙伴提供Search API的支持。在购物推荐方面,目前我们的探索是,基于用户购买行为和用户评论打分的相似度进行分析,但这受制于数据积累、用户评分真实度、礼包促销导致的脏数据等各种因素的影响,所以需要一个逐步积累完善深化的过程。

而Tag-Based分析是基于手工打tag的方式,可以给购物推荐引擎一个更准确的数据源,从而能够快速获得满意的推荐结果。以tag-based为主,辅以用户购买和浏览行为数据分析,目前来看比较符合VANCl的现状。后端系统,主要包括基于工作流的订单处理流程,以及支撑服务系统和WMS仓储系统,前者的核心是基于元数据的流程控制、基于工作流模型的订单处理引擎、基于订阅发布的企业事件分发模型等。后者对于一般企业来讲,是个巨大的工程,难度不在于技术而在于物流和仓储知识,这是个巨大的经验鸿沟。

展望2010,依然是升级

2010年,我们所面对的是在系统各方面的全面升级:包括核心的企业事件处理服务器,可以智能的触发缓存更新、静态化页面处理、各订阅子系统的逻辑处理等。包括全面的SOA化和在DDD(Domain Driven Design领域驱动设计)指导下的电子商务领域模型建设。包括服务于各种合作伙伴的数据和业务流程的开放平台,使VANCL成为可以输出IT能力的大平台。2010,任重道远!

相关内容:

1、架构师(三月刊)

2、2010年大规模技术架构的思路

3、淘宝网架构师岳旭强的年度展望

4、一个技术观察者的年度展望

5、豆瓣首席架构师洪强宁的年度展望


个人简介: 栾义来,凡客诚品(北京)科技有限公司项目管理&架构总监,领导技术项目管理部门和架构师团队。曾在金山软件、我有网、FastMobile中国担任技术总监、资深架构师等职位。在电子商务、移动互联网、ERP等领域有丰富的架构和技术管理经验。

关注凡客网 发表人 xiaofei liu 发表于
通信架构选择 发表人 shi andy 发表于
  1. 返回顶部

    关注凡客网

    发表人 xiaofei liu

    关注凡客网,有以下建议:

    对于SOA我的观点是将负责业务的Service与基础Service分离以此保证扩展业务Service的扩展性,其次我建议直接用TCP/IP+应用协议来实现Service不要用WebService、什么WCF之类的,原因是不灵活,另外就是效率要高的多。

    对已事物这块,用MSDTC吧,如果有实力自己定制一套分布式事物方案。

    对于数据库这块订单数据量很大,水平切分吧,不要做读写分离,临时方案最后还得回到水平切分的Map-Reduce方案上来,不如一步到位。不过这样对于查询会有挑战性,没有挑战就没有进步嘛,呵呵

  2. 返回顶部

    通信架构选择

    发表人 shi andy

    内部通信肯定首选tcp/ip,需要互联网通信,最好选择webservice或者wcf之类的。