Ii. Main design ideas of the cloud-oriented. net core development framework,. netcore
To meet the performance, scalability, and fast business delivery requirements, the main idea of the new. net core cloud development framework transformation is:High Cohesion and low couplingTo further achieve vertical and horizontal layering, improve scalability and scalability, and achieve elastic deployment:
- The architecture is horizontally layered Based on the field-driven design, and business functions are vertically divided
- Fully consider cloud architecture elements in code and database design to improve scalability, scalability, high performance and security
- Loose coupling is achieved using a variety of scalable technologies, such as distributed caching, distributed storage, parallel databases, message queues, and ESB.
The integrated business management system built with the new architecture following the above design ideas is shown in figure. Among them, HL and HB are external systems that interact with the integrated business management system through ESB.
I. High Cohesion and low coupling
It means that the elements in the system modules are closely integrated with each other, but the modules are as independent as possible. This is one of the ultimate objectives of software quality standards and design. High Cohesion and low coupling systems are easier to expand and reuse, and are also necessary for distributed and scalable deployment of cloud computing platforms.
First, the vertical architecture follows the hierarchical B/S architecture standard and divides the entire system into the presentation layer, business logic layer, and data access layer. I used the domain-driven design method and further subdivided it on the basis of three layers, which were divided into five layers: data persistence layer, infrastructure layer, Business Domain Layer, application layer, and presentation layer, its core is the Business Domain Layer. All business logic should be implemented at the domain layer.
Second, vertical business segmentation means dividing system functions into business modules. Based on the independence of business needs, service modules such as portal management, ad hoc queries, indicator reports, background tasks, and workflow forms are separated and deployed to different computing resources respectively, modules call each other through MQ or SOA interfaces to improve the system's concurrency and scalability.
* I personally think this is the final quality goal of the software project.
2. Domain-driven design architecture
The domain-driven design architecture consists of five layers: data persistence layer, infrastructure layer, Business Domain Layer, application layer, and presentation layer.
Its core is the Business Domain Layer. All business logic should be implemented at the domain layer.
Iii. Database Design
Currently, databases are optimized in several ways:
- Database/table sharding
- Split large databases into smaller databases by business
- In special circumstances, certain data tables with large access volume and large data volume are split into different database servers according to certain logic (some clouds already provide distributed databases without Program Implementation)
- Read/write splitting
- A writable database. Other Read-Only databases are synchronous images of writable databases.
- Form the current operation data and historical data
Iv. Distributed Technology
Application of Distributed Technology can promote system scalability and facilitate cloud deployment.
- Static resource website
- Cloud storage
- Distributed cache
- Distributed message queue, ESB, and other interactive tools
- Distributed Database
* Static resource websites are more like a method than distributed technology.