[Code Silver Sending Books Phase 2] "Practical Combat of High Concurrency Architecture: From Requirements Analysis to System Design"

The career plan of many software engineers is to become an architect , but to become an architect often requires architectural design experience first , and how can you have architectural design experience if you are not an architect? So how do you gain architectural design experience ?

On the one hand, you can learn through work , observe how the architect of your team works, and assist him in some architectural design and implementation work. Also, think about how you would do your job if you were an architect, and where you could do it better.

On the other hand, you can also learn by reading to see how typical and familiar application systems are designed. Similarly, you can also think in the process of reading : If you were the architect of this system, how would you design it? How to output your design results? Which key designs need further optimization?

Through continuous learning and thinking in this way, you will continue to accumulate experience in architecture design. When you have the opportunity to become an architect, you can use the experience and methods you have gained from learning and thinking to start your career as an architect. .

Now, the new masterpiece of Mr. Li Zhihui, a well-known best-selling author of technology, based on real classic cases, "High Concurrency Architecture Practical Combat: From Requirements Analysis to System Design" paper book is finally published!

From requirement analysis to system design, through eight dimensions and 18 cases, comprehensively introduce the design method, core technology and architecture practice of high concurrency system

We know that " high concurrency " is the core of the current system architecture design, and it is also the focus of many large manufacturers. If an architect designs and develops a system that does not support high concurrency, he is ashamed to discuss it with his peers. When applying for the position of an architect in a large factory, if you can't say anything about the high-concurrency architecture, I'm afraid the interview will be more or less auspicious.

In the field of architectural design, the history of high concurrency is very short. This architectural feature gradually became important with the development of the mobile Internet.

Now there are many large-scale Internet application systems with users distributed all over the world, and the number of users is more than one billion. Even if only one-thousandth of these users access the system at the same time, there will be one million concurrent visits. Therefore, high concurrency is a challenge that large-scale Internet systems must face today. When the number of users accessing the system at the same time continues to increase, the system computing resources to be consumed will also continue to increase.

Therefore, the system needs more CPU and memory to process user computing requests, more network bandwidth to transmit user data, and more hard disk space to store user data. And when the resources consumed exceed the limit of server resources, the server will crash, and the whole system will not work normally.

  • Sufficiently realistic high-concurrency system design scenarios

After you have read a lot of technical information on high-concurrency system design, you may still be confused: Why do I still have no idea about designing a complete high-concurrency system ?

This is mainly because you learn specific high-concurrency architecture knowledge, rather than learning how to design a complete high-concurrency system, so you cannot form an overall system architecture design idea.

All the cases in "High Concurrency Architecture: From Requirements Analysis to System Design" are based on real scenarios, and some cases are even adapted from real design documents. The cases are all aimed at various high-concurrency applications that we come into contact with daily, such as Weibo, short videos, online car-hailing, network disks, search engines, etc., and are specifically divided into massive data processing architectures for high-concurrency systems, high-performance architectures, and high-performance architectures. Available architectures and security architectures.

When learning these system architecture design cases, on the one hand, you can learn how to design various application systems as a whole, and on the other hand, you can learn the patterns and techniques of high-concurrency system architecture design. The combination of the two is a complete high-concurrency System design body of knowledge.

  • A design document format that fits the work scene

You may feel that design documents have little to do with you: first, you don’t usually write much, and you don’t want to write, and you think writing documents is of little value; second, you are not good at writing documents, and you don’t even know that How to write design documents.

But after working for so many years, I found that writing can help people think better . If technicians do not write design documents, they will lack deep thinking about technology, lack a systematic understanding of the advantages and disadvantages of technical solutions, and will not know how to find better technologies and more reasonable solutions. Obviously, this hinders the career development of technicians.

Not only that, if you don't write design documents and lack deep thinking about technology, then the developed software will lack innovation and the product will lack competitiveness in the market.

It can be said roughly: without design documents, there will be no design, and without design, there will be no technological progress.

Therefore, this book will present a series of software system architecture designs in the form of software design documents, and the style of these design documents is relatively uniform. I hope you can master general software design methods and writing methods of software design documents in the organization, software modeling and architecture methods shown in these "repeated" design documents.

  • Typical system architecture case of seeking common ground while reserving differences

This book carefully selects 18 system architecture cases, most of which are high-concurrency, high-performance, and high-availability systems that everyone is paying more attention to. They are excellent "class representatives" for high-concurrency architecture design, and their technologies can solve more than 80% of existing high-concurrency common problems. Therefore, in the process of reading the document, you can further learn and learn from these typical distributed Internet system architectures, and build your own system architecture design methodology to guide your work practice.

In order to avoid a large number of repetitive and similar designs in each document, this book has made a choice in terms of content, simplifying some conventional and low-tech content, and trying to introduce those technical points with unique design ideas . It is possible to highlight the key points of each system's own design while following the specifications of the design document.

In addition, part of the design in this book is aimed at large-scale application systems, such as current limiters, firewalls, encryption and decryption services, and big data platforms.

But it needs to be emphasized that this book will redesign the applications of these well-known manufacturers, rather than analyzing how the existing applications are designed. On the one hand, redesign can be done according to one's own wishes, whether it is a design plan, demand analysis, or performance index estimation, it is a very interesting thing; on the other hand, because some key designs in existing applications do not To be public, if we want to discuss the architectural design of these high-concurrency applications clearly, there is no ready-made information, and we still need to analyze and design by ourselves.

Therefore, the design documents of many cases have requirements analysis, which are used to estimate the concurrency pressure and system resources required by the redesigned system. Most of these estimates are slightly higher than the system indicators of existing large factories. I hope that when you read these contents, you can more truly understand the architect's "on-site experience": the system I reviewed and designed will serve billions of users around the world; the system requires dozens of servers and network bandwidth each year. 100 million yuan; if the system is down for more than ten minutes, the company will lose tens of millions of yuan.

I hope that in the process of reading "High Concurrency Architecture Practice: From Requirements Analysis to System Design" , you can bring yourself into the real system design scene, regard the article as a real design document, and imagine yourself as a colleague of the document author, That is, you are reviewing a design I made.

You can think about it while reading: what is not well thought out in this design? Which key points are missing? You can then record your thoughts as your review comments.

The most important thing is that in this way, you have a sense of the scene of each software design case: you are not a reader reading a book, but a senior architect in a major Internet company, and you are reviewing the design of your colleagues, Also thinking about the future of the company .

  • Three books are given away this time
  • Activity time: until 2023-07-13
  • Participation method: Follow bloggers, like, bookmark and comment " You are not a reader who reads books, but a senior architect in a major Internet company "
  • More than 2,000 readings plus one book

Guess you like

Origin blog.csdn.net/weixin_53197693/article/details/131584877