First, high performance The tireless pursuit of performance is the fundamental driving force for the continuous development of human technology.
However, with the improvement of performance, the complexity of corresponding methods and systems is also increasing.
The complexity brought by high performance in software system is mainly reflected in two aspects. On the one hand, it is the complexity brought by the high performance of a single computer; On the other hand, it is the complexity brought by multiple computer clusters for high performance.
Secondly, there are various high availability schemes for high availability systems, but they are all the same, and they are all achieved by "redundancy" in essence.
Like high performance in form, it is achieved by adding more machines, but it is fundamentally different: the purpose of high performance to increase machines is to "expand" processing performance; The purpose of adding high-availability machines is to "redundant" processing units.
Redundancy enhances usability, but it also brings complexity. In this column, I will analyze one by one according to different application scenarios.
Third, scalability Due to the inherent variability of software systems, new requirements will always be put forward, so scalability is particularly important, and almost all technicians pay special attention to scalability.
There are two basic conditions for designing a system with good scalability: correct prediction of changes and perfect packaging changes.
But it is also a complicated matter to achieve these two conditions.
Fourth, low cost, security and scale I will analyze the main complexity brought by low cost to architecture design for you, which is reflected in introducing or creating new technologies and discussing the complexity introduced from functional security and architecture security. The main reason why scale brings complexity is that "quantitative change leads to qualitative change".