The history of open source software, we can be traced back to last century eighties. At September 27, 1983, Massachusetts Institute of Technology Artificial Intelligence Laboratory (MIT Artificial Intelligence Lab) of Richard M. Stallman at net.unix-wizards, as well as the newsgroups posted net.usoft heading for a "new UNIX implementation "message. This is the now well-known GNU project start. At that is deemed "GNU Declaration" draft of the message, Richard M. Stallman on the individual's ideas and aims - to complete a name for GNU's "Free UNIX" operating system, would like to take this idea of looking for the same total Xiang setting effort. From the first to start Emacs Now, twenty years have passed, now has many open-source software can be used for our selection, from the necessary operating system to application server software, from the middleware to the day-to-day office software, from the database system to deal with U.S. picture, video audio player and so on. It can be said that in our daily life, whether it is entertainment, office, or build enterprise-class applications, can be completely open-source software adoption.
Taobao is a breakthrough in online merchandise quantity 100,000,000, a daily average turnover of more than 200 million yuan, nearly 80 million registered users of large-scale e-commerce website, are Asia's largest shopping website. Well, for such a large scale TaoBao a website, I guess everyone must be very concerned about the use of the web what kind of technologies, products and architecture, will also want to know whether at TaoBao using open source software or are fully used in commercial software. Well, I introduce a simple click on Taobao in the open-source software applications.
A very small scale of the web, for example, an enterprise within the OA system, we only need to set up a server, and then at the server is installed on Web servers, application servers, databases, business applications will eventually be deployed in the server, on the can begin work. But for larger scale for the website, it must be a server cluster to provide web services, database and application services must be separated from a separate database server. Well, like TaoBao website of this size, not just separate database and application server deployment, that is, the application is divided into a lot of groups, not all applications are tied together. Then the following, from my application server operating system, application server software, WebServer, database development framework such as tell us about some aspects of open source software TaoBao applications.
We turn first to the application server operating system from the start. An application server, from the software point of view the bottom of him first of all, the operating system. To choose the operating system, then the operating system on the basic application software. At TaoBao, our application servers are used on Linux. Linux operating system from the first in 1991 was officially released until now has gone through 17 years at PC Server has on a wide range of applications. Hardware on our PC Server selection rather than minicomputers, then the Server operating system for our general selection is Linux, FreeBSD, windows 2000 Server or Windows Server 2003. If it is not prepared to adopt a series of Microsoft products to build applications, and are able to maintain the Linux or FreeBSD, coupled with cost considerations, then it should be in the Linux and FreeBSD to choose between. It can be said that now that both Linux and FreeBSD systems难分伯仲, it is difficult to say which one must be better than another to a lot of excellent, comprehensive can stay ahead of the competition, it should be their own strength. So at a time when there is a selection factor is the corporate technical staff for the kind of system more familiar, the familiar with the system on the one hand, the management side, the other hand, are familiar with the kernel of the kernel for performance tuning and the familiar custom tailoring of the operating system will be of great help. And the application of a comprehensive optimization, boost performance operating system optimized from the start.
In determining the server hardware, server operating system, the following for our business SAY System. Taobao has a lot of business system applications are based on JEE specification system. Yes have some C C + + to build the application or the Standalone build Java applications. So we have to select a standardized implementation of the JEE application server. Our choice is JBoss Applcation Server. JBoss AS is the RedHat support an open source JEE application server specification. In a few years ago, if we adopt the Java technology to build enterprise-class Internet applications, or applications, in the selection of open source software in general is Apache organization Tomcat, JBoss The JBoss AS and Resin. Strictly speaking, Tomcat and Resin, and should not be regarded as an application server, they are part of J2EE implementation of a standardized container. The selection of commercial software is IBM's WebSphere and BEA's WebLogic. Up to now, in addition to JBoss AS outer, Apache's Geronimo, Sun's Glassfish also are excellent JEE application server. Also give the developer now provides more choices. Specific JEE application servers for the present comparison. Not go into details here at.
At the front-end application server, we have adopted a WebServer to do a forward, we select the Web server is well-known Apache. A few years ago, Apache was almost on the open source Linux system the only option WebServer. At that time, although there is some other open-source WebServer, but in terms of functionality and stability can not and Apache relative. At today, Lighty will be a very good selection. Lighty is a very lightweight, occupy less memory resources of the WebServer. Although there is no function on Apache powerful, but in many scenes, the performance is very good, better than the Apache. And Microsoft's IIS, can only work at Windows on the system. And the use of IIS, then basically that is, select the ISAPI, ASP or ASP.net for Web applications developed.
That said, we have adopted the operating system, application server, WebServer, the following on to talk about our database. At Taobao applications, the use of two types of relational database management system. One is Oracle's Oracle 10g, another Sun Mysql are the Mysql. Oracle is an excellent, widely used commercial database management software. There is a very powerful functionality and security, can deal with the relative mass of data (here referred to the relative mass of the mean, compared with the large Internet companies, large-scale Internet applications with huge amounts of data generated, Oracle or some chew). And Mysql is a very excellent open-source database management software, is very suitable for PC Server Units composed of many multi-point node of the storage arrays (here I am referring not to provide their own Mysql cluster function), per unit of data storage costs are very low. Units with many PC Server installed Mysql to form a storage node array through Mysql own Replication or deal with their own applications, you can guarantee a good fault-tolerant (allow some node failure), to ensure the application of robustness and reliability. It can be said that in the relational database management system on the selection, we can consider the application itself to decide.
An Internet application, apart from the server operating system, WebServer software, application server software, database software, we will relate to a number of other systems, such as a number of middleware systems, document storage systems, search, distributed framework, the cache system and so on. At TaoBao, these systems are self-developed, there is no current commercial or open source products. Some systems will exist a number of open source products or commercial product. However, taking into account their own needs TaoBao and complicated amount of stress, these systems have opted for self-development.
In front of talking about system-level products are the following, we talk about the use of development framework. There is probably a friend would like to ask, as a such a large-scale website, Taobao layer using the Web to show what the framework is how to achieve it? Also have to once Taobao candidates asked me this question, he asked me that are not used struts. I told him not. In fact, the Web show TaoBao layer is not used in the framework of struts, not webwork, not spring mvc and so on. TaoBao the Web to show the framework layer are used to group a set of independently developed Web framework. This framework can resolve some other Web framework can not be solved at Taobao applications will emerge and need to be addressed. TaoBao at a number of applications, also used a number of open-source framework such as Spring, iBatis, jBpm, Hessian, Mina and so on. These open source software used to build applications for our system provides a great help.
The use of open source software to build the system, I would like to have two great advantages:
One is to reduce costs. Assuming you have 1,000 application servers, each server if you are not on the use of JBoss AS or other open-source software, but commercial use of Oracle BEA's Weblogic or IBM's WebSphere, then for the 1000 machine buy License Application The cost is very high.
Another advantage (I think the biggest advantage of) is you can see the software source code, know the software you can study the work of the internal process, the principle. This application design, development, error checking, optimization is very helpful. You are not faced with a black box, is no longer a commercial software market staff tell you the commercial software can provide such a function 1234. You can clearly understand how the internal operation are in the end, in the end run at the time what had happened, you can clearly know what the problem. This is very important.
For the application of open source software, some people may worry that the quality problem, some people may be concerned that the development of software update problem in itself, and so on. For the quality of questions, I think now a lot of open source software in particular, are some very well-known open source software are very well organized, there is a sound development, testing, publishing flow. At the completion of a new version of the former, there will be many times the test release, the last is the official version. This is the same as commercial software. And because the code publicly, but more easy to find errors, improve quality. As regards the second question, I want to tell like the first question, the key is organization and planning and not at whether or not open source, and a lot of well-known open source software behind, there will be in support of manufacturers. The development of the software itself should not become a problem, the not-there will be a sudden cessation of software development.
In future development, we will, as always, concerned about the open source software development, but also will be required in accordance with different open-source software. Choose an open source product at the time, I will consider the following points:
1. The current functionality of the software and its RoadMap
2. Software architecture itself
3. The software development activity
4. The open-source software in the field are comply with international norms
5. In similar products, it is necessary to have comparative advantages in the selection. And to consider the possible existence of transplantation price. The transplantation refers to the use of this open-source software after the transplant the existing system, or are from the open-source software to other software transplant
Open-source software development to this day has been very active and popular. Utilization of open source software has gradually improved. Whether large-scale web or enterprise application, or are small scale systems, and even their own desktop applications, can be all or part of the adoption of open source software to build. For enterprise-class systems, Internet applications, the adoption of open source software can not only reduce costs and, more importantly, the software can really know the internal working mechanisms. Can also be conducted on the basis of the current enhancement and customization, also be able to draw on from the open-source software to design and realize a lot of good. Finally, I hope to have more domestic enterprises in the use of open source software, while also its own open-source software, or be able to become a contributor to a number of open source software. As TaoBao, we will very actively participate in the open-source activities, will also make efforts to open source the development of our due contribution to







