SlideShare a Scribd company logo
1 of 28
Download to read offline
艺龙旅行网架构案例分享

  Michael Jia April 2011
艺龙简介



          18000 家国内酒店, 13万家国际酒店

          每天 4万机票酒店订单

          4.8 亿 RMB总营收(2010年)




酒店 • 机票                     预订电话:400-810-1010
Agenda

• 艺龙架构介绍
• 关注的问题
• 艺龙案例
    – 松耦合
    – 异步
    – 面向运维
• 总结




酒店 • 机票      预订电话:400-810-1010
Architecture Overview - Business
                                                     Process
                          CTI
                          Call Center Interface ( Order processing, Call handling)
                          ERP
                          MIS

                      Customer Management                       Rev. Management          Supplier/Partner
     Consumer
                       CRM/ Loyalty                      Commission                   ebooking
 Traffic/ SEO/ SEM    Customer Intelligence             Air Rev Management System
 Web/ Usability                                                                        HBA
                       My eLong                          Date Warehouse               Web union
 Mobile                                                  Payment
 Destination Guide                                                                     Affiliate Platform
                                                         AR/AP                         Air supplier platform
 Hotel 点评
 Promotion                                 System Management                           NFD
 Coupon               Monitoring                                                      PID pool
SMS                   Capacity Model / Planning                                       Airline Direct Connect
Email                 Customer Experience/Tealeaf                                     Hotel direct connect
                       Config Management                                               Fax


                                                      Product
                          Air: √ Air Pricing DB/ FTERM
                          Hotel: √ Hotel Inventory
                          Package: √ Static Package

   酒店 • 机票                                                                             预订电话:400-810-1010
Architecture Overview - Technical



                               展示层:
                                 Web Servers,
                                 Webservice Servers
                               商业逻辑层:
                                 API Servers
                               数据层
                                 DB Servers




酒店 • 机票                                预订电话:400-810-1010
技术环境


          运行环境
                 •Windows Server, IIS, SQLServer, WCF, Remoting, MSMQ
                 •CentOS, memcached, CDN
                 •VMWare ESX




           开发
                 •ASP.Net, C#
                 •Java, PHP




          运营管理   •Cacti, Whats Up, Tealeaf, BMC
                 •Ominture, Network Bench,




          数据分析   •Oracle, Hyperion, Informatica, …




酒店 • 机票                                                           预订电话:400-810-1010
架构关注点


             Architecture represents the
          significant decisions,
           where significance is measured
           by   cost of change.
                                 –Grady Booch




酒店 • 机票                                         预订电话:400-810-1010
架构 关注点
 QCon2008: 架构在满足功能需求之外必须系统化考虑非功能性需求(-ilities)

     Accessibility      Installability
     Auditability       Manageability
     Flexibility        Supportability
     Extensibility      Recoverability
     Configurability    Usability
     Testability        Timeliness
     Repeatability      Performance
     Interoperability   Compliance
     Availability       Security
     Scalability        …




酒店 • 机票                                    预订电话:400-810-1010
架构 关注点

•   结构 (Structure)
•   一致性 (Consistency)
•   交互性 (Interoperability)
•   Frameworks and Libraries
•   Team & Technology


    Good Architecture provides foundations to add business value.




酒店 • 机票                                                        预订电话:400-810-1010
艺龙简单的架构原则 - SOA



           子系统在服务层通过API交互
           子系统可以独立扩展,升级,维护
           面向运维的子系统设计




酒店 • 机票                       预订电话:400-810-1010
艺龙架构案例
            解耦




酒店 • 机票            预订电话:400-810-1010
Loose Coupling(松散耦合)




          “Coupling refers to the degree of direct knowledge
          that one component has of another ”
                                             - Wikipedia




    松散耦合(loose coupling)的目的是减少风险及提高灵活性:一个元素
    内发生的变更造成其它元素内非预期的变更。限制互相连接会在事情
    出错时帮助隔离问题并简化测试、维护和检修过程。


酒店 • 机票                                                        预订电话:400-810-1010
系统耦合点 – 三大依赖


• 逻辑依赖
    – 系统调用关系耦合

• 数据依赖
    – 系统接口定义耦合

• 同步依赖
    – 系统可用性耦合




酒店 • 机票          预订电话:400-810-1010
Mediator Pattern – 解耦




                                M




          Tight Coupling   Loose Coupling




酒店 • 机票                                 预订电话:400-810-1010
艺龙案例 - 配置解耦
 原始结构




           airapi    =192.168.3.1         airapi    =192.168.3.1    系统依赖关系记录在本地配置文件中
           hotelapi =192.168.3.2          hotelapi =192.168.3.2     大量配置文件散落各处
           ….                             ….
                                                                    部署变更时容易出错
                                                                    数据中心运维代价高



          airdb =192.168.3.4
                                         airdb =192.168.3.4
          hoteldb =192.168.3.5
                                         hoteldb =192.168.3.5
          payment =192.168.3.6
                                         payment =192.168.3.6
          ….
                                         ….



                                                                   结论:
                                                                    配置管理架构必
      ….                            ….                 ….
                                                                    须降低耦合度

酒店 • 机票                                                                  预订电话:400-810-1010
艺龙案例 – 配置解耦
 松耦合结构




                  airapi    =192.168.3.1
                  hotelapi =192.168.3.2
                  ….




          Mediator: 配置服务器


                                            系统关系集中记录在配置服务器
                                            子系统之间丌再有设置耦合
                                            管理变更更加容易


酒店 • 机票                                           预订电话:400-810-1010
艺龙案例 – 流程解耦
 艺龙机票流程图:
                                           简单的state-machine实现方式
                                           上下游节点高耦合
                                           拼图式的Global View
                                           流程管理变更点多




   收款状态:
     if(pay==ok && seat.isAvailable())
            en_queue(“出票”);
                                          结论:
   出票状态:
     if(ticket.issued())                   流程节点需要降低耦合度
            en_queue(“Email_Customer”);
     else
            en_queue(“Reimburse”);


酒店 • 机票                                              预订电话:400-810-1010
艺龙案例 – 流程解耦
Worker-Controller 模型


   验证
                                 节点和流程分离
                                 Notify-Dispatch
   收款                            上下游节点低耦合
                                 Global View 集中在controller
                                 流程管理变更点少
   出票

                 流程Controller
   打印
                   Mediator

   配送


  Worker
酒店 • 机票                                       预订电话:400-810-1010
Mediator Pattern的其他应用场景


          对象耦合 - Spring IoC Container

          数据耦合 - Canonical Data Format

          通讯耦合 - Enterprise Service Bus (ESB)
                 Internet
                          …




酒店 • 机票                                         预订电话:400-810-1010
Asynchronous – 航信通讯


                             如何将航信通讯流量最小化
          API + Cache 服务器
                            Cache可以解决一部分问题
                             Cache 数据过期时会访问航信
                             3-5秒钟的访问时间
          PEK-SHA            期间同样的查询将重复访问
                             峰值流量无法控制


          航信通讯服务器



          $$$
                            目标:
                             同样的查询只能有一次访问
          航信主机


酒店 • 机票                                   预订电话:400-810-1010
艺龙架构案例
            异步




酒店 • 机票            预订电话:400-810-1010
Asynchronous – 航信通讯


                             查询请求存入DB, 丌直接调通讯服务器
          API 服务器
                             通讯服务器从DB取得查询请求
                             API在写入时判断并排除重复查询
                             峰值流量得到控制
          PEK-SHA ¥1200
          SHA-PEK ¥1300
          …




          航信通讯服务器

                          结果:
          $$
                           节省了1/3的航信流量,降低了费用约1/2

          航信主机

酒店 • 机票                                 预订电话:400-810-1010
艺龙架构案例
           面向运维




酒店 • 机票            预订电话:400-810-1010
面向运维

 实时监控


                  最近5分钟的出票量?




                      23
          Cacti


                                Simple HTTP GET
                                Cacti SNMP Proxy




酒店 • 机票                               预订电话:400-810-1010
面向运维

 日志分析




          统一的日志格式
          统一的分析工具




酒店 • 机票         预订电话:400-810-1010
面向运维 – Beyond

• 商务运维
    – 价格准确率
    – 支付失败率
    – …
• 监控系统反馈
    – 自适应系统模型 - Elastic
    – 人工, 自动, Hybrid




酒店 • 机票                   预订电话:400-810-1010
总结

• 架构需要有Big picture.
• 立足现有系统,兼顾未来系统
• 架构的原则可以灵活应用在各个层级
    –     应用架构 (Class, Object, Interface…)
    –     系统架构 (子系统, 交互,接口…)
    –     数据架构 (数据处理,结构,整合)
    –     企业架构

• Focus on value , 适度架构




酒店 • 机票                                      预订电话:400-810-1010
谢谢大家




           jia.mike@gmail.com

          新浪微博: @贾志峰Michael




酒店 • 机票                         预订电话:400-810-1010

More Related Content

What's hot

Mesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ DoubanMesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ DoubanZhong Bo Tian
 
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性liu sheng
 
D baa s_in_xiaomi
D baa s_in_xiaomiD baa s_in_xiaomi
D baa s_in_xiaomihdksky
 
淘宝双11双12案例分享
淘宝双11双12案例分享淘宝双11双12案例分享
淘宝双11双12案例分享vanadies10
 
Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题XiaoJun Hong
 
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Etu Solution
 
新浪微博redis技术演化
新浪微博redis技术演化新浪微博redis技术演化
新浪微博redis技术演化XiaoJun Hong
 
翟艳堂:腾讯大规模Hadoop集群实践
翟艳堂:腾讯大规模Hadoop集群实践翟艳堂:腾讯大规模Hadoop集群实践
翟艳堂:腾讯大规模Hadoop集群实践hdhappy001
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验Schubert Zhang
 
阿里自研数据库 Ocean base实践
阿里自研数据库 Ocean base实践阿里自研数据库 Ocean base实践
阿里自研数据库 Ocean base实践drewz lin
 
阿里巴巴运维团队的无状态运维思路
阿里巴巴运维团队的无状态运维思路阿里巴巴运维团队的无状态运维思路
阿里巴巴运维团队的无状态运维思路mysqlops
 
罗李:构建一个跨机房的Hadoop集群
罗李:构建一个跨机房的Hadoop集群罗李:构建一个跨机房的Hadoop集群
罗李:构建一个跨机房的Hadoop集群hdhappy001
 
大规模数据库存储方案
大规模数据库存储方案大规模数据库存储方案
大规模数据库存储方案XiaoJun Hong
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构XiaoJun Hong
 
Bigdata introduction
Bigdata introductionBigdata introduction
Bigdata introductionTechwiser
 
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告Etu Solution
 
Selling sybase hds solution for banking
Selling sybase hds solution for bankingSelling sybase hds solution for banking
Selling sybase hds solution for bankingfocusbi
 
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731drewz lin
 
张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析Leechael
 
Big Data Taiwan 2014 Track1-3: Big Data, Big Challenge — Splunk 幫你解決 Big Data...
Big Data Taiwan 2014 Track1-3: Big Data, Big Challenge — Splunk 幫你解決 Big Data...Big Data Taiwan 2014 Track1-3: Big Data, Big Challenge — Splunk 幫你解決 Big Data...
Big Data Taiwan 2014 Track1-3: Big Data, Big Challenge — Splunk 幫你解決 Big Data...Etu Solution
 

What's hot (20)

Mesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ DoubanMesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ Douban
 
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
 
D baa s_in_xiaomi
D baa s_in_xiaomiD baa s_in_xiaomi
D baa s_in_xiaomi
 
淘宝双11双12案例分享
淘宝双11双12案例分享淘宝双11双12案例分享
淘宝双11双12案例分享
 
Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题
 
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
 
新浪微博redis技术演化
新浪微博redis技术演化新浪微博redis技术演化
新浪微博redis技术演化
 
翟艳堂:腾讯大规模Hadoop集群实践
翟艳堂:腾讯大规模Hadoop集群实践翟艳堂:腾讯大规模Hadoop集群实践
翟艳堂:腾讯大规模Hadoop集群实践
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验
 
阿里自研数据库 Ocean base实践
阿里自研数据库 Ocean base实践阿里自研数据库 Ocean base实践
阿里自研数据库 Ocean base实践
 
阿里巴巴运维团队的无状态运维思路
阿里巴巴运维团队的无状态运维思路阿里巴巴运维团队的无状态运维思路
阿里巴巴运维团队的无状态运维思路
 
罗李:构建一个跨机房的Hadoop集群
罗李:构建一个跨机房的Hadoop集群罗李:构建一个跨机房的Hadoop集群
罗李:构建一个跨机房的Hadoop集群
 
大规模数据库存储方案
大规模数据库存储方案大规模数据库存储方案
大规模数据库存储方案
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构
 
Bigdata introduction
Bigdata introductionBigdata introduction
Bigdata introduction
 
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
 
Selling sybase hds solution for banking
Selling sybase hds solution for bankingSelling sybase hds solution for banking
Selling sybase hds solution for banking
 
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
 
张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析
 
Big Data Taiwan 2014 Track1-3: Big Data, Big Challenge — Splunk 幫你解決 Big Data...
Big Data Taiwan 2014 Track1-3: Big Data, Big Challenge — Splunk 幫你解決 Big Data...Big Data Taiwan 2014 Track1-3: Big Data, Big Challenge — Splunk 幫你解決 Big Data...
Big Data Taiwan 2014 Track1-3: Big Data, Big Challenge — Splunk 幫你解決 Big Data...
 

Viewers also liked

高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕ideawu
 
构建可扩展的微博系统
构建可扩展的微博系统构建可扩展的微博系统
构建可扩展的微博系统airsex
 
微博架构与平台安全
微博架构与平台安全微博架构与平台安全
微博架构与平台安全Tim Y
 
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011Yiwei Ma
 
周爱民 关于架构之我的观点
周爱民 关于架构之我的观点周爱民 关于架构之我的观点
周爱民 关于架构之我的观点George Ang
 
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统Dahui Feng
 
百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011Yiwei Ma
 
Qcon 2011:Beansdb 的设计与实现
Qcon 2011:Beansdb 的设计与实现Qcon 2011:Beansdb 的设计与实现
Qcon 2011:Beansdb 的设计与实现Davies Liu
 
High Performance Weibo QCon Beijing 2011
High Performance Weibo QCon Beijing 2011High Performance Weibo QCon Beijing 2011
High Performance Weibo QCon Beijing 2011Tim Y
 
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYCScalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYCCal Henderson
 

Viewers also liked (10)

高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
 
构建可扩展的微博系统
构建可扩展的微博系统构建可扩展的微博系统
构建可扩展的微博系统
 
微博架构与平台安全
微博架构与平台安全微博架构与平台安全
微博架构与平台安全
 
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011
 
周爱民 关于架构之我的观点
周爱民 关于架构之我的观点周爱民 关于架构之我的观点
周爱民 关于架构之我的观点
 
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
 
百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011
 
Qcon 2011:Beansdb 的设计与实现
Qcon 2011:Beansdb 的设计与实现Qcon 2011:Beansdb 的设计与实现
Qcon 2011:Beansdb 的设计与实现
 
High Performance Weibo QCon Beijing 2011
High Performance Weibo QCon Beijing 2011High Performance Weibo QCon Beijing 2011
High Performance Weibo QCon Beijing 2011
 
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYCScalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
 

Similar to 艺龙旅行网架构案例分享-Qcon2011

20121202 中国电信云计算by谢博士 v4.2
20121202 中国电信云计算by谢博士   v4.220121202 中国电信云计算by谢博士   v4.2
20121202 中国电信云计算by谢博士 v4.2wendy bai
 
阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台guiyingshenxia
 
集群运维管理平台
集群运维管理平台集群运维管理平台
集群运维管理平台mysqlops
 
华为 余洲 定制化服务器
华为 余洲 定制化服务器华为 余洲 定制化服务器
华为 余洲 定制化服务器colderboy17
 
华为 余洲 定制化服务器
华为 余洲 定制化服务器华为 余洲 定制化服务器
华为 余洲 定制化服务器guiyingshenxia
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
云计算在电信业务中的应用分析 罗圣美
云计算在电信业务中的应用分析 罗圣美云计算在电信业务中的应用分析 罗圣美
云计算在电信业务中的应用分析 罗圣美Riquelme624
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabricJohn Chang
 
企业系统商务智能设计
企业系统商务智能设计企业系统商务智能设计
企业系统商务智能设计George Ang
 
客服管理中心之系統規劃與建構 大葉大學-詹翔霖
客服管理中心之系統規劃與建構 大葉大學-詹翔霖客服管理中心之系統規劃與建構 大葉大學-詹翔霖
客服管理中心之系統規劃與建構 大葉大學-詹翔霖文化大學
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验colderboy17
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验guiyingshenxia
 
20120526 -物聯網應用
20120526 -物聯網應用20120526 -物聯網應用
20120526 -物聯網應用p_yang
 
淺談雲端運算
淺談雲端運算淺談雲端運算
淺談雲端運算永昇 陳
 
從零開始做架構圖
從零開始做架構圖從零開始做架構圖
從零開始做架構圖Philip Zheng
 
虚拟化与云计算
虚拟化与云计算虚拟化与云计算
虚拟化与云计算ITband
 
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用Zac John
 

Similar to 艺龙旅行网架构案例分享-Qcon2011 (20)

20121202 中国电信云计算by谢博士 v4.2
20121202 中国电信云计算by谢博士   v4.220121202 中国电信云计算by谢博士   v4.2
20121202 中国电信云计算by谢博士 v4.2
 
阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台
 
集群运维管理平台
集群运维管理平台集群运维管理平台
集群运维管理平台
 
华为 余洲 定制化服务器
华为 余洲 定制化服务器华为 余洲 定制化服务器
华为 余洲 定制化服务器
 
华为 余洲 定制化服务器
华为 余洲 定制化服务器华为 余洲 定制化服务器
华为 余洲 定制化服务器
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
云计算在电信业务中的应用分析 罗圣美
云计算在电信业务中的应用分析 罗圣美云计算在电信业务中的应用分析 罗圣美
云计算在电信业务中的应用分析 罗圣美
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric
 
企业系统商务智能设计
企业系统商务智能设计企业系统商务智能设计
企业系统商务智能设计
 
客服管理中心之系統規劃與建構 大葉大學-詹翔霖
客服管理中心之系統規劃與建構 大葉大學-詹翔霖客服管理中心之系統規劃與建構 大葉大學-詹翔霖
客服管理中心之系統規劃與建構 大葉大學-詹翔霖
 
Mocha Bsm
Mocha BsmMocha Bsm
Mocha Bsm
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
20120526 -物聯網應用
20120526 -物聯網應用20120526 -物聯網應用
20120526 -物聯網應用
 
淺談雲端運算
淺談雲端運算淺談雲端運算
淺談雲端運算
 
從零開始做架構圖
從零開始做架構圖從零開始做架構圖
從零開始做架構圖
 
虚拟化与云计算
虚拟化与云计算虚拟化与云计算
虚拟化与云计算
 
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
 

More from Yiwei Ma

Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconYiwei Ma
 
Alibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconAlibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconYiwei Ma
 
Zhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconZhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconYiwei Ma
 
Taobao practice-liyu-qcon
Taobao practice-liyu-qconTaobao practice-liyu-qcon
Taobao practice-liyu-qconYiwei Ma
 
Thoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qconThoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qconYiwei Ma
 
Ufida design-chijianqiang-qcon
Ufida design-chijianqiang-qconUfida design-chijianqiang-qcon
Ufida design-chijianqiang-qconYiwei Ma
 
Spring design-juergen-qcon
Spring design-juergen-qconSpring design-juergen-qcon
Spring design-juergen-qconYiwei Ma
 
Netflix web-adrian-qcon
Netflix web-adrian-qconNetflix web-adrian-qcon
Netflix web-adrian-qconYiwei Ma
 
Google arch-fangkun-qcon
Google arch-fangkun-qconGoogle arch-fangkun-qcon
Google arch-fangkun-qconYiwei Ma
 
Alibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qconAlibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qconYiwei Ma
 
Twitter keynote-evan-qcon
Twitter keynote-evan-qconTwitter keynote-evan-qcon
Twitter keynote-evan-qconYiwei Ma
 
Netflix keynote-adrian-qcon
Netflix keynote-adrian-qconNetflix keynote-adrian-qcon
Netflix keynote-adrian-qconYiwei Ma
 
Facebook keynote-nicolas-qcon
Facebook keynote-nicolas-qconFacebook keynote-nicolas-qcon
Facebook keynote-nicolas-qconYiwei Ma
 
Domainlang keynote-eric-qcon
Domainlang keynote-eric-qconDomainlang keynote-eric-qcon
Domainlang keynote-eric-qconYiwei Ma
 
Devjam keynote-david-qcon
Devjam keynote-david-qconDevjam keynote-david-qcon
Devjam keynote-david-qconYiwei Ma
 
Baidu keynote-wubo-qcon
Baidu keynote-wubo-qconBaidu keynote-wubo-qcon
Baidu keynote-wubo-qconYiwei Ma
 
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011Yiwei Ma
 
网游服务器性能优化-Qcon2011
网游服务器性能优化-Qcon2011网游服务器性能优化-Qcon2011
网游服务器性能优化-Qcon2011Yiwei Ma
 
Xietingbao-Qcon2011
Xietingbao-Qcon2011Xietingbao-Qcon2011
Xietingbao-Qcon2011Yiwei Ma
 
Wushi-Qcon2011
Wushi-Qcon2011Wushi-Qcon2011
Wushi-Qcon2011Yiwei Ma
 

More from Yiwei Ma (20)

Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
 
Alibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconAlibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qcon
 
Zhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconZhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qcon
 
Taobao practice-liyu-qcon
Taobao practice-liyu-qconTaobao practice-liyu-qcon
Taobao practice-liyu-qcon
 
Thoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qconThoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qcon
 
Ufida design-chijianqiang-qcon
Ufida design-chijianqiang-qconUfida design-chijianqiang-qcon
Ufida design-chijianqiang-qcon
 
Spring design-juergen-qcon
Spring design-juergen-qconSpring design-juergen-qcon
Spring design-juergen-qcon
 
Netflix web-adrian-qcon
Netflix web-adrian-qconNetflix web-adrian-qcon
Netflix web-adrian-qcon
 
Google arch-fangkun-qcon
Google arch-fangkun-qconGoogle arch-fangkun-qcon
Google arch-fangkun-qcon
 
Alibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qconAlibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qcon
 
Twitter keynote-evan-qcon
Twitter keynote-evan-qconTwitter keynote-evan-qcon
Twitter keynote-evan-qcon
 
Netflix keynote-adrian-qcon
Netflix keynote-adrian-qconNetflix keynote-adrian-qcon
Netflix keynote-adrian-qcon
 
Facebook keynote-nicolas-qcon
Facebook keynote-nicolas-qconFacebook keynote-nicolas-qcon
Facebook keynote-nicolas-qcon
 
Domainlang keynote-eric-qcon
Domainlang keynote-eric-qconDomainlang keynote-eric-qcon
Domainlang keynote-eric-qcon
 
Devjam keynote-david-qcon
Devjam keynote-david-qconDevjam keynote-david-qcon
Devjam keynote-david-qcon
 
Baidu keynote-wubo-qcon
Baidu keynote-wubo-qconBaidu keynote-wubo-qcon
Baidu keynote-wubo-qcon
 
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
 
网游服务器性能优化-Qcon2011
网游服务器性能优化-Qcon2011网游服务器性能优化-Qcon2011
网游服务器性能优化-Qcon2011
 
Xietingbao-Qcon2011
Xietingbao-Qcon2011Xietingbao-Qcon2011
Xietingbao-Qcon2011
 
Wushi-Qcon2011
Wushi-Qcon2011Wushi-Qcon2011
Wushi-Qcon2011
 

艺龙旅行网架构案例分享-Qcon2011

  • 2. 艺龙简介 18000 家国内酒店, 13万家国际酒店 每天 4万机票酒店订单 4.8 亿 RMB总营收(2010年) 酒店 • 机票 预订电话:400-810-1010
  • 3. Agenda • 艺龙架构介绍 • 关注的问题 • 艺龙案例 – 松耦合 – 异步 – 面向运维 • 总结 酒店 • 机票 预订电话:400-810-1010
  • 4. Architecture Overview - Business Process  CTI  Call Center Interface ( Order processing, Call handling)  ERP  MIS Customer Management Rev. Management Supplier/Partner Consumer  CRM/ Loyalty  Commission  ebooking  Traffic/ SEO/ SEM  Customer Intelligence  Air Rev Management System  Web/ Usability  HBA  My eLong  Date Warehouse  Web union  Mobile  Payment  Destination Guide  Affiliate Platform AR/AP  Air supplier platform  Hotel 点评  Promotion System Management  NFD  Coupon  Monitoring  PID pool SMS  Capacity Model / Planning  Airline Direct Connect Email  Customer Experience/Tealeaf  Hotel direct connect  Config Management  Fax Product Air: √ Air Pricing DB/ FTERM Hotel: √ Hotel Inventory Package: √ Static Package 酒店 • 机票 预订电话:400-810-1010
  • 5. Architecture Overview - Technical  展示层: Web Servers, Webservice Servers  商业逻辑层: API Servers  数据层 DB Servers 酒店 • 机票 预订电话:400-810-1010
  • 6. 技术环境 运行环境 •Windows Server, IIS, SQLServer, WCF, Remoting, MSMQ •CentOS, memcached, CDN •VMWare ESX 开发 •ASP.Net, C# •Java, PHP 运营管理 •Cacti, Whats Up, Tealeaf, BMC •Ominture, Network Bench, 数据分析 •Oracle, Hyperion, Informatica, … 酒店 • 机票 预订电话:400-810-1010
  • 7. 架构关注点 Architecture represents the significant decisions, where significance is measured by cost of change. –Grady Booch 酒店 • 机票 预订电话:400-810-1010
  • 8. 架构 关注点 QCon2008: 架构在满足功能需求之外必须系统化考虑非功能性需求(-ilities) Accessibility Installability Auditability Manageability Flexibility Supportability Extensibility Recoverability Configurability Usability Testability Timeliness Repeatability Performance Interoperability Compliance Availability Security Scalability … 酒店 • 机票 预订电话:400-810-1010
  • 9. 架构 关注点 • 结构 (Structure) • 一致性 (Consistency) • 交互性 (Interoperability) • Frameworks and Libraries • Team & Technology Good Architecture provides foundations to add business value. 酒店 • 机票 预订电话:400-810-1010
  • 10. 艺龙简单的架构原则 - SOA  子系统在服务层通过API交互  子系统可以独立扩展,升级,维护  面向运维的子系统设计 酒店 • 机票 预订电话:400-810-1010
  • 11. 艺龙架构案例 解耦 酒店 • 机票 预订电话:400-810-1010
  • 12. Loose Coupling(松散耦合) “Coupling refers to the degree of direct knowledge that one component has of another ” - Wikipedia 松散耦合(loose coupling)的目的是减少风险及提高灵活性:一个元素 内发生的变更造成其它元素内非预期的变更。限制互相连接会在事情 出错时帮助隔离问题并简化测试、维护和检修过程。 酒店 • 机票 预订电话:400-810-1010
  • 13. 系统耦合点 – 三大依赖 • 逻辑依赖 – 系统调用关系耦合 • 数据依赖 – 系统接口定义耦合 • 同步依赖 – 系统可用性耦合 酒店 • 机票 预订电话:400-810-1010
  • 14. Mediator Pattern – 解耦 M Tight Coupling Loose Coupling 酒店 • 机票 预订电话:400-810-1010
  • 15. 艺龙案例 - 配置解耦 原始结构 airapi =192.168.3.1 airapi =192.168.3.1  系统依赖关系记录在本地配置文件中 hotelapi =192.168.3.2 hotelapi =192.168.3.2  大量配置文件散落各处 …. ….  部署变更时容易出错  数据中心运维代价高 airdb =192.168.3.4 airdb =192.168.3.4 hoteldb =192.168.3.5 hoteldb =192.168.3.5 payment =192.168.3.6 payment =192.168.3.6 …. …. 结论: 配置管理架构必 …. …. …. 须降低耦合度 酒店 • 机票 预订电话:400-810-1010
  • 16. 艺龙案例 – 配置解耦 松耦合结构 airapi =192.168.3.1 hotelapi =192.168.3.2 …. Mediator: 配置服务器  系统关系集中记录在配置服务器  子系统之间丌再有设置耦合  管理变更更加容易 酒店 • 机票 预订电话:400-810-1010
  • 17. 艺龙案例 – 流程解耦 艺龙机票流程图:  简单的state-machine实现方式  上下游节点高耦合  拼图式的Global View  流程管理变更点多 收款状态: if(pay==ok && seat.isAvailable()) en_queue(“出票”); 结论: 出票状态: if(ticket.issued()) 流程节点需要降低耦合度 en_queue(“Email_Customer”); else en_queue(“Reimburse”); 酒店 • 机票 预订电话:400-810-1010
  • 18. 艺龙案例 – 流程解耦 Worker-Controller 模型 验证  节点和流程分离  Notify-Dispatch 收款  上下游节点低耦合  Global View 集中在controller  流程管理变更点少 出票 流程Controller 打印 Mediator 配送 Worker 酒店 • 机票 预订电话:400-810-1010
  • 19. Mediator Pattern的其他应用场景 对象耦合 - Spring IoC Container 数据耦合 - Canonical Data Format 通讯耦合 - Enterprise Service Bus (ESB) Internet … 酒店 • 机票 预订电话:400-810-1010
  • 20. Asynchronous – 航信通讯  如何将航信通讯流量最小化 API + Cache 服务器 Cache可以解决一部分问题  Cache 数据过期时会访问航信  3-5秒钟的访问时间 PEK-SHA  期间同样的查询将重复访问  峰值流量无法控制 航信通讯服务器 $$$ 目标: 同样的查询只能有一次访问 航信主机 酒店 • 机票 预订电话:400-810-1010
  • 21. 艺龙架构案例 异步 酒店 • 机票 预订电话:400-810-1010
  • 22. Asynchronous – 航信通讯  查询请求存入DB, 丌直接调通讯服务器 API 服务器  通讯服务器从DB取得查询请求  API在写入时判断并排除重复查询  峰值流量得到控制 PEK-SHA ¥1200 SHA-PEK ¥1300 … 航信通讯服务器 结果: $$ 节省了1/3的航信流量,降低了费用约1/2 航信主机 酒店 • 机票 预订电话:400-810-1010
  • 23. 艺龙架构案例 面向运维 酒店 • 机票 预订电话:400-810-1010
  • 24. 面向运维 实时监控 最近5分钟的出票量? 23 Cacti  Simple HTTP GET  Cacti SNMP Proxy 酒店 • 机票 预订电话:400-810-1010
  • 25. 面向运维 日志分析 统一的日志格式 统一的分析工具 酒店 • 机票 预订电话:400-810-1010
  • 26. 面向运维 – Beyond • 商务运维 – 价格准确率 – 支付失败率 – … • 监控系统反馈 – 自适应系统模型 - Elastic – 人工, 自动, Hybrid 酒店 • 机票 预订电话:400-810-1010
  • 27. 总结 • 架构需要有Big picture. • 立足现有系统,兼顾未来系统 • 架构的原则可以灵活应用在各个层级 – 应用架构 (Class, Object, Interface…) – 系统架构 (子系统, 交互,接口…) – 数据架构 (数据处理,结构,整合) – 企业架构 • Focus on value , 适度架构 酒店 • 机票 预订电话:400-810-1010
  • 28. 谢谢大家 jia.mike@gmail.com 新浪微博: @贾志峰Michael 酒店 • 机票 预订电话:400-810-1010