Microservice Governance Specification OpenSergo Project Officially Open Source

In recent years, due to the expansion of enterprise scale, rapid expansion of IT systems, and increasingly rapid changes in market environment, the original single architecture IT systems have been unable to meet business needs. In order to support business development more efficiently and flexibly, enterprises have shifted from single architecture to microservice architecture.

The microservice architecture is closely related to the technological accumulation and business characteristics of enterprises themselves, and many internet companies will create their own frameworks and organizational forms based on their own characteristics when they actually land. At the same time, microservices cannot do without supporting governance capabilities, such as service observability, full link pressure testing and tracking, registration discovery, configuration center, service grid, etc.

In the development process of these technologies, the industry has gradually formed a situation where a hundred flowers bloom, resulting in different development languages and frameworks, which brings a heavy maintenance burden to enterprises. Moreover, interoperability between different frameworks also faces various issues such as loss and high complexity.

Faced with these pain points, Alibaba Cloud started discussions with communities such as Nacos, Spring Cloud Alibaba, and Apache Dubbo in January 2022 to standardize and standardize collaborative service governance, and jointly established the OpenSergo project. At present, the project has been opened source through the Apache License 2.0 protocol. InfoQ interviewed Alibaba Cloud to learn how to build a microservice governance specification project.


Zhang Huxing, Senior Technical Expert of Alibaba Cloud; Lu Yanbo, Senior R&D Engineer of Alibaba Cloud; Chen Zhihui, R&D engineer of the infrastructure team.

InfoQ: What has the service governance system undergone under the microservices architecture?

Alibaba Cloud: Within Alibaba, the service governance system has undergone an evolution process from SDK approach, to Fat SDK approach, and then to Java Agent/Sidecar based approach. Specifically, Alibaba has been transforming microservices since 2008, giving birth to the service framework HSF and supporting service governance capabilities; In 2012, the Dubbo framework was open source and provided excellent service governance capabilities. At this stage, service governance capabilities were integrated and evolved through SDK and service frameworks; Since 2013, in order to address the issue of high SDK upgrade costs, the middleware team has launched the lightweight isolation container Pandora, which separates service governance capabilities from the business through the Fat SDK approach, greatly improving upgrade efficiency.

However, this approach still faces high upgrade costs. In order to completely decouple the service governance system and business, Alibaba began in 2019 by sinking its service governance capabilities into JavaAgent, achieving the ability to access service governance without any modification to the business. Later, we commercialized this technical solution and used the Alibaba Cloud microservice engine MSE to serve enterprise customers on the cloud.

During the same period, with the diversification of business development, multilingual built businesses gradually became popular within the group. Alibaba began to explore multilingual governance solutions and adopted a Sidecar approach based on Istio+Envoy to provide services for heterogeneous languages, providing basic service governance capabilities.

In this process, we gradually discovered that there are different systems and cognitions among heterogeneous microservice frameworks, and many concepts cannot be fully aligned. It has become increasingly difficult to govern various microservice systems with a standard service governance solution. Therefore, we urgently need a unified service governance standard that is independent of language and technology, but close to business, so that heterogeneous microservice systems can be interconnected and managed uniformly.

In summary, Alibaba's internal service governance has gone through three stages: building basic data, exploring governance capabilities, and finally standardizing capabilities.

Since 2016, we have undergone a complete transformation from a giant stone architecture to microservices, and throughout the process, we have also faced many service governance issues. The entire deployment and management mode from single entity to microservices has been undergoing a transformation. In order to improve research and development efficiency and stability, we have split services of different granularity. Therefore, in 2017, we began to think about how to manage microservices, and began to deploy and isolate them through containers, greatly solving our problems in management. At the same time, we have also built a unified registry and configuration center basic middleware, The entire microservices have also done a lot of service governance related work around these two basic middleware.

In the early days, our language was relatively unified, mainly based on the Go language, with a unified Kratos framework. Therefore, service governance also prioritized the SDK approach for control. With the rapid development of business in recent years, some languages such as Java and C++have emerged internally. We have attempted to manage Service Mesh through Sidecar, and in this process, we have gradually discovered that the overall maintenance cost is not small, and performance loss also poses significant challenges in the context of cost reduction and efficiency improvement. So, we also look forward to a set of service governance standards that can be used in systems such as the Kratos framework, Java Agent, and Istio.

InfoQ: Is the microservices governance framework mature now? What are the current status and pain points of service governance in the industry, including Alibaba?

Alibaba Cloud: Service governance is a necessary path for microservice transformation after reaching a certain stage.

As more and more enterprises complete microservice transformation, the topic of service governance is gradually increasing in popularity, and more and more architects and developers are beginning to realize the necessity of service governance. At present, service governance is in a rapidly developing upward period in the domestic market.

On the one hand, after more than ten years of microserviceization, Alibaba's microservice instance size has reached one million level, and the integration of Dubbo 3.0 and HSF is smooth. It is about to complete the major historical mission of trinity, and its service governance capabilities are also very mature. It has already possessed commercial service capabilities, and has had very deep implementation practices in some leading internet companies.

On the other hand, except for some leading internet companies that are implementing service governance, other companies that have completed service-oriented transformation also have strong demands for service governance. However, there is a lack of complete methodologies and best practices, as well as a lack of open source standardized solutions, making it difficult for companies to introduce service governance.

Overall, the biggest pain points currently are:

1. The industry lacks a clear understanding of the capabilities and boundaries of service governance, and the concept of service governance defined by each enterprise is inconsistent, resulting in high understanding and communication costs.

2. There are many open source microservice frameworks, but there is a lack of standardized agreements for service governance. For example, the microservice interfaces defined in Spring Cloud and Dubbo cannot be interconnected, and microservices managed through Dubbo and Istio cannot be uniformly governed.

3. Lack of truly business oriented abstractions and standards that can alleviate cognitive burden. What developers really want may be simple, specifying the invocation relationships and configuration rules between services. But for businesses, it is not only necessary to understand the deployment architectures of different microservice frameworks, but also to understand the concepts and differences of different service governance methods.

At present, we have basically achieved microserviceization, and with the rapid growth of new businesses, standardizing service governance is becoming increasingly important. Because when our business develops, it is generally difficult to transform or upgrade, or it will bring significant transformation costs. So in the process of enterprise development, it is recommended to unify the framework and governance, and standard formulation has become an important link. For communication between microservices, we have chosen gRPC as the unified protocol and defined a unified BAPIs warehouse management Protobuf interface to facilitate the development and invocation of various microservices.

Overall, our main pain points are:

1. Service governance mainly focuses on implementation and problem-solving, without well established standards and standardization, which may result in a certain understanding of the cost of research and development.

2. The business framework mainly focuses on Go and Java. For mainstream frameworks, we tend to provide business usage through Proxyless, lacking the ability to implement governance through open source unified SDKs and governance standards.

InfoQ: Why are we promoting the establishment of service governance standards projects among enterprises? What form of open source license is used for this project?

Alibaba Cloud: With the continuous increase of Alibaba's internal heterogeneous microservice business and more and more enterprises moving microservices to the cloud, we have found that the cost of microservice governance increases exponentially due to language and framework heterogeneity. Each open source framework and protocol has inconsistent definitions, concepts, and capabilities for microservice governance, resulting in incomplete alignment between open source and cloud service implementations. Enterprises using open source solutions cannot smoothly migrate to PaaS services related to service governance provided by cloud vendors. Especially when multi cloud becomes a trend, enterprises cannot enjoy the standard PaaS level service governance capabilities when choosing different cloud vendors.

For users, different frameworks and protocols represent the need to choose different governance models and rules, which puts an additional cognitive burden on them. The existing microservice governance framework greatly limits the adoption of new languages and frameworks, resulting in significant limitations on enterprise technology iteration.

Considering these points, we started discussions in January 2022 between the enterprise and communities such as Spring Cloud Alibaba, Nacos, and Apache Dubbo on the standardization and governance of collaborative services, and jointly established the OpenSergo project, which will be open source using the Apache 2.0 open source protocol that is very friendly to open source users and other cloud manufacturers.

OpenSergo, which means open, takes the first letters Ser and Go from the two English words' Service Governance ', which together form an open service governance project.

In the past two years, our overseas business has developed rapidly, with little historical burden on our business. Therefore, in order to run faster, we tend to develop this part of our business directly towards cloud native direction. Basically, I also chose open source software and standards with a good community ecosystem, such as gRPC, OpenTelemetry, K8S, and so on. It has also been integrated into our open-source Kratos framework, but during this process, we found that there is a lack of good service governance standards in the community, and it is not cost-effective for us to build our own wheels. So, we have also had multiple technical sharing and exchanges with Alibaba, and found that they all have their own starting points, so we jointly discussed the mature service governance standard system in the industry. We plan to incubate service governance related practices through open source communities to address the service governance issues we encounter.

InfoQ: What are the main issues that need to be addressed in service interface standardization under conditions such as multilingualism, multi framework, and heterogeneous infrastructure?

Alibaba Cloud: OpenSergo aims to solve the problem of fragmentation of the concept of microservice governance in different frameworks and languages. OpenSergo is committed to reaching consensus among different microservice frameworks and communication protocols, forming cloud native service governance standards, so that framework users will not be fragmented due to different languages and frameworks, allowing architects to describe their internal microservice architecture with a unified standard. The main issues to be addressed here include:

How to standardize service registration and discovery;

How to unify the meta information format of services;

How to declaratively specify what capabilities service governance should possess;

How to interconnect heterogeneous microservices;

How to standardize the definition of observability for microservices, etc.

Thanks to Alibaba's internal practices and microservice engine MSE, OpenSergo naturally supports mainstream Java microservice frameworks such as Spring Cloud and Apache Dubbo; At the same time, the Apache Dubbo community and the Spring Cloud Alibaba community are also co initiators, so OpenSergo will initially support frameworks such as Kratos, Cloudwego Kitex, Spring Cloud Alibaba, Apache Dubbo, and Apache Dubbo go. We welcome more open-source developers of microservice frameworks to join us, enrich the support scope of OpenSergo, and help microservice frameworks be implemented in enterprises.

InfoQ: What features does OpenSergo include and for what reasons?

Alibaba Cloud: OpenSergo mainly includes three main parts:

Control surface: Users can view and modify service governance configurations through CRD or Dashboard, and distribute these control information to the data surface.

• Data side: JavaAgent, Servcie Mesh, and various microservice frameworks connected to OpenSergo can receive service governance configurations and apply them to current business traffic.

OpenSergo Spec: Spec specifies communication protocols for control and data surfaces, ensuring that users can describe microservice architectures of different frameworks, protocols, and languages using a single Spec.

For the control surface, OpenSergo has unified governance rules, so users no longer need to be bound to an open source solution or a service provided by a cloud vendor. Different data and control surfaces can seamlessly integrate with the existing service governance system as long as they are connected to the OpenSergo Spec.

For the data side, OpenSergo provides different access methods:

Spec/SDK access: The microservice framework can achieve self-service access through the OpenSergo specification. Various frameworks can also be easily integrated into OpenSergo through SDK, which can obtain more internal information of the framework and save additional performance and resource costs brought by Sidecar.

• Sidecar access: For multilingual services, OpenSergo can push service governance rules into Sidecar to govern existing microservice applications through Sidecar.

JavaAgent access: For Java applications, JavaAgent can enhance service governance capabilities to existing microservice applications in a non-invasive manner, effectively bringing existing Java applications into a unified microservice governance system.

InfoQ: What is the presentation form of "unified standards" in the OpenSergo project? How to ensure neutrality?

Alibaba Cloud: Unlike other open source projects that provide implementation methods first, OpenSergo has adhered to the concept of "standards first" since its inception. It first stipulates the basic concepts of service governance through standardized forms, and defines the configuration and corresponding semantics of service governance.

OpenSergo has been a community project since its inception, open source through the Apache License 2.0 protocol. In the formulation and development of OpenSergo microservice specifications, standards are also formulated and implemented through an open, transparent, and democratic approach. In the future, relevant regulations will also be determined through mechanisms such as GitHub issues, mailing lists, and community biweekly meetings to ensure community collaboration. OpenSergo is also open to other cloud vendors, and we welcome you to join us in building it together.

InfoQ: What is the future plan of the project?

Alibaba Cloud: Enabling unified governance of heterogeneous microservices and enabling more microservices to be interconnected is a long-term development goal established by OpenSergo from its inception.

In the future, the OpenSergo community will further complement its service registration and discovery, service governance capabilities, provide a unified service governance control surface and dashboard, and recruit more enterprises and microservice frameworks into the community. At the same time, we see a trend towards standardization of control surfaces and diversification of data surfaces. Gateways such as Apache Dubbo go pixiu serve as traffic entry points for data surfaces, aligning their capabilities with various data surfaces such as SDK, Java Agent, and Sidecar, providing more users with a simple, consistent, and cloud native service governance experience.

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00

phone Contact Us