On day 2 of QConSF 2015 (17th Nov), Eric Ye the CTO of Ctrip will give a presentation "Transformation from call center, web to mobile" on the China Tech Day track. This article is a summary of Ctrip's presentations at various QCons in the past three years, which provides a good description of the evolution path of Ctrip technology.
Ctrip is currently the leading OTA bookings platform in China (after acquiring Elong and Qunar this year).
Infrastructure
Ctrip was primarily running call center business covering travel bookings and hotel bookings in its early days (1999 to early 2000s). The initial software stack was based on .NET. As the online business was growing, there was a lot of work involved in the utilization of its infrastructure, including decoupling of business and code, writing new business logic in Java and rewriting old business logic using Java bit by bit (which also involved moving from Windows to Linux servers), scaling, moving from single box applications to distributed systems, as well as going mobile. Today, the call center business is still running together with the online business, but 72% of transactions are now coming from mobile web.
Resource provisioning and management for Ctrip services is provided by its private cloud. Ctrip started deploying OpenStack in 2013, aiming to standardize its infrastructure and to improve operations efficiency. The stack is using KVM, VMware, Docker and bare metal at the computing level, local storage, and Neutron OpenVSwitch, VLan and Nova-VMware-Drive at the networking level.
The call center business is running on cloud-based virtual desktop. The team has put a lot of effort to make Windows OS and .NET applications run smoothly on OpenStack (KVM especially), and has been trying to contribute their work back to upstream OpenStack and Razor project.
Ctrip also developed its automated build-deploy system, monitoring system, security analysis system, and an async message queue system. The message queue system Hermes was put into production several months ago and was presented during QCon Shanghai 2015.
Search Engine
The Ctrip search service is built based on Lucene API, while major challenges are real-time indexing/searching and data mining across different business units and data structures (including non-Ctrip data). Their search service now supports real-time symantic analysis and auto-completion and can be easily scaled to support new businesses.
Mobile
Today's Ctrip mobile service (carrying 72% of all transactions) is running in mobile architecture V2. Mobile architecture V1 was a centralized structure in which mobile development requests from all business units were sent to a single "mobile development team", which caused a lot of inefficiency and tightly coupled codes. Architecture V2 started off with distributing mobile developers to each business unit, and building a shared mobile API gateway for both native apps (iOS/Android) and mobile web (HTML5).
The mobile API gateway was built based on Netflix's Zuul. The gateway receives all API requests, and provides routing to the backend mobile services, while supporting advanced features such as quota control, monitoring and isolation.
There were also a large amount of effort put into networking optimization, including improving DNS resolution and caching, building a system to manage service priority and dependencies, and a real-time network monitoring portal based on Elastic Search. After optimization, end-to-end connection success rate for Ctrip mobile services is now 99.7%.
Ctrip has also built its CI and automated testing system for mobile development, covering major smartphone brands. The team also developed applications for Android Wear and Apple Watch.
Summary
From 1999 to 2015, Ctrip evolved from a call center business to a web-centered business, and now mobile-centered business. It is an example of conservative evolution as compared to many other internet companies around the same time period, and Ctrip's business growth has shown that this pace of technology evolution is adequate. Bring the needed technology at the right times, this is something we could learn from Ctrip's experience.
Chinese version link:http://www.infoq.com/cn/news/2015/11/ctrip-evolution-tech