until now,With the support of developers in the community,Polaris and Spring Cloud Tencent CommunityAfter a year of open source operation,received in total 5200+ Stars, 1400+ Forks,have 2400+ Community enthusiasts joined the community exchange group.Accumulated the cases of many enterprise users such as TAL Future and Haiguanjia.existthanks a lot hereUsers who use Polaris, andCommunity Developers and Enthusiastssupport.Let’s take this opportunity to review the development history and future direction of open source since the first anniversary.
The stable operation of enterprise business architecture is inseparable from service governance. There are also some commonly used service governance suites in the industry, such as istio and sentinel. However, when users use these service management suites, they often encounter the following problems:
(1) Some components only provide management capabilities for governance rules. However, users need to use them completely, and also need to solve service data access (registration center), configuration data access (configuration center), and visualization of governance rules. Problem with configuration (web console).
(2) Some components are bound to specific infrastructure and specific data planes (k8s+Envoy), which cannot cover non-k8s applications and direct connection scenarios of applications using service frameworks such as Spring Cloud.
(3) The service governance functions of some components are not complete, and the core functions of microservices such as dynamic routing and gray scale publishing are lacking.
In order to solve the above problems, lower the threshold for users to develop and operate microservices.Polaris provides a one-stop solution for service governance, covering the functions of service registry, service grid and configuration center. Users only need to deploy a set of Polaris, and they can fully use the functions provided by Polaris on any infrastructure, such as route grayscale, fuse degradation, current limit authentication, etc., to quickly build a microservice architecture.
Applications generally build a microservice architecture based on the service framework. Java In the ecology, Spring Cloud is still the most mainstream service framework in China. In order to allow Spring Cloud users to access Tencent’s open source microservice suite faster and more comprehensively, and to allow community application developers to have an additional domestic Spring Choice of Cloud Suite.
During the same period, Tencent will also Spring Cloud Tencent It is open source, and it is the first to support Polaris’ powerful micro-service capabilities by default. Spring Boot 3.0 and JDK17 of Spring Cloud suite. And provide SDK as well as Java Agent and other access methods, so that users can quickly integrate Spring Cloud/Spring Boot with zero code intrusion applicationTransformed into a microservice architecture.
remove Spring Cloud In addition, Polaris also provides native access adaptations for various open source multilingual service frameworks, such as dubbo, gRPC etc. to support low-cost access for all applications.
project evolution
During the year when Polaris was open source, a total of 35 release, closed 300+ issues. In this process, we have carried out all-round upgrades in terms of registration discovery, service governance, and configuration center. The following will introduce respectively:
Registration Discovery Optimization
Because Polaris supports horizontal expansion in architecture, the overall performance of the cluster can be improved through horizontal expansion. However, in order to save users’ costs and improve the experience of stand-alone users, we 1.10.0 In order to improve the stand-alone performance, the overall logic of the control plane is optimized as follows:
Optimize redundant data layer interaction: In the old version of Polaris, in order to ensure the consistency of service data, a single data write will perform multiple storage layer queries for dependency verification. The new version removes the logic of repeated verification through caching + compensation. The storage layer interaction is optimized to only write once.
Asynchronous registration process: Convert the client’s synchronous registration request to an asynchronous registration request, and return the response to the client without waiting for the processing result of the storage layer. At the same time, through automatic heartbeat reporting and re-registration, the problem of consistency that may be caused by asynchronization is solved.
Performance stress test: We conducted a stress test on the Polaris control plane. Under the 8C16G specification, the TPS of service discovery has been greatly improved compared with similar registration centers.
Improved usability of service governance
Service governance is one of the core capabilities of Polaris. In the process of open source, in order to reduce the cost of users using service governance, Polaris has optimized the following aspects:
Access throttling: Optimized from the fine-grained level of interaction and current limiting, it supports fine-grained current limiting for the dimensions of request parameters, interfaces, and calling services, and also supports gateway-level current limiting and micro-service current limiting.
dynamic routing: It is optimized from the perspective of scenarios. From the usage scenarios of microservices, scenarios such as test environment routing and grayscale publishing are subdivided. For scenarios that cannot be covered, general custom routing is used to cover them, which can fully meet the requirements. All routing scheduling related scene demands.
Fuse downgrade: It has been supplemented in terms of function and interaction, and supports multi-level fusing strategies such as service level, interface level, and group level, and supports fault detection rules. Eliminate instances of failures in the business to ensure the availability of the business when the tide comes.
Surrounding ecological integration
Polaris provides multilingual unified service governance SDK (Java, Go, C++, PHP, etc.), applications connected to Polaris do not need to repeatedly develop logic and algorithms related to service governance. Applications are often built based on a service framework.Most open source service frameworks in the industry provide basic service governance capabilities, but each framework has certain differences in implementation details, from configuration to algorithm.
In order to unify the user’s service governance experience and simplify the user’s access cost, with the cooperation of various open source framework community developers, Polaris also supports the seamless access of service framework users by providing framework ecological components.
Spring Cloud framework: Tencent’s open-source Spring Cloud Tencent implements Spring Cloud’s native interceptors and integrates the Polaris SDK, allowing Spring Cloud users to access the Polaris microservice system in a non-conscious way.
Dubbo framework: Similar to Spring Cloud, Polaris also provides native extensions of the dubbo and dubbogo frameworks. Dubbo users can access Polaris by changing the configuration without modifying the code.
Other frameworks: In addition to Spring Cloud and dubbo, Polaris also supports service frameworks such as gRPC, Cloudwego/kitex, and kratos, and will continue to strengthen cooperation with other communities in the future to support more service framework access.
Seamless migration of existing applications
In order to improve the user’s access experience, support more enterprise users to access through lower cost and less modification. Polaris has optimized the migration of existing Spring Cloud users. Through various solutions such as interface compatibility, synchronization tools, and JavaAgent, it supports the zero-code transformation and access of original Spring Cloud users.
For Spring Cloud + Eureka user migration: Polaris is fully compatible with the Eureka interface, and the migration is completed through cluster data synchronization.
For Spring Cloud + Nacos user migration:Polaris provides a synchronization tool that supports two-way data synchronization between Nacos and Polaris. It also provides JavaAgent to support migrated users to seamlessly access the Polaris control plane.
Future Polaris and Spring Cloud Tencent will continue to focus on the two aspects of scene-based functions and open source ecological integrationConstruction and Refinement Sanding:
Scene function: current Polaris and Spring Cloud Tencent provides vertical atomic capabilities, and users face business scenarios during use. There will be certain understanding and usage costs between business scenarios and vertical functions. For example, the user needs to perform grayscale publishing. In this process, functions such as grayscale group management, grayscale routing, and grayscale planning need to be realized by combining multiple atomic functions of Polaris, and there are certain operational thresholds. Therefore, in the future, scenario-based operating experience will be provided, and integrated configuration and access experience will be provided for common business scenarios (gray release, overload protection, etc.) used by users to further reduce user access costs.
Open source ecological integration: The application ecology of microservices in the future will become more and more diverse in terms of development languages and service frameworks. Therefore, on the basis of continuing to improve the functions of the current mainstream service framework, Polaris will actively further integrate with other service frameworks and infrastructure in the community to cover more microservice applications. At the same time, in terms of multi-language, more explorations will be carried out in Python, Rust and other languages. I hope that more students in the community can join in the construction.
In this year of open source, Polaris and Spring Cloud Tencent community produced 30+ committers:weihubeats, onecer, alexwanglei, lhiamgeek, shichaoyuan, astronaut0131 Wait, these studentsexistDocument construction, event center, K8S adaptation, MTLS traffic security, dynamic configuration management, etc.Made in the implementation of the core functionprotrudecontribute.
besides,CommunityWe have also harvested a large number of contributors, and there are currently 100+ Contributors, thank you very much for your contributions!I believe that with everyone’s support, we can make Polaris and Spring Cloud Tencent The products and ecology are more perfect! ! !
Finally, more developers are welcome to join the contributor team of Polaris and Spring Cloud Tencent to build an industry-leading cloud-native service governance center!
forThank you all for beingnorth star with Spring Cloud Tencent The contribution of the community, we are for every commitor An exclusive cultural shirt is prepared.
Don’t worry about other friends, PolarisMesh with Spring Cloud Tencent The community will start from code/issue 50 contributors will be selected from the submitters and task claimants to contribute to the communitycarefullyPrepared cultural shirts/dolls.
Welcome everyone to give us feedback and suggestions, and claim tasks~~Click here:
Polaris:
https://github.com/polarismesh/polaris/issues
SCT:
https://github.com/Tencent/spring-cloud-tencent/issues
Activity time: 2022.12.20-2023.1.7
Author of this article:
Shan Jiajun: Technical Expert of Tencent Cloud Middleware Team, PMC Member of Polaris Open Source Community
Li Jianan: Senior Product Manager of Tencent Cloud Middleware Team
#Greeting #anniversary #Polaris #open #source #gift #gratitude #News Fast Delivery