Watching ebay technology development

Source: Internet
Author: User
Tags failover qcon

This article reproduced from http://www.blogjava.net/BlueDavy/archive/2009/07/24/288055.html, reprint please specify

A few years ago, ebay has shared several PowerPoint presentations on ebay technology in several different conferences, and in this blog, it's a good way to look at ebay's technology developments from a bystander perspective, no matter how ebay is doing, and it's undeniable that their technology is pretty strong, So it's still worth learning, ebay's entire technology development process can be regarded as a part of the Internet company's typical technology development process, basically the internet companies are walking a similar route, but the choice of different languages, the specific implementation of different, details are different, of course, the idea is on the one hand, to achieve On the other hand, only a combination of the two can achieve a high availability, high performance and high concurrency of the system with massive data.

This blog relates to the main ebay's following three ppt, first to explain the next few ppt, and finally from a spectator point of view to summarize the technology development of ebay.
PS: The three PPT mentioned below can be downloaded here: http://www.blogjava.net/BlueDavy/archive/2009/04/28/267970.html

1, the EBay architecture 2006
This ppt is very classic, elaborated ebay from inception to 2006 experience of the technology development process, this process is also a part of the current Web site from small to large when a development.
In this PPT, ebay first summed up some experience based on its own experience, which includes:
(1). Each layer should support horizontal scaling, according to functional division;
(2). Preferred mode of asynchronous mode for interaction between systems;
(3). Reduce physical dependencies between systems and enhance deployment flexibility;
(4). Automated error diagnosis and notification, degraded support for business functions.
Even if you look at these experiences now, it is a good wisdom, presumably ebay is also in a rapid development process experienced a lot of blood to get the above experience.
After summing up the experience, PPT began to elaborate on ebay from the 1995--2006 technology development process, from v 1.0 to V 2.x, the first is to refactor the system to a 3-tier structure, using Oracle, Business Server and database server separate, using the index, This is the 2.0 version, after entering the 2.1 version, presumably the database pressure began to increase, there are two reasons, one is the increase in traffic, the second is the increase in data, so the database server was upgraded, replaced by a better server, at the same time add a load balance to the front, This should be for a simpler implementation of the front-end application level extension, after entering the 2.3 version, the addition of a second database server to support failover, improve availability, while other business servers in the continuous increase in To the end of the 2.3 version, the database server has reached the limit of running, enter the 2.4 version phase, focus on solving the problem of database pressure, the solution is to partition the database logic into multiple instances , enter the 2.5 version stage, start the horizontal table, for example, by the category of the product decomposition to multiple tables, or read and write points. After the v 2.5 phase is completed, at this point the database part of the pressure problem is basically resolved, but in front of ebay, there are new problems (voiceover: So the internet company to the final technology competition is also very important), hundreds of people to maintain the same code, and even reached the class allowed the largest number of methods, and so on, Then entered the ebay architecture of the V 3 era. V 3 The most important thing is to turn the entire application into Java and improve the reusability of the code and the separation of responsibilities for the code, while providing developers with a framework for development (it should be the famous eclipse at EBay).
At the end of the PPT, ebay shared with them some of their experiences with building scalable systems that would be very helpful for most people to see.
(1). Scaling of the data layer
There are three main methods: breaking down the pressure, reducing the database to do things, no business and other skills.
The most important method of decomposition pressure is divided by function, within the scope of the function can be divided horizontally, in the PPT ebay also shares the following functional division of some examples, such as user, commodity, evaluation, and so on, the level of division also cited some examples, such as reading and writing points, hash points.
For the scaling of the data layer, ebay mentions a very critical point in PPT, that is, the application does not need to care about the library, the table, and so on, whether it is to the library, the library, the table or the table, the application is completely transparent, it is because of this idea that the ebay has long ago had a proud data layer , which is the DAL.
The main way to reduce the database do is not to do business logic in the database processing, CPU-consuming operations (including joins, sorting, etc.) into the application completed, using prepared statements and binding variables.
The so-called "no transaction" technique means that there is no distributed transaction, but instead of using compensation to maintain data consistency.
(2). Expansion of Application layer
There are also three methods: decomposing the pressure, reducing reliance and virtual data manipulation.
The most important method of decomposition pressure is divided by function, and the level is scaled by load balance, and some of the specific techniques in the PPT are mentioned that we should discard most Java ee things, keep the application layer stateless, and use the cache as much as possible.
The most important way to reduce dependencies is to divide the code into functions as well. Functions need to share between the things into domain, all applications can only rely on domain, can not rely on other applications, and domain can not be relied on, and also mentioned in the PPT platform decoupling, ebay's approach to this is classic EDA and synchronized SOA.
The virtual data manipulation refers to the data layer mentioned in (1), but it's also worth noting that it mentions that they can be gracefully degraded from data routing, and the notion of graceful demotion is that when the system is stressed, only core functionality is available, while other Non-core features are unavailable.
(3). Expansion of the search
Not very interested in this part, probably mentioned mainly is done real-time indexing, horizontal division and caching.
(4). Operation of the telescopic
Ebay was able to think about it at the time, it was really hard, and it contained two main points: Code deployment and monitoring.
Since ebay at the time is basically every two weeks to do the full station deployment, but now ebay is not so frequently deployed, deployment-time dependencies, post-deployment failure rollback operations, numerous configurations and the need to deploy to a large number of machines, which are annoying ebay, so ebay made a deployment system , the deployment system can be based on the required deployment capabilities, analysis of their dependencies, based on the dependencies of the deployment, automatic detection and verification when deployed, and optional rollback or all rollback, have to sigh, really strong.
The monitoring aspect is based on the message mechanism, which broadcasts, records (logs to the file (the operation log file of the ebay record is already 1.5TB per day), catches exceptions for alarm or real-time system state monitoring), and analyzes (reports, excavations, etc.).
From the above analysis of the PPT, although the PPT is not thick, but its value is really high, and also fully demonstrated the technical strength of ebay.

2, EBay architectural Principles 2008
At the Qcon London Conference in 2008, ebay shared this ppt, which, unlike the PPT above, explains the evolution of ebay's architecture, but directly based on ebay's experience, summarizes some architectural principles for building large scalable systems, a bit like design patterns, Some of the techniques that were needed to respond to scenarios were summed up in a pattern, so these principles are very helpful for students who build large systems.
PPT first mentions the architectural focus: scalability, availability, latency, manageability, and cost, and then submit it to the four-point architecture model to see.
(1). Can divide
On this point ebay puts forward a point of view: "If you can ' t split it,you can ' t scale it," so ebay recommends that the system be decomposed by data, pressure, or usage, broken down by function and horizontal split.
In PPT, ebay continues to mention the vertical and horizontal split methods of the database, the no transactions, the vertical and horizontal split of the application layer, the stateless of the application layer, the vertical search, and the horizontal split, which are shared in detail in the first ppt.
(2). Asynchronously asynchronous
In this regard, ebay believes that as long as the asynchronous should be asynchronous, asynchronous implementation mode for the message mechanism as well as the timing of the batch operation mechanism.
The message mechanism usually sends a message when the core part of the function is complete, then subscribe to the application of the message asynchronous to do some processing, such as creating a product after the creation of the message, the application of image processing after receiving the message can be the corresponding processing of the goods, in the PPT also raised to an example to send messages, Used to update the index information in the search, which is actually how ebay's real-time indexing is implemented.
The timing batch operation is suitable for importing three-party data, generating recommendations, and so on.
(3). Automation can be automated
In this regard, ebay believes that automation is as far as possible to avoid manual operation, the implementation of the model for adaptive configuration and machine learning.
An example of an adaptive configuration, ebay, to define an SLA for a subscriber to an event, for example, 99% of events should be processed in 15 seconds, then the so-called adaptive configuration is that the system should be able to automatically adjust to the configured SLA, with minimal resources to meet SLAs, such as adjusting the number of threads processed, Queue size, pop-up frequency, etc., is not a point of cloud computing precursor,:).
The machine learning aspect ebay mainly mentions to provide the most matching page layout, the recommendation and so on to the user.
(4). Remember all the things that failed
The requirement here is that all systems should be able to be fault tolerant, with the primary purpose of ensuring availability, the mode of implementation is failure detection, rollback, and graceful demotion.
On failure detection ebay takes the approach of recording, alerting, analyzing, or digging by sending a message to a message subscriber.
The main point in rollback is the deployment and rollback of code, the deployment system mentioned in the first PPT.
Graceful demotion refers to the dynamic opening and dynamic shutdown of system features, and ebay takes the approach of a centralized configuration to manage the function's turn on or off.
PPT also cited an example to better illustrate that the first application to detect a resource is not available or very slow, in order to ensure availability, there are a few things to do: apply to stop the operation of this resource and warn, turn off Non-core features, Core functionality degradation (switching to other resources based on failover or to asynchronous processing mode).
This ppt is also not thick, but the summary is very good, these models for the construction of large systems (especially the Internet system) is basically necessary, in the 2009 Qcon Beijing Conference, ebay shares this topic, is generally the same, and therefore no longer to analyze the PPT.

3. Teaching Machines to Fish
On Qcon San Francisco, ebay shares this PPT, which focuses on the intelligent work of ebay, including intelligent recommendations, intelligent answers to user requests, and implementation strategies based primarily on the collection and analysis of user data, This section is primarily a model of user data analysis, in the PPT did not do too much introduction, but also can be seen from the PPT, ebay in order to improve the effectiveness of the search to pay a lot of effort, in order to achieve as much as possible to enable users to find the fastest thing they want, which is actually difficult to do, For example, the same user searches for the same word, and the expected result may be different.

ebay's three ppt are very classic, have to say, this spirit of sharing is also worthy of admiration, after all, this is the development process of ebay to find out, sharing out the inevitable can let many encounter similar problems of the site less to go a lot of detours, to say that I look at the sidelines from the perspective of ebay's development process.
From the ebay ppt, I think we can see that the technology of ebay has been basically formed in the 2006, and its development process can be seen as a microcosm of the development of the Internet industry technology.
As the amount of traffic grows, the amount of data grows, and the functionality grows, "" basically became the first recruit, and this trick to do is not as simple as imagined, usually involves caching technology, application of the split, ebay mentioned synchronous SOA and asynchronous EDA, database split (library, table), File storage splitting, load balancing, and so on, these technical requirements are very high, the site developed to this step is usually gradually show the importance of technology.
Ebay has also made a lot of effort to automate and improve usability as well as the "divide", including deployment systems, graceful demotion, monitoring, system fault tolerance, adaptive configuration, and more.
At the back of the stage, ebay is starting to put more energy into the realm of intelligence.
From the above three stages, can think that "cent"--> automation--> is the development of Internet technology is a common development model, of course, this involves a lot of technology, ebay's PPT does for us to share many of these technologies, and I also feel that in addition to the intelligent, Virtualization or cloud computing, energy-saving technology will also become the focus of follow-up internet technology, perhaps in the next various conferences we will see more of this knowledge, of course, there are some leading companies in this area, such as Google, Amazon and so on.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.