The evolution of the architecture of Internet applications


With the development of the Internet, the application of websites has also continued to expand, resulting in continuous changes in the system architecture. From the early days of the Internet to the present, the system architecture has roughly gone through the following processes.

Insert image description here

Monolithic application architecture

All functions are concentrated in one application for unified development, deployment, and maintenance.

  • Advantages: low development costs, deployment costs, and maintenance costs
  • Disadvantages: For large projects, project modules are tightly coupled, single point fault tolerance is low, and it is impossible to optimize and horizontally expand a certain module.

Vertical application architecture

Split the previous single application into multiple applications to improve efficiency. For example, an e-commerce system can be split into an e-commerce system, a back-end system, etc.

  • Advantages: Project splitting realizes traffic sharing and solves concurrency problems. It can optimize and horizontally expand a certain module. At the same time, applications will not affect each other and improve fault tolerance.
  • Disadvantages: Applications exist and are independent of each other, which will cause certain redundancy for the same functions.

distributed architecture

As business increases, there will be more and more redundant codes in vertical applications. Extract redundant code and provide separate services to provide application calls to form a distributed architecture.

  • Advantages: Extract public functions as service layer to improve code reuse.
  • Disadvantages: The coupling between systems becomes high, the calling relationships are complicated, and it is difficult to maintain.

SOA architecture

The disadvantage of distributed architecture is that the calls between applications and services are complex and difficult to maintain, especially when there are more and more service nodes. SOA is to solve the problems of resource scheduling and governance.

  • Advantages: Use the governance center (ESB/Dubbo) to solve the automatic adjustment of calling relationships between services.
  • Disadvantages: There are dependencies between services, and problems in one link will have a greater impact.

Microservice architecture

To some extent, the next step in the development of SOA architecture, microservice architecture places more emphasis on the split of services. Each service is deployed independently without affecting each other, making it lighter and more lightweight.

  • Advantages: Services are independently packaged, deployed and upgraded, and functions are clearly divided, which is conducive to expansion.
  • Disadvantages: high cost and complexity.

Comparison of SOA architecture & microservice architecture

  • The microservice architecture is more sophisticated, and professional people do professional things.
  • In a microservice architecture, each service is deployed independently.
  • In a microservice architecture, each service is a separate database.
  • The microservice architecture is more suitable for agile Internet development and rapid iteration of versions.

Distributed application development solutions

Spring Cloud provides a one-stop solution for microservice development, including the necessary components for developing distributed application microservices, making it easy for developers to develop distributed application services through the Spring Cloud programming model. Currently, the Spring Cloud ecosystem has two frameworks: Spring Cloud Netflix and Spring Cloud Alibaba.

Guess you like

Origin blog.csdn.net/qq_28314431/article/details/128644137