The architecture diagram is shown below. This diagram basically covers most of the technical points of the Internet technology companies, different companies only slightly different in the specific technical implementation, but will not jump out of the scope of this framework.
SQL: MySQL is commonly used to store business data. At the beginning of the development of the Internet, each business will generally operate independently of the mysql cluster, but with more and more business, the mysql cluster size is getting bigger and bigger, then there is a need to make a SQL platform.
NoSQL: translated as Not Only SQL, as a complement to mysql. Nosql generally provides its own clusters, and easy to use, the company's business development is not necessary at the beginning. In general, the number of Nosql clusters is increasing, then it is necessary to make the Nosql platform.
Small files: There are a lot of small files on the Internet, such as product images, Facebook images. These small files are characterized by small data, huge volume, and large access. If each business to consider small file storage, there will be duplication of the phenomenon of creating wheels, then it is necessary to make a small file platform.
Large files: The large files of the Internet are mainly divided into two categories: one is the business of large data, such as Youtube videos, movies on the movie site; the other is the massive log data, such as various access logs. Some big companies with strong strength will make a big data platform based on open source solutions.
Development framework: For example, the common Spring framework.
Web servers: common tomcat, jetty and so on.
Containers: Docker can greatly reduce the cost of operation and maintenance, as well as in the realization of dynamic expansion is very convenient.
Configuration Center: As the name implies, the configuration center is a centralized place to manage the configuration of each system.
Service Center: Addresses the configuration and scheduling of cross-system dependencies. For example, if there are 10 systems that rely on system A's x-interface, and system A implements a y-interface to better support the x-interface, then it would be troublesome to directly update the configurations of the 10 system dependencies.
Message queues: Support for system decoupling.
Load balancing: Acts as a task distributor.
CDN: can cache some common files close by to improve access speed.
Multiple server rooms: The main purpose of multiple server rooms is disaster preparedness, when the server room fails you can quickly switch the business to another server room, this switching operation allows for a certain amount of time interruption, such as 10 minutes, 1 hour.
Multi-center: The requirements of multi-center are even higher, requiring simultaneous provision of services to the outside world, and the business can be automatically switched between the multi-center, and after the failure of the automatic recovery without human intervention or very little human intervention.
User management: Unified management of users of various systems.
Message Push: According to different channels, it is categorized into SMS, email, inbound mail, and app push.
Storage Cloud: The implementation is CDN + small file storage.
Picture Cloud: the implementation is also CDN + small file storage. Why not standardize on a single system with the storage cloud? This is due to the complexity of the image business. Pictures will involve more business, including cropping, compression, beautification, auditing, watermarking and so on.
The business is very different, and the main problem faced by each Internet business is the increasing complexity. At this point, we need to use the technology of disassembly and integration. Demolition is a large system will be split into multiple subsystems to reduce complexity. When more and more subsystems, it is possible to need to use the technology of integration.
The core purpose of a test platform is to improve testing efficiency.
The core responsibilities of the operation and maintenance platform are divided into four main blocks: configuration, deployment, monitoring, and emergency response.
The core responsibilities of the data platform are divided into three main parts: data management, data analysis, and data application.
The core responsibility of the management platform is permission management.