Internet site architecture design what I seefrom the architect's point of view, architecture is a set of guidelines for building systems. By this criterion, we Jordan Slide can put a complex system into a more simple set of subsystems, they should be maintained between these subsystems are independent, and consistent with the overall system. And each subsystem can continue to be subdivided further, so as to constitute a complex enterprise-class architecture. A choice of technology solutions and how to select the physical infrastructure and physical infrastructure technology solutions, website development platform for many new to the people this may be a headache. The source of these problems was simply able to improve development efficiency, high-performance platform with a load resistance. There are several on common problems I encountered: a) a development languages and database development language and database comes, many people began to compare languages, the most common argument there: asp.net and java which is good, interpretive language and a compiled language which is good and so on. Personally, I feel the most important is that you and your team do best development language and database which, the old saying goes: we must first of its profits! , Conveniently development languages and databases to help more with less. Imagine if you select a not very familiar with the language, perhaps the language and database on the basis of performance than you did a good grasp of the language, but certainly a long learning curve in the development process. But encountered problems because not familiar with the reasons, wasting more time to find a solution, but not necessarily the best way to find, perhaps not as good as your own use familiar language to solve to the quick. Maybe a friend will say: these types of development languages and database I are familiar with, then we should look at your familiarity with these kinds of development languages and databases, and on the characteristics of various development languages and databases to understand the deeper, more help to improve development efficiency. And the current mainstream development languages and databases provide performance tuning, only in-depth understanding of the features and principles of development languages and databases, so tuning is easy. Personally feel important on these two points, the development efficiency and performance. b) to achieve their own maturity framework that is currently the mainstream development language users have a lot of seniors have provided a framework for their own summary to achieve, such as the SSH combination JAVA, PYTHON's DJANGOO like. I have some personal experience is to try to use the mature open source framework, since the initial research and development platform using mature open source framework, can improve development efficiency, and in terms of quality assurance. I once took over the revision of a platform, the framework is in front of developers to write their own, which some of the design ideas are not very mature, resulting in increased load platform after poor performance, rectification a lot of trouble, only a little bit of separation out, spend time and experience. Some people may ask what is a mature framework, personal summary of points: 1 can provide usage guidelines, such as COOKBOOK, USE GUIDE like. These offer, then the entry becomes easier to use, but also easy to maintain, but also helps to understand the characteristics and principles. 2 official support, such as Community official discussions, mailing lists, etc., and have BUG collection mechanism. There is a saying good shade tree, with official support, when the problems encountered during use, can be directly to solve the problem by looking for previous use of experience and problems encountered BUG submitted up, also find solution to the problems. 3 Official constantly updated release a stable version. This is important, if the official promptly help you solve the presently known or unknown BUG, then the user is concerned, it is nothing to worry about, and if the official stop updating, then I suggest that replaced the family as soon as possible, because if This framework is good, it will certainly be better and better, the official will continue to update it. There is a steady always the first one, you can upgrade seamlessly updated without affecting the production environment situation. 4 users around a lot, often see related discussions or summary. At present, many foreign developers mature frameworks are released, if the user is also a nasty E-wen bad thing, so if the user around a lot of the same and a lot of discussion, it is a kind of gospel for the user, to discuss and learning. So in addition to the best open source framework, not the amount of early-platform access, so High Quality Nike Air Force 1 Low Unisex All White Shoes the less demanding performance, mature use of the framework will not be any problems. After a sharp increase in traffic, then the performance becomes high, some of the framework and therefore hidden problems arise. This time if the framework is open source, users can understand its source code, anticipating its implementation mechanism, tune according to their actual situation. If not, then the user can only change the direction to solve the problem, all roads lead to Rome. c) web server / db server / cache server in the architecture design related 2015 Latest Nike Shoes web server / db server / cache server is a very important point, and I personally feel that one must use a forward-looking, easy configuration, monitoring and maintenance of energy product summary: 1 rich and deep configuration options. If you can provide a wealth and depth of configuration options, so the safety and performance tuning can be very convenient to operate, and without disrupting production environments. 2 high concurrency model. For example, popular in recent years based on epoll of nginx, can effectively reduce the connection processing time, increase the number of concurrent. 3 supports load balancing and request distribution. When the platform of increased traffic, a single Newest Style Nike Air Force 1 Unisex White Red Shoes server is certainly very difficult to support, this time we need to add servers to share the pressure, this time server load balancing and request distribution is very important. 4 efficient caching mechanism. Efficient caching mechanism can help improve the load capacity platform, reduce duplication of resources, reading and processing time. SQUID such as for small file caching, VARNISH, for database cache memcached like. 5 real-time status monitoring mechanism. Real-time monitoring of status reports, maintenance personnel can contribute to the platform quickly understand platform performance operating conditions, be adjusted according to the situation. If it is open source so much the better, you can understand its source code, and according to their actual needs to be configured and customized. d) operating system to select the appropriate operating system, personally feel the most important is a stable and secure, easy to manage and maintain, and easy to monitor. Stable and secure operating system in general will continue to publish official patches and new versions, to resolve BUG and loopholes. And the official or third party will continue to provide management and maintenance of new monitoring tools, and make management and maintenance personnel to maintain management through scripting. And the appropriate operating system allows developers to leverage their characteristics, maximum performance platform. f) the physical architecture of the physical architecture here refers to how the server was set up. Some friends may have limited resources and only one server, and some friends have adequate resources dozen or more servers, I personally feel this is not a problem. Platform early, I think most traffic is not high, web server / db server / cache server on one server no problem. But his heart is best to estimate what this platform will be developed to what kind of scale, when doing architecture, in accordance with prior estimates to decide how to do the physical infrastructure and prepare for future infrastructure upgrades. Here, I think before Baidu architect thunderous said a word, when you reach the current membership of five times or 10 times when the infrastructure necessary to upgrade. Second, research and development platform to do a pre-technology program, to enter into the substance of the development process to a personal feeling website development platform different from the traditional IT project development, because in the past is the customer / demand analysis to intervene between staff / art, And now platform site development will be more contact with a role call products, determine the final site is what kind of platform, what functions, processes each function, and what the use case is, that is prototyping. And after the realization of R \u0026 D personnel, but also by the testers for testing. About prototyping, see my other article, 'project needs prototyping.' In the process, the product will often require developers: a certain function is such that you quickly give me achieve and resolve. This feature is not to be changed. That function problems, we have to change, and research and development staff for other functions may be busy, so it is prone to conflict. Here I recommend using agile development methods, set up a short release cycle iterative development, the products in question put forward a unified resolve in a cycle, the next cycle with the release to the next cycle of further improvements in the next cycle, and BUG amendment. And use JIRA This proven project management system to manage, leaving the history of previous changes, lessons learned. So in the normal development process, especially in research and development team, a few things to pay attention to my personal sense of: 1 right development tools. Again we must first of its profits! Using appropriate development tools and plug-ins that can improve development efficiency, saving development costs. Teams use unified development tool that can reduce the chance of error and prevent version conflicts. 2 How to control the quality of the code. Because the team in our level of high and low, so the team developed, the need to establish a fixed development standards, such as: naming conventions, code package referenced norms. When someone solve a function, in order to ensure that the code quality and reduce the chance of error, it is best to draw flowcharts, and coupled with the design is intended to illustrate, for discussion identified, but may also help newcomers grow rapidly. 3 need to introduce a new framework. Sometimes, a member of the new features will feel a certain framework is very easy or very appropriate question at hand, I wanted to introduce this new framework, my suggestion, in full knowledge of the foundation up to the decision, not because Air Jordan 17 of a feature introduced less than a bunch of features that will make the project code was redundant. 4 summarize the knowledge and training. When a member has encountered a problem and solve, or to learn something new, might come to explore with everyone, maybe it will help improve the performance of the platform, it provides better design Air Jordan 4 ideas. Three architecture optimization premature optimization is the root of all evil, it is about the structure optimization, I put on after the development is completed and the line is concerned. Personally feel there is no hundred percent of available infrastructure, depends on your actual business processes and to optimize the operation. When you run for some time, to collect certain data, to find out the weaknesses targeted performance tuning and optimization, when the load reaches a certain degree of strength platform, you have Cheap Nike Air Force 1 Mens White Blue Shoes to immediately set out to do the schema upgrade. Some friends will ask, and sometimes slow site is inexplicable, but how do I do not know where to start, or empirically change change change change that this option is a little better but not completely good. My experience is that starting from the data, starting from the outermost circle, to find the source. Peripheral start start collecting logs, such as access logs or sql_log access_log operation log database to identify the 10 most visited longest logs and execution logs 10, and then to reverse lookup according to the log in the end is what caused the operation, then a Article solution. If you can not resolve, then consider remodeling. Other issues with this solution is similar to not go into details. From my own experience, there are often several functions because of deterioration point, causing the overall performance deteriorated. Therefore, the development time, to achieve functional point of need to think, the front part of the cache, the page, picture size and efficient caching, local data and global data backend efficient use of the database layer SQL statements to avoid cross-table queries, database utilization index. Four other storage platform when traffic growing at the same site, the data will be followed by constant growth, so how do the early data storage scheme is very important. Now more common HASH URL, based on the file name to select HASH stored in different directories, such as 20091014131213_abc.xxx then stored under 2009/10/14 / a / 20091014131213_abc.xxx such a directory, the directory is divided according to facilitate future server. Search site visits when the platform is growing at the same time, data search has become a problem. Certainly friends will say, direct database fuzzy query have any questions, you imagine when you have millions of data table data you use select * from table where title like '% key%' can not use an index, that is the whole table scanning, paid too much time to spend, a person not issue a query that hundreds of it, that your platform does not Xiecai. Fortunately, now we have mature programs Lucene, just follow the interface it provides to achieve, you can use. Five examples of new relevant information architecture major bbs architecture (squid + nginx) architecture program server nginx picture Source: Euler Contributors readers QQ: 4465618