Author: Shimian, Ruishi
The MicroServices architecture is a double-edged sword. With the complexity of the microservices architecture, even the smallest problems will affect the whole body at a large scale. Therefore, the efficiency and stability brought by the microservices architecture The problems are likely to be far greater than the architectural dividends of microservices themselves.
Recently, Alibaba Cloud MSE Microservice Governance released the enterprise version. The microservice governance capabilities cover various scenarios from traffic protection to traffic isolation and recovery, from development and joint debugging to release and launch, helping enterprises to quickly build a complete microservice governance system.
MSE Microservice Governance hopes to help enterprise customers build always-on businesses.
Microservice governance is the only way after microservice transformation reaches a certain stage
With the development of microservice technology, the concept of microservices has long been deeply rooted in the hearts of the people, and more and more enterprises have begun to choose the microservice architecture to develop their own business applications, because the microservice architecture can make business iteration more efficient. The core challenge of software architecture is to solve the system complexity problem caused by the rapid business growth. When we decouple the business according to the microservice architecture, the number of microservice applications will gradually increase, and the calling links will also become As it gets longer, the calls and dependencies between services and services become more complex.
In this process, if we do not properly manage our microservices, then due to the complex dependencies between microservices, no matter how small technical problems will be magnified, the problems of efficiency and stability may be far greater than that of microservices. The architectural dividend brought by the architecture itself. After the enterprise has implemented microservices to a certain extent, microservice governance is a stage that enterprises must face.
The complexity of microservice governance is further improved in cloud native scenarios
With the gradual deepening of the process of enterprise microservices, the cloud nativeization of microservices has gradually entered the deep water area. In the process of deepening microservices, everyone has gradually realized the complexity of microservice governance. The problem to be solved is simply divided into three aspects, namely efficiency, stability and cost.
efficiency
• In the development phase, what we need to consider is how to make the locally developed applications well deploy the services on the cloud for joint debugging after the business applications are migrated to the cloud. Usually it is impossible for our microservices to deploy a complete set of systems locally, so the applications developed locally are only a small part of the entire microservice link, including our traffic needs to be able to be easily guided from the cloud to the local, which is convenient for us For development and debugging, or we can easily call the microservices deployed on the cloud for joint debugging locally. After the microservices are migrated to the cloud, it becomes more difficult than the original development and joint debugging in their own computer room.
• In terms of online operation and maintenance, we usually need to make frequent changes to microservices. These changes usually cause a series of problems. For example, publishing during the peak hours of the day usually leads to loss of business traffic. Our R&D personnel must not Do not choose to make changes in the evening when business is low.
• The microservice framework usually introduces the logic of service governance, and these logics are usually depended on by the business code in the form of SDK. The changes and upgrades of these logics require each microservice business to be implemented by modifying the code. Such changes result in very large upgrade costs.
• After entering the cloud-native system, the cloud-native system dominated by Kubernetes emphasizes flexible scheduling between clusters, and can schedule resources arbitrarily in POD units. After being scheduled, the IP of the POD will also change accordingly. Traditional governance Strategies will all face the problem of failure. How to make the service governance system more adaptable to the cloud-native system is also a problem we need to solve.
Stablize
• Stability is more important than everything else. After microservices are migrated to the cloud, high business availability is a problem that we must solve, so it is usually deployed in multiple availability zones in the same region. Of course, our business not only needs to ensure high availability in the same region, but also needs to consider the high availability of the business when there is a problem in a region. At this time, we need to consider the business to achieve dual-active in the same city, or even multi-active in different places. This is something we all need to consider.
• Calls between microservices also need to be more secure and credible. The recent emergence of security loopholes also reflects to a certain extent that there are still many security problems exposed in the current cloud stage. After each security loophole occurs, the middle The upgrade of the software SDK is also a problem that has plagued the business for many years; at the same time, some sensitive data, even if a lot of permissions are controlled at the database layer, because the microservices are granted higher data access permissions, if the microservices are called maliciously In total, it may also lead to the leakage of sensitive data. Calls between microservices need to be more reliable and trustworthy.
cost
• When we face the rapidly growing traffic in our business, we urgently need fast elasticity and supplement more resources to carry the peak of the business; when we enter the low peak of the business, we also hope to reduce the capacity and save resources, so the cloud The fast and flexible elastic mechanism provided by the product is a much-needed capability after microservices are migrated to the cloud.
Challenges of self-developed microservice governance
Inline Technology has considered self-developed microservice governance, and Inline Technology architect Tang Changzheng has also participated in Dubbo's open source community. Microservice governance research and development is not very difficult for Inline Technology, but the self-developed microservice governance component is still There are the following unavoidable cost issues.
• High access cost • High maintenance cost • Single function, inflexible, low scalability • Poor locatability
Although the cue came to Inline Technology above, it is not only Inline Technology. These problems are the problems that cloud enterprises must face when considering how to implement microservice governance.
Considering the microservice governance of production applications, the microservice framework usually introduces service governance logic, and these logics are usually depended on by business code in the form of SDK, and changes and upgrades of these logics require each microservice. The business is implemented by modifying the code, and such changes have resulted in very large access and upgrade costs. At the same time, it is necessary to develop the governance function of the open-source service framework, which means that manpower needs to be managed and operated for the components of microservice governance. At the same time, self-construction will make the function very close to the business, which also means that the function will be compared. Thin and single, the future scalability is relatively weak. At the same time, there are many technical details for the realization of full-link grayscale, such as dynamic routing, node marking, traffic marking, and distributed link tracking, and the implementation cost of the technology is high. Due to the complexity of service frameworks such as Dubbo and Spring Cloud, and as the number of microservices gradually increases and the links become longer and longer, the positioning and solution of related microservice governance problems have become a headache. Caller Technology said that with the support of professional teams such as Spring Cloud Alibaba and Dubbo, the deepening of microservices will become more calm.
MSE microservice governance helps enterprises build a complete microservice governance system
MSE service governance provides core capabilities such as full-link grayscale, traffic protection, outlier instance removal, canary release, and microservice governance traffic observability in a non-intrusive way. Compared with self-built, it provides rich differentiated capabilities , capable of covering the whole life cycle of microservices in development state, test state and running state, seamlessly supporting all Spring Cloud and Dubbo frameworks on the market in the past five years, helping enterprises to quickly build on the cloud in a more economical and efficient way Build a complete microservice governance system to effectively improve the development efficiency and online stability of microservice applications.
MSE Microservice Governance Enterprise Edition released
On top of the original basic and professional versions, Alibaba Cloud MSE microservice governance has launched an enterprise version, which provides microservice applications and the traffic control and fault tolerance capabilities of common gateways. Prevention and control and other dimensions are used to ensure business stability and help users cope with traffic surges or unstable service dependencies.
At the microservice gateway layer, such as Zuul and Spring CloudGateway, users can set rules for ingress traffic protection. At the application layer, interface-level granularity protection can be implemented, and multiple current limiting methods such as single-machine current limiting, cluster current limiting, and minute-hour current limiting are supported. In addition to the impact of large traffic, when third-party services have problems, sometimes the response time of the interface becomes longer, and the thread resources cannot be released. Users can configure fuse rules for weakly dependent interfaces, which will automatically fuse when unstable conditions are reached. Non-critical interfaces can be proactively downgraded in advance to avoid single-point service exceptions that cause overall unavailability. In addition, traffic protection supports adaptive system protection, which can set system protection rules based on system resource indicators such as CPU and LOAD to prevent avalanches. At the same time, it is also possible to configure isolation rules for automatically identified slow SQL statements to limit the number of concurrent executions to prevent the database connection pool from being full and affecting normal calls.
The enterprise version also supports second-level monitoring capabilities for indicators such as QPS, response time, anomalies, and CPU/load, and provides analysis functions for second-level traffic and water level distribution in machine, interface, and cluster dimensions for these indicators, which is convenient for users to monitor. Protection effect and guide rule configuration.
New: Application Configuration
The MSE Service Governance Center also adds application configuration capabilities to help users dynamically manage configuration items in the code, which can be used in various business scenarios. One is to embed function switches in the business logic, such as dynamically enabling a promotion, downgrading some time-consuming operations, etc.; the other is to adjust the application operation level without restarting the application, such as modifying the log level online and specifying A/B Test path, thread pool configuration, etc.; the third is the push of complex types of structured content such as List and Map, such as regularly pushing the list of big promotion products, and sending the list of customers with coupons in a unified manner.
tail
Microservice governance is the only way to deepen enterprise microservices. MSE microservice governance continues to polish and build out-of-the-box governance capabilities around the microservice system. On the one hand, we choose to fully embrace open source, and customers do not need to change the existing business. The architecture can be up and down at any time without binding; on the other hand, we aim to export Alibaba's years of technology accumulation and best practices to cloud customers in a productized manner.
Click " here " to watch the MSE Microservice Governance Enterprise Edition release video!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。