携程在企业架构方面的探索
刘剡@携程研发中心·软件架构部
相关背景
架构规划架构实施架构治理
etr
拱程
目录
2
成立,总可)设仕中国工海,仕孔京、厂I|、沐
圳、成都、杭州、南京、重庆、厦门、青岛、武汉、
沈阳、三亚、丽江、南通、香港等16个城市设有分支机构。现有员工12000名。
是国内领先的综合性旅行服务公司,提供酒店预订、机票预订、旅游度假、商旅管理、美食订餐及旅游资讯等全方位旅行服务。
相关背景·携程旅行网
etn~
携
程
3
方面
特点
业务特色
核心价值在于整合资源,提供服务
存在众多的各类资源及代理合作方
服务资源(合作方产品)不受控,基本无库存
业务流程
业务流程复杂,要求灵活
存在许多特殊的人工处理环节
业务变化
业务流程变化
产品功能变化
相关背景·业务特点
etr
拱
程
4
方面
问题
举例
系统庞杂
经过十多年的快速发展,内部系统越
来越多,彼此间交互和依赖越来越复杂
22个产品,100个子系统,459个应用,203个数据库
系统划分
系统边界模糊、职责不清、耦合过深,导致系统难以维护和扩展
机票结算子系统
订单与支付
业务流程
流程过于分散以及流程的硬编码导致对流程变化的支持缓慢
出票、出保、配送
数据分布
多系统间的数据的不合理的集中与分散,在系统越来越复杂的情况下,严重影响系统的性能与可扩展能力
集中:庞大的订单表
分散:支付方式、证件类型
开发模式
多种技术并存的情况下,开发模式的
选择,直接关系到开发效率及运维效率
各种各样的系统交互方式
JOBAPP/JOB/SSIS/
Replication/WCF/
Remoting/WS
相关背景·系统特点
etr
拱
程
5
组
件
a
组
件
组
件
C
相关背景·系统特点
系统系统C
存猪过程存储过程2
A
系
统
B
etr
拱程
系统边界
复用
耦合
表
b1
6
方面
技术
操作系统
WinServer2008
CentOS5.6
Web服务器
IIS6
开发平台
VS6:ASP
VS2005/2010:ASP.NET,C#
其他开发工具:C++Builder,Eclipse,Dephi6
数据库
SQLServer2008
开源/框架
Entl2.0/Ent15.0/MVC/ORM...
Memcache
Lucense
相关背景·技术特点
etr
拱
程
7
方面
目标
业务响应
降低系统耦合,提升对变化的响应速度改善系统架构,更好地支持业务扩展
建立流程引擎,更灵活地支持业务流程变化
系统质量
合理地增加或减少系统间交互及补偿,提升系统性能、稳定性
开发效率
合理划分系统,通过系统职责的分离,对开发组的职责进行合理分配,同时建立更完整的公共平台、基础框架、基础类库,提高开发效率
运维水平
完善配置、监控、预警、日志系统,提升系统运维配置效率及排查问题的速度
相关背景·期望目标
etr
拱
程
8
相关背景
?架构规划
架构实施架构治理
etr
拱程
目录
9
架构视角
规划重点
业务架构
业务模型
流程模型
应用架构
子系统划分、服务识别与设计
应用系统交互方式、应用组合
应用与应用、数据、部署矩阵
数据架构
数据在系统之间的分布
系统间数据交换的方式
主数据管理与数据迁移
技术架构
技术标准/基础框架/基础组件
基础平台/管理平台/治理平台/监控平台
架构规划
e-tu~
拱
程
10
业务系统流程中要体现清晰明确的物流、资金流、信息流
业务系统流程由订单驱动,订单由产品组成
订单根据产品组合的不同有灵活可变的生产流程
产品由供应商提供,具有固定的采购或生产流程
产品具有多种共同的属性(支付属性、配送属性等),以此才能组合成订单当产品具有库存特性(金额或数量)时,应该采用正向+/反向-的方式生成不同的单据,比如支付、结算
当产品与订单本身的一些特定属性关联密切时(比如机票与乘机人关系),应该采用在相同单据上做回退处理,而不是产生新的反向冲销单据
架构规划·业务架构·原则
etr
拱
程
11
面向客户
面向供应商
业务域
代理商
查询选择
预订
→产品
产品-库存-库存检查
供应商
信息录入
产品-供应商-底价-政策
预订提交
产品-代理商/渠道-售价-政策
客户确认
订单
生产
供应商+资源确认
订单驱动单据
生产(出退票/出退保)
异常流程处理
资源使用跟踪
客户关系
收集支付信息
支付
结算
结算单汇总
配送