To meet the requirements of performance, scalability, and rapid business delivery, the main ideas of the new. NET Core Cloud Development Framework are: high cohesion, low coupling , further vertical and horizontal tiering, increased scalability and scalability, and flexible deployment:
- Landscape-level tiering with domain-driven design while vertical segmentation of business functions
- Maximize scalability, scalability, performance, and security with Cloud Architecture Essentials in code and database design
- Loosely coupled with a variety of scalable technologies such as distributed caching, distributed storage, parallel databases, Message Queuing, and ESB
A comprehensive business management system based on the new architecture of the above design ideas. HL, HB and so on are external systems, through the ESB and integrated business management system interaction.
One, high cohesion, low coupling
Is that the system of the modules within the various elements of a high degree of integration, but the module as far as possible independent existence, which is the software quality standards and design of one of the ultimate goal. High cohesion, low-coupling systems are easier to scale, easier to reuse, and necessary for distributed, scalable deployment of cloud computing platforms.
First, the vertical architecture is followed by the layered b/S architecture standard, the whole system is divided into the representation layer, the business logic layer, the data access layer. I use the domain-driven design approach, on the basis of three layers and subdivided, divided into five layers, respectively, data persistence layer, infrastructure layer, business Domain layer, application layer and presentation layer, the core is the business Domain layer, all business logic should be implemented in the domain layer.
Secondly, in the horizontal division of business, is to divide the system functions into a business module. According to the business requirements of the independence of the door management, ad hoc query, indicator report, background tasks, workflow forms, and other business modules are segmented, and deployed to different computing resources, the module through the MQ or SOA interface calls each other, thereby improving the system's concurrency and expansion capabilities.
* Personally think this is the final quality goal of the software project, so focus on
Ii. Domain Driven Design architecture
The domain-driven design architecture is divided into five tiers, namely the data persistence layer, the infrastructure layer, the business domain layer, the application layer and the presentation layer.
At its core is the business Domain layer, where all business logic should be implemented at the domain level.
Third, the database design
Currently the database is typically optimized in several ways:
- Sub-database sub-table
- Split a large database into smaller databases by business
- In special cases, some data tables with large amount of traffic and large amount of data are split into different database servers according to certain logic (some clouds already provide distributed databases and do not need program implementation)
- Read/write separation
- A writable database, other read-only databases are synchronous mirrors of writable databases
- Two parts to form current operational data and historical data
Iv. Distributed Technology
The application of distributed technology can promote the scalability of the system, it is more advantageous to the cloud deployment
- Static Resource Web site
- Cloud storage
- Distributed cache
- Interactive tools such as distributed Message Queuing, ESB, etc.
- Distributed database
* Static resource sites are more like a way, rather than distributed technology.
Ii. key design ideas for the cloud-oriented. NET Core Development Framework