sandbox
sandbox copied to clipboard
[Sandbox] Sermant
Application contact emails
Project Summary
A open-source,cloud-native, proxyless service mesh based on Java bytecode enhancement technology.
Project Description
What is Sermant?
Sermant is a cloud-native proxyless service mesh focused on Java applications. It can provide service governance capabilities for host applications in a code-non-intrusive way based on bytecode enhancement technology, to address service governance issues in microservice architecture. If users want to implement grayscale publishing, indicator monitoring, flow control, fault injection or other customized service governance capabilities without modifying one line of code, you can easily mount Sermant when the host application starts or runs. To achieve this, you only need to prepare plugins with corresponding functions based on Sermant.
What are the advantages of Sermant?
Sermant is called a proxyless service mesh because it can implement service governance in a non-invasive way like sidecar but does not require a proxy to achieve this. Microservices in Java language have become one of the mainstream software architecture paradigms, such as microservices developed by Spring Cloud and Dubbo. Sermant aims to provide Java applications with diversified service governance capabilities on the premise of achieving the following three advantages:
- Non-intrusive. It provides a non-intrusive service mesh solution to implement service governance without code modification.
- Pluggable. The service governance function is pluggable and supports dynamic mounting. The plugin ecological foundation makes it easy to develop new plugins.
- High-Performance. Proxyless architecture eliminates the need for inter-process communication, significantly reducing request latency and resource consumption.
Org repo URL (provide if all repos under the org are in scope of the application)
https://github.com/sermant-io
Project repo URL in scope of application
https://github.com/sermant-io/Sermant
Additional repos in scope of the application
https://github.com/sermant-io/Sermant-website
https://github.com/sermant-io/Sermant-examples
Website URL
https://sermant.io/en/
Roadmap
https://github.com/sermant-io/Sermant/blob/develop/RoadMap.md
Roadmap context
No response
Contributing Guide
https://github.com/sermant-io/Sermant/blob/develop/CONTRIBUTING.md
Code of Conduct (CoC)
https://github.com/sermant-io/Sermant/blob/develop/CODE_OF_CONDUCT.md
Adopters
https://github.com/sermant-io/Sermant/issues/1396
Contributing or Sponsoring Org
Maintainers file
https://github.com/sermant-io/Sermant/blob/develop/MAINTAINERS.md
IP Policy
- [X] If the project is accepted, I agree the project will follow the CNCF IP Policy
Trademark and accounts
- [X] If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF
Why CNCF?
CNCF is the open source, vendor-neutral hub of cloud native computing which aims to advance the development and adoption of cloud-native technologies and foster collaboration. As a core component of cloud native architecture, microservices provide strong support for building complex business systems. Sermant is dedicated to providing diverse and scalable capabilities for microservice governance in a simpler, more efficient, and non-intrusive way.
We encourage that the host application itself can focus on the development of microservice business code without spending too much attention on service governance. Things like grayscale publishing, indicator monitoring, traffic control, etc. are all handled by Sermant through its related plugins.
We hope to join the CNCF community and become part of the global cloud native developer community. As a collaborative and innovative platform, CNCF can allow Sermant to better integrate with the cloud native ecosystem and benefit more developers, projects, organizations and companies.
Benefit to the Landscape
Most service meshes use proxy to manage microservices. Sermant adopts a proxyless way which reduces additional inter-process communication. This is where Sermant differs from others.
The benefits the landscape could be:
- The participation of Sermant enriches the service mesh types of CNCF landscape, and attract more developers and users from the community to explore the possibilities of microservices governance
- The emergence of Sermant will promote the closer integration of CNCF's Kubernetes, Prometheus, Istio, Envoy and other projects, and promote the development of cloud native technology.
Cloud Native 'Fit'
Landscape: Service Mesh Sermant, as a proxyless service mesh, provides cloud-native features such as microservice governacnce, scalability, observability, high performance. So it fits in "Service Mesh" and has already been placed in CNCF landscape.
Cloud Native 'Integration'
Sermant can join CNCF to better integrate with cloud native technologies:
- Sermant supports xDS protocol. It allows Sermant to communicate with the service mesh control plane, and provides plugins under the Sermant framework with the ability to adapt to the service mesh ecosystem. Sermant works as a proxyless dataplane. In this way, we can also reduce the deployment cost and performance impact of proxy. Besides, we notice xDS-WG is one of CNCF working group and serveral projects in CNCF participate in it. More xDS related abilities has been planned planned for Sermant in roadmap.
- Prometheus is already adopted in Sermant monitor plugin which monitors indicators of server, JVM and request calls. These indicators are collected by Prometheus for follow-up analysis. So Sermant works as an exporter of Prometheus. In following versions, we will integrate Prometheus into Sermant framework to provide any plugin including custom-developed plugin collecting and monitoring APIs.
- Sermant can collect telemetry data as Java Agent between cloud-native services and report to OpenTelemetry Collector, such as service call, message produce,database write. In order to make it easier to collect, we plan to provider APIs in Sermant framework.
Cloud Native Overlap
No response
Similar projects
Landscape
Yes, Sermant is in service mesh section.
Business Product or Service to Project separation
N/A
Project presentations
No response
Project champions
No response
Additional information
No response
@caniszczyk @TheFoxAtWork Our application has been submitted for several days. Could you help to evaluate it?Thanks a lot.
The TOC reviews sandbox projects roughly every 2 months. Our sandbox application project board reflects the upcoming review date. Projects are reviewed in the order in which they applied, subject to past TOC request for information. https://github.com/orgs/cncf/projects/14/views/1
The TOC reviews sandbox projects roughly every 2 months. Our sandbox application project board reflects the upcoming review date. Projects are reviewed in the order in which they applied, subject to past TOC request for information. https://github.com/orgs/cncf/projects/14/views/1
@TheFoxAtWork I may not have explained it clearly. The fact is that the projects that applied later than my project have already entered in sandbox application project board. Could you please tell me why Sermant still hasn't been entered into it since we applied in on May 13? Thanks!
@lilai23 looking now.
@lilai23 looking now.
I saw it. Thank you so much!
@lilai23 I've got the application added to the board, and its ordered correctly now. You should see the application under "new" towards the bottom of the queue. As we get closer to the sandbox date, CNCF Staff will load the Upcoming queue with applications up for review - we usually get through 10-12 per review window.
We're investigating why this issue didnt auto-populate on the board to prevent future applications for ending up in limbo. Thank you for raising this.
Sermant has presented to TAG Network on July 25th, 2024. The livestream recording is available.
@leecalcote @nicholasjackson does the TAG have a recommendation regarding the project?
Hi @TheFoxAtWork, yes we updated the new DTR document with the details of the review. I have linked this below:
https://docs.google.com/document/d/1Lc-PODHyEnk1ROp2sFrplHTCwZ_NTv1aVInIBHsPR8Y/edit?usp=sharing
Our recommendation is as follows:
It is TAG Network’s opinion that Sermant has a valuable role to play in both the CNCF ecosystem and with Service Mesh technologies. The ease of adoption for Java developers along with the ability to integrate with existing xDS enabled service meshes like Istio has huge benefits for the community. We feel that the architectural pattern is well thought out and the project has been developed to operate at scale and within large financial institutions.
We think that Sermant could benefit from speaking with the Istio, and other Service Mesh teams to show their current or potential integrations. Sermant has real potential to drive adoption of Service Mesh among Java developers and could be a real benefit to the CNCF ecosystem and community.
Thank you @nicholasjackson for submitting the DTR!
@lilai23 I understand there are 4 Huawei maintainers and 2 non-Huawei maintainers from the DTR - could you please update the maintainers file to reflect the current project maintainers and affiliations?
@angellk I may not explain maintainers clearly at Tag Network meeting so what DTR document shows is a bit different from our actual situation. We have 4 official maintainers of whom are employed by Huawei, and 2 candidates of maintainers who are employed outside of Huawei. And recently we have appointed a new maintainer from the 2 candidates. I have updated maintainers.md and please check it now.
It seems like a great project for CNCF. It provides a flexible framework for developing and integrating proxyless service plugins to a service mesh and has the potential to be widely adopted. I have a question on the servant javaagent. Is it run as a separate pod?
"Microservices run Sermant in the same process, eliminating the need to start additional sidecar containers for network proxying."
^ does this mean, it is embedded as a library? Also does it limit microservice implementations to Java?
It seems like a great project for CNCF. It provides a flexible framework for developing and integrating proxyless service plugins to a service mesh and has the potential to be widely adopted. I have a question on the servant javaagent. Is it run as a separate pod?
No,it runs in the same process of microservice
"Microservices run Sermant in the same process, eliminating the need to start additional sidecar containers for network proxying."
^ does this mean, it is embedded as a library? Also does it limit microservice implementations to Java?
The Sermant Agent is specified via the -javaagent option when the JVM starts. It can be considered a separate library that is not directly tied to the application code. Instead, it modifies the target classes through bytecode manipulation dynamically, without requiring changes to the application itself.
Sermant now supports Java for the mechanism of JVM. And the support for other languages is in our long term plan.
TAG Contributor strategy has reviewed this project and found the following:
- The contributor guide is standard for a sandbox project.
- The project has a contributor ladder, but no other written governance, yet.
- The roadmap is a structured markdown document and appears to have been in use for over a year.
- There are 5 maintainers, four of whom work for Huawei.
- This is a bilingual project (English/Chinese); there may be additional community content in Chinese that I cannot read.
This review is for the TOC’s information only. Sandbox projects are not required to have full governance or contributor documentation.
Project has been given the okay to move to a vote in today's sandbox review /vote
Vote created
@mrbobbytables has called for a vote on [Sandbox] Sermant (#99).
The members of the following teams have binding votes:
| Team |
|---|
| @cncf/cncf-toc |
Non-binding votes are also appreciated as a sign of support!
How to vote
You can cast your vote by reacting to this comment. The following reactions are supported:
| In favor | Against | Abstain |
|---|---|---|
| 👍 | 👎 | 👀 |
Please note that voting for multiple options is not allowed and those votes won't be counted.
The vote will be open for 2months 30days 2h 52m 48s. It will pass if at least 66% of the users with binding votes vote In favor 👍. Once it's closed, results will be published here as a new comment.
/check-vote
Vote status
So far 54.55% of the users with binding vote are in favor (passing threshold: 66%).
Summary
| In favor | Against | Abstain | Not voted |
|---|---|---|---|
| 6 | 0 | 0 | 5 |
Binding votes (6)
| User | Vote | Timestamp |
|---|---|---|
| nikhita | In favor | 2024-10-09 6:05:51.0 +00:00:00 |
| rochaporto | In favor | 2024-10-09 1:01:54.0 +00:00:00 |
| kgamanji | In favor | 2024-10-09 12:52:05.0 +00:00:00 |
| TheFoxAtWork | In favor | 2024-10-08 17:25:45.0 +00:00:00 |
| angellk | In favor | 2024-10-08 17:20:46.0 +00:00:00 |
| dims | In favor | 2024-10-08 18:07:41.0 +00:00:00 |
| @mauilion | Pending | |
| @linsun | Pending | |
| @dzolotusky | Pending | |
| @kevin-wangzefeng | Pending | |
| @cathyhongzhang | Pending |
I will be abstaining due to a conflict of interest, thanks.
Vote closed
The vote passed! 🎉
72.73% of the users with binding vote were in favor (passing threshold: 66%).
Summary
| In favor | Against | Abstain | Not voted |
|---|---|---|---|
| 8 | 0 | 1 | 2 |
Binding votes (9)
| User | Vote | Timestamp |
|---|---|---|
| @cathyhongzhang | In favor | 2024-10-09 20:41:59.0 +00:00:00 |
| @rochaporto | In favor | 2024-10-09 1:01:54.0 +00:00:00 |
| @nikhita | In favor | 2024-10-09 6:05:51.0 +00:00:00 |
| @kgamanji | In favor | 2024-10-09 12:52:05.0 +00:00:00 |
| @angellk | In favor | 2024-10-08 17:20:46.0 +00:00:00 |
| @dims | In favor | 2024-10-08 18:07:41.0 +00:00:00 |
| @linsun | In favor | 2024-10-09 15:12:30.0 +00:00:00 |
| @kevin-wangzefeng | Abstain | 2024-10-10 7:08:14.0 +00:00:00 |
| @TheFoxAtWork | In favor | 2024-10-08 17:25:45.0 +00:00:00 |
Congrats on being accepted into the CNCF Sandbox! Here's a link to your onboarding checklist: https://github.com/cncf/sandbox/issues/300
If you have any questions or concerns, please don't hesitate to reach out!
With the onboarding issue created, we can go ahead and close this out. :) Congrats again!