Recommendation for architects - "The Way of Enterprise IT Architecture Transformation"

Recommendation for architects - "The Way of Enterprise IT Architecture Transformation"

Comment: It is recommended that students who are system architects can take a look. It does talk about some dry stuff, but a lot of content is left on the surface. There is a relatively complete description of the definition and thinking of Zhongtai, the method of building Zhongtai, and Ali middleware.

The architecture of Alibaba's e-commerce system has undergone a transition from a chimney architecture to a distributed architecture to a shared architecture. #Preface

Reflections on Alibaba Group's Middle-Taiwan Strategy R&D

At the end of 2015, Alibaba Group's 2018 China-Taiwan strategy was launched to build a more innovative and flexible organizational mechanism and business mechanism of "big, middle-office and small front desk" in line with the DT era, that is, the front-line business as the front desk will be more agile and more efficient. To quickly adapt to the ever-changing market, Zhongtai will gather the operational data capabilities and product technical capabilities of the entire group to form strong support for each front-office business. #3

The foundation of building a business middle-end - shared service system

"Chimney-style" system construction mode: a common enterprise IT construction mode, which builds systems based on business needs. resulting in chimneys. #9

The core value of the SOA concept: loosely coupled services bring business reuse, and assist the rapid response and innovation of business through service orchestration. The core value of SOA architecture - service reuse. #15

No matter how diverse the front-end business is, the services provided can well include the core services, allowing the transaction information and data of the front-end business to flow back to the corresponding service center. #16

The last thing a service needs is "business stability". If a service blindly pursues the same function, to a certain extent, it will rest on its laurels and force other business systems to repeat the wheel. #18

It has been scientifically proven that a team with a number of 7 people has the highest synergy efficiency. #twenty three

Choice of Distributed Service Framework

Microservices are an evolved form of SOA, and are not fundamentally different from SOA's methods and principles. #54

Shared Service Center Construction Principles

In Alibaba Group's China-Taiwan strategy, the shared service center is the cornerstone of the China-Taiwan architecture. #57

The architectural purpose of the shared service center is to reduce the complexity of the system through business splitting; provide reusability through service sharing; achieve the agility of business support through serviceization; and eliminate barriers to data interaction through a unified data architecture. Therefore, all principles and methods serve these goals - with the end in mind. #64

Three important aspects to be considered in the construction of a service center: design (object-oriented analysis and design methods), operation (a complete business model, with the value of data operation and business integration), engineering (the advantages of distributed architecture and the introduction of Distributed transactions, troubleshooting, etc.). #64

1 High Cohesion, Low Coupling Principle  #65

High cohesion refers to the business domain of the service center. The business within a service center should be highly correlated and highly dependent; while the service centers should have relatively large business isolation, that is, Pursue as low coupling as possible.

2 Data Integrity Principle  #65

A very important business value of service-based architecture is the unification of data models.

3 Principles of Business Operability  #65

The service center starts from the business first, and the service framework abstracted from the purely technical level is generally not an operational service center. A service center is a business unit that carries business logic, precipitates business data, and generates business value.

4 Progressive Construction Principles  #66

The service-oriented architecture is an agile event, and it is recommended to gradually advance in small steps, rather than a vigorous overthrow.

Data splitting achieves linear expansion of database capabilities

The database is the service component that is most prone to performance bottlenecks. #67

The read-write separation method expands the database's processing capability for data reading, and the amount of data in a single table is limited, and the database performance will decline after a certain amount is reached. #68

When the amount of data in a single table is too large, the data is split by horizontal partitioning. Make sure that the amount of data stored in a single database is within the range that a single-machine database can provide good read and write performance. However, it becomes difficult to support cross-database table joins, transaction operations, data statistics, sorting, etc. #68

Data is split as evenly as possible

Minimize transaction boundaries

Heterogeneous index tables minimize the frequency of full table scans (binlog)

Introduce multi-condition frequent query into search engine platform

Asynchrony and Caching Principles

business process asynchrony

Alibaba's internal trial of message middleware is to achieve business asynchrony. #90

Asynchronous database transactions

In layman's terms, it is to split large transactions into small transactions to reduce database bottlenecks caused by database resources being occupied by long-term transaction locks. #92

Transactions and Flexible Transactions

A professional Internet platform must first consider the high availability of system service capabilities, because the unavailability of services means business losses. #99

How flexible transactions solve distributed transaction problems:  #103

Introduce logging and compensation mechanism

reliable messaging

achieve lock-free

In the Taobao platform, the solution that is widely used to solve the distributed transaction scenario is based on the distributed transaction of the message, and the final consistency of the distributed transaction is achieved through the MQ transaction message function feature. #107

In most scenarios, we don't need to use two-phase commit to solve the distributed transaction problem. In order to give full play to the advantages of the performance of the flexible transaction framework and achieve the eventual consistency of the business, the following cooperation solutions need to be adopted: #123

  • The application must be idempotent, especially when data modification operations are performed on the database;

  • The remote modules are driven by B messages, and asynchronous messages can also play the role of checkpoints;

Build digital operations capabilities

The main idea of ​​realizing the distributed service tracking system is to generate the log information of the response through each service processing node of the service call chain, and to string together the "isolated" logs of different systems or services through the logs generated in the unified request having the same ID, and reorganize and restore them. more valuable information. #138

TraceID, generally includes: IP address, creation time, sequence number. #138

RCPID, used to identify the nested relationship between the order of logging points and service calls. #139

Recommendation for architects - "The Way of Enterprise IT Architecture Transformation"

The buried log will contain:

TraceID, RCPID, start time, call type, peer IP

Processing time

process result

Data transfer volume: request size/response size

Build platform stability

The two capabilities of current limiting and downgrade are necessary for the platform to maintain stable operation under the service-oriented system. #158

Shared service center internal and external collaborative sharing

The idea of ​​building a shared service platform draws on the ideas of SOA and API management. #188

Business middle-end and front-end application collaboration

The business middle-end is the provider of the services required by the front-end application, the front-end application is the consumer of the business middle-end service, and the front-end application is also the demand provider for the business middle-end. #196

One of the job functions of the business middle office is to ensure the stability of the middle office business core and maintain the versatility of business capabilities. Front-end applications are often from the perspective of the fastest project implementation cost and cycle, the ability to provide the business middle office is naturally more. The more the better, or the understanding of a certain business, there are also differences between the Taiwan side and the front-end application in the business. #197

When there is a dispute between the middle office and the front-end application, it is generally upgraded according to the hierarchical relationship of business responsibility, and each layer has a business architect responsible for this part of the business as the leader of the team or department. #197

If it is found that some front-end applications have different requirements for business middle-end applications, such requirements are very suitable for precipitation in the shared service system, which is called a new function of a service center. #198

In the project of precipitation of business to the middle platform, the co-construction model is adopted. The business middle platform and the front-end application side send personnel to jointly build a team, responsible for the realization of the business function and the precipitation of the ability to the middle platform. #198

Business middle office performance appraisal  #198

1 Service stability is the top priority

2 Business innovation drives business development

3 Service access volume is an important assessment to measure service value

4 Customer Satisfaction Drives Service Improvement

Here I recommend an architecture learning exchange group to everyone. Communication and learning group number: 744642380, which will share some videos recorded by senior architects: Spring, MyBatis, Netty source code analysis, high concurrency, high performance, distributed, microservice architecture principles, JVM performance optimization, distributed architecture Wait for these to become the necessary knowledge system for architects. You can also receive free learning resources, which are currently benefiting

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325499749&siteId=291194637