This is the 25th day of my participation in the August Challenge

Basic concepts of system design

  • Familiar with the thinking framework of system design, know the routine of system design, system design is not simple to draw a picture frame, must be in accordance with a certain routine to better system design
  • To broaden the scope of knowledge, it is very important to consider the comprehensive system design, in order to better make trade-offs

System design process

  • Objectives of system design -> objectives of system design -> core design around the target -> design principles formed around the core design -> detailed design of subsystems and modules

Purpose of system design

  • What is the purpose of doing this system design

Objectives of system design

  • Form measurable goals around the purpose of the system design to ensure that the final system implementation does not deviate too much from the original purpose

Core design around goals

  • To achieve the above objectives through design, the technical expertise, vision, comprehensive consideration, the subjective principle of trade-offs, and the idea of solving problems in this link are the key to form the final core design
  • During the core design phase, new goals are created to measure the final implementation of the design, and these are added to the system design to ensure that the final implementation and design deviations are visible

Design principles formed around the core design

  • With the core design, you can really form some design principles to ensure that the detailed data of the following subsystems and modules can be followed and reflected in the detailed design, so as to ensure the consistency of the whole system design

Detailed design of each subsystem and module

  • In the previous range, solve a smaller range of problems

System design practice

Purpose of system construction

  • When system design is needed, it means that a new system needs to be built, or a larger architecture needs to be upgraded compared with the original system. What is the reason for doing this
  • Analyze the purpose of system construction:
    • On the one hand, in order to avoid questionable starting points, the purpose of system construction should fully reflect the solution of business challenges. Or problems at the user level of the system, rather than individual needs
    • On the one hand, it is to ensure that the purpose can be achieved in the subsequent system design
  • Think clearly about why you want to do something in the first place, and be able to explain why. Motivation is important, and architecture should be businesslike rather than technical
  • Before doing system design, we must first analyze the purpose of system construction clearly, ensure that the system construction is valuable and meaningful, and ensure that the whole system design behind is to achieve the purpose

Objectives of system construction

  • Turn a description of purpose into a description of measurable goals
  • The measurable goal is to ensure that the system achieved the purpose of the system construction, and to prevent the design of the system and the final system is inconsistent
  • Clear and measurable goals for system construction:
    • To ensure that the system design process can be targeted around the target to do, to avoid the topic
    • Can be used to do a tracking system construction effect of the system
    • Only with the tracking system construction target is up to the target of the system, in order to truly ensure that the system after the completion of construction and the original intention to keep consistent. This tracking system must be done simultaneously at the time of system construction
  • From goal to goal, theoretically not complex, but it is easy to miss, resulting in problems in the following system design links. The key is to have measurable goals and a system to track their achievement

The core of achieving your goals

  • If we want to achieve the measurable goal of system design, what are the core problems we face? Only when we understand what the core problems we face, can we more clearly design the system to solve these problems
  • Mapping from measurable goals to core problems to be solved at the technical level

Design that addresses core problems

  • System design is omnidirectional, should consider not only how to achieve, but also consider how to use, operation, maintenance stage is what
  • Be very clear about the process of the whole system. If you want to use the open source framework, you should be very familiar with the code logic of the open source framework, so that the technology can be controlled
  • The design to solve the core problems, deep technical skills in the selection of technology, the breadth of knowledge in the whole design scheme, comprehensive consideration, including development, deployment, operation and maintenance state requirements are very high
  • In the corresponding technical field to have enough vision, must know this field of engineering, academia technology situation. This is very important to make a more rational technology selection in the context of goals, objectives, and some constraints
  • Learn how to expand your technical horizons
  • In solving the core design of the problem, according to a variety of constraints to do some scheme trade-offs
  • The choice faced by the remote live design:
    • What are the rules for splitting traffic or data? Buyers, sellers, goods
    • The relationship between the rules of shunt and the rules of database shunt: loose coupling or strong binding
    • Select a data synchronization policy: Partial or full
    • At what level is data consistency guaranteed? CAP
    • Deployment choices: two or three locations and geographical distribution choices
    • Landing time

Summary of architect capabilities

  • An understanding of the challenges facing the business, the ability to map from business challenges to technical challenges, the ability to abstract technology
  • Knowledge base and comprehensiveness of consideration, including development, deployment, operational, and maintenance states
  • Technical selection ability, extremely thick technical foundation, broad technical vision
  • The ability and principles to weigh options under various constraints
  • Long-term actual combat and technical accumulation